annotate src/compiler.h @ 5492:e82f5b7010fe

Merge some stuff in man, fix up Makefile -------------------- ChangeLog entries follow: -------------------- man/ChangeLog addition: 2010-02-19 Ben Wing <ben@xemacs.org> * widget.texi: * widget.texi (Top): * widget.texi (Introduction): * widget.texi (User Interface): * widget.texi (Programming Example): * widget.texi (Setting Up the Buffer): * widget.texi (Basic Types): * widget.texi (link): * widget.texi (url-link): * widget.texi (info-link): * widget.texi (push-button): * widget.texi (editable-field): * widget.texi (text): * widget.texi (menu-choice): * widget.texi (radio-button-choice): * widget.texi (item): * widget.texi (choice-item): * widget.texi (toggle): * widget.texi (checkbox): * widget.texi (checklist): * widget.texi (editable-list): * widget.texi (group): * widget.texi (Sexp Types): * widget.texi (constants): * widget.texi (generic): * widget.texi (atoms): * widget.texi (composite): * widget.texi (Widget Properties): * widget.texi (Defining New Widgets): * widget.texi (Widget Browser): * widget.texi (Widget Minor Mode): * widget.texi (Utilities): * widget.texi (Widget Wishlist): * widget.texi (Widget Internals): * widget.texi (GNU Free Documentation License): * widget.texi (Index): Sync with FSF 23.1.92. 2010-02-19 Ben Wing <ben@xemacs.org> * texinfo/fdl.texi: New file. * texinfo/texinfo.texi: * texinfo/texinfo.texi (Top): * texinfo/texinfo.texi (Copying Conditions): * texinfo/texinfo.texi (Overview): * texinfo/texinfo.texi (Reporting Bugs): * texinfo/texinfo.texi (Using Texinfo): * texinfo/texinfo.texi (Output Formats): * texinfo/texinfo.texi (Info Files): * texinfo/texinfo.texi (Printed Books): * texinfo/texinfo.texi (Formatting Commands): * texinfo/texinfo.texi (Conventions): * texinfo/texinfo.texi (Comments): * texinfo/texinfo.texi (Minimum): * texinfo/texinfo.texi (Six Parts): * texinfo/texinfo.texi (Short Sample): * texinfo/texinfo.texi (History): * texinfo/texinfo.texi (Texinfo Mode): * texinfo/texinfo.texi (Texinfo Mode Overview): * texinfo/texinfo.texi (XEmacs Editing): * texinfo/texinfo.texi (Inserting): * texinfo/texinfo.texi (Showing the Structure): * texinfo/texinfo.texi (Updating Nodes and Menus): * texinfo/texinfo.texi (Updating Commands): * texinfo/texinfo.texi (Updating Requirements): * texinfo/texinfo.texi (Other Updating Commands): * texinfo/texinfo.texi (Info Formatting): * texinfo/texinfo.texi (Printing): * texinfo/texinfo.texi (Texinfo Mode Summary): * texinfo/texinfo.texi (Beginning a File): * texinfo/texinfo.texi (Sample Beginning): * texinfo/texinfo.texi (Texinfo File Header): * texinfo/texinfo.texi (First Line): * texinfo/texinfo.texi (Start of Header): * texinfo/texinfo.texi (setfilename): * texinfo/texinfo.texi (settitle): * texinfo/texinfo.texi (End of Header): * texinfo/texinfo.texi (Document Permissions): * texinfo/texinfo.texi (copying): * texinfo/texinfo.texi (insertcopying): * texinfo/texinfo.texi (Titlepage & Copyright Page): * texinfo/texinfo.texi (titlepage): * texinfo/texinfo.texi (titlefont center sp): * texinfo/texinfo.texi (title subtitle author): * texinfo/texinfo.texi (Copyright): * texinfo/texinfo.texi (end titlepage): * texinfo/texinfo.texi (headings on off): * texinfo/texinfo.texi (Contents): * texinfo/texinfo.texi (The Top Node): * texinfo/texinfo.texi (Top Node Example): * texinfo/texinfo.texi (Master Menu Parts): * texinfo/texinfo.texi (Global Document Commands): * texinfo/texinfo.texi (documentdescription): * texinfo/texinfo.texi (setchapternewpage): * texinfo/texinfo.texi (paragraphindent): * texinfo/texinfo.texi (firstparagraphindent): * texinfo/texinfo.texi (exampleindent): * texinfo/texinfo.texi (Software Copying Permissions): * texinfo/texinfo.texi (Ending a File): * texinfo/texinfo.texi (Printing Indices & Menus): * texinfo/texinfo.texi (File End): * texinfo/texinfo.texi (Structuring): * texinfo/texinfo.texi (Tree Structuring): * texinfo/texinfo.texi (Structuring Command Types): * texinfo/texinfo.texi (makeinfo top): * texinfo/texinfo.texi (chapter): * texinfo/texinfo.texi (unnumbered & appendix): * texinfo/texinfo.texi (majorheading & chapheading): * texinfo/texinfo.texi (section): * texinfo/texinfo.texi (unnumberedsec appendixsec heading): * texinfo/texinfo.texi (subsection): * texinfo/texinfo.texi (unnumberedsubsec appendixsubsec subheading): * texinfo/texinfo.texi (subsubsection): * texinfo/texinfo.texi (Raise/lower sections): * texinfo/texinfo.texi (Nodes): * texinfo/texinfo.texi (Two Paths): * texinfo/texinfo.texi (Node Menu Illustration): * texinfo/texinfo.texi (node): * texinfo/texinfo.texi (Node Names): * texinfo/texinfo.texi (Writing a Node): * texinfo/texinfo.texi (Node Line Tips): * texinfo/texinfo.texi (Node Line Requirements): * texinfo/texinfo.texi (First Node): * texinfo/texinfo.texi (makeinfo top command): * texinfo/texinfo.texi (makeinfo Pointer Creation): * texinfo/texinfo.texi (anchor): * texinfo/texinfo.texi (Menus): * texinfo/texinfo.texi (Menu Location): * texinfo/texinfo.texi (Writing a Menu): * texinfo/texinfo.texi (Menu Parts): * texinfo/texinfo.texi (Less Cluttered Menu Entry): * texinfo/texinfo.texi (Menu Example): * texinfo/texinfo.texi (Other Info Files): * texinfo/texinfo.texi (Cross References): * texinfo/texinfo.texi (References): * texinfo/texinfo.texi (Cross Reference Commands): * texinfo/texinfo.texi (Cross Reference Parts): * texinfo/texinfo.texi (xref): * texinfo/texinfo.texi (Reference Syntax): * texinfo/texinfo.texi (One Argument): * texinfo/texinfo.texi (Two Arguments): * texinfo/texinfo.texi (Three Arguments): * texinfo/texinfo.texi (Four and Five Arguments): * texinfo/texinfo.texi (Top Node Naming): * texinfo/texinfo.texi (ref): * texinfo/texinfo.texi (pxref): * texinfo/texinfo.texi (inforef): * texinfo/texinfo.texi (uref): * texinfo/texinfo.texi (cite): * texinfo/texinfo.texi (Marking Text): * texinfo/texinfo.texi (Indicating): * texinfo/texinfo.texi (Useful Highlighting): * texinfo/texinfo.texi (code): * texinfo/texinfo.texi (kbd): * texinfo/texinfo.texi (key): * texinfo/texinfo.texi (samp): * texinfo/texinfo.texi (verb): * texinfo/texinfo.texi (var): * texinfo/texinfo.texi (env): * texinfo/texinfo.texi (file): * texinfo/texinfo.texi (command): * texinfo/texinfo.texi (option): * texinfo/texinfo.texi (dfn): * texinfo/texinfo.texi (abbr): * texinfo/texinfo.texi (acronym): * texinfo/texinfo.texi (indicateurl): * texinfo/texinfo.texi (email): * texinfo/texinfo.texi (Emphasis): * texinfo/texinfo.texi (emph & strong): * texinfo/texinfo.texi (Smallcaps): * texinfo/texinfo.texi (Fonts): * texinfo/texinfo.texi (Quotations and Examples): * texinfo/texinfo.texi (Block Enclosing Commands): * texinfo/texinfo.texi (quotation): * texinfo/texinfo.texi (example): * texinfo/texinfo.texi (verbatim): * texinfo/texinfo.texi (verbatiminclude): * texinfo/texinfo.texi (lisp): * texinfo/texinfo.texi (small): * texinfo/texinfo.texi (display): * texinfo/texinfo.texi (format): * texinfo/texinfo.texi (exdent): * texinfo/texinfo.texi (flushleft & flushright): * texinfo/texinfo.texi (noindent): * texinfo/texinfo.texi (indent): * texinfo/texinfo.texi (cartouche): * texinfo/texinfo.texi (Lists and Tables): * texinfo/texinfo.texi (Introducing Lists): * texinfo/texinfo.texi (itemize): * texinfo/texinfo.texi (enumerate): * texinfo/texinfo.texi (Two-column Tables): * texinfo/texinfo.texi (table): * texinfo/texinfo.texi (ftable vtable): * texinfo/texinfo.texi (itemx): * texinfo/texinfo.texi (Multi-column Tables): * texinfo/texinfo.texi (Multitable Column Widths): * texinfo/texinfo.texi (Multitable Rows): * texinfo/texinfo.texi (Special Displays): * texinfo/texinfo.texi (Floats): * texinfo/texinfo.texi (float): * texinfo/texinfo.texi (caption shortcaption): * texinfo/texinfo.texi (listoffloats): * texinfo/texinfo.texi (Images): * texinfo/texinfo.texi (Image Syntax): * texinfo/texinfo.texi (Image Scaling): * texinfo/texinfo.texi (Footnotes): * texinfo/texinfo.texi (Footnote Commands): * texinfo/texinfo.texi (Footnote Styles): * texinfo/texinfo.texi (Indices): * texinfo/texinfo.texi (Index Entries): * texinfo/texinfo.texi (Predefined Indices): * texinfo/texinfo.texi (Indexing Commands): * texinfo/texinfo.texi (Combining Indices): * texinfo/texinfo.texi (syncodeindex): * texinfo/texinfo.texi (synindex): * texinfo/texinfo.texi (New Indices): * texinfo/texinfo.texi (Insertions): * texinfo/texinfo.texi (Atsign Braces Comma): * texinfo/texinfo.texi (Inserting an Atsign): * texinfo/texinfo.texi (Inserting Braces): * texinfo/texinfo.texi (Inserting a Comma): * texinfo/texinfo.texi (Inserting Quote Characters): * texinfo/texinfo.texi (Inserting Space): * texinfo/texinfo.texi (Not Ending a Sentence): * texinfo/texinfo.texi (Ending a Sentence): * texinfo/texinfo.texi (Multiple Spaces): * texinfo/texinfo.texi (frenchspacing): * texinfo/texinfo.texi (dmn): * texinfo/texinfo.texi (Inserting Accents): * texinfo/texinfo.texi (Inserting Quotation Marks): * texinfo/texinfo.texi (Dots Bullets): * texinfo/texinfo.texi (dots): * texinfo/texinfo.texi (bullet): * texinfo/texinfo.texi (TeX and copyright): * texinfo/texinfo.texi (tex): * texinfo/texinfo.texi (copyright symbol): * texinfo/texinfo.texi (registered symbol): * texinfo/texinfo.texi (euro): * texinfo/texinfo.texi (pounds): * texinfo/texinfo.texi (textdegree): * texinfo/texinfo.texi (minus): * texinfo/texinfo.texi (geq leq): * texinfo/texinfo.texi (math): * texinfo/texinfo.texi (Click Sequences): * texinfo/texinfo.texi (Glyphs): * texinfo/texinfo.texi (Glyphs Summary): * texinfo/texinfo.texi (result): * texinfo/texinfo.texi (expansion): * texinfo/texinfo.texi (Print Glyph): * texinfo/texinfo.texi (Error Glyph): * texinfo/texinfo.texi (Equivalence): * texinfo/texinfo.texi (Point Glyph): * texinfo/texinfo.texi (Breaks): * texinfo/texinfo.texi (Break Commands): * texinfo/texinfo.texi (Line Breaks): * texinfo/texinfo.texi (- and hyphenation): * texinfo/texinfo.texi (allowcodebreaks): * texinfo/texinfo.texi (w): * texinfo/texinfo.texi (tie): * texinfo/texinfo.texi (sp): * texinfo/texinfo.texi (page): * texinfo/texinfo.texi (group): * texinfo/texinfo.texi (need): * texinfo/texinfo.texi (Definition Commands): * texinfo/texinfo.texi (Def Cmd Template): * texinfo/texinfo.texi (Def Cmd Continuation Lines): * texinfo/texinfo.texi (Optional Arguments): * texinfo/texinfo.texi (deffnx): * texinfo/texinfo.texi (Def Cmds in Detail): * texinfo/texinfo.texi (Functions Commands): * texinfo/texinfo.texi (Variables Commands): * texinfo/texinfo.texi (Typed Functions): * texinfo/texinfo.texi (Typed Variables): * texinfo/texinfo.texi (Data Types): * texinfo/texinfo.texi (Abstract Objects): * texinfo/texinfo.texi (Object-Oriented Variables): * texinfo/texinfo.texi (Object-Oriented Methods): * texinfo/texinfo.texi (Defining Macros): * texinfo/texinfo.texi (Invoking Macros): * texinfo/texinfo.texi (Macro Details): * texinfo/texinfo.texi (alias): * texinfo/texinfo.texi (definfoenclose): * texinfo/texinfo.texi (Hardcopy): * texinfo/texinfo.texi (Use TeX): * texinfo/texinfo.texi (Format with tex/texindex): * texinfo/texinfo.texi (Format with texi2dvi): * texinfo/texinfo.texi (Print with lpr): * texinfo/texinfo.texi (Within XEmacs): * texinfo/texinfo.texi (Texinfo Mode Printing): * texinfo/texinfo.texi (Compile-Command): * texinfo/texinfo.texi (Requirements Summary): * texinfo/texinfo.texi (Preparing for TeX): * texinfo/texinfo.texi (Overfull hboxes): * texinfo/texinfo.texi (smallbook): * texinfo/texinfo.texi (A4 Paper): * texinfo/texinfo.texi (pagesizes): * texinfo/texinfo.texi (Cropmarks and Magnification): * texinfo/texinfo.texi (PDF Output): * texinfo/texinfo.texi (Obtaining TeX): * texinfo/texinfo.texi (Creating and Installing Info Files): * texinfo/texinfo.texi (Creating an Info File): * texinfo/texinfo.texi (makeinfo advantages): * texinfo/texinfo.texi (Invoking makeinfo): * texinfo/texinfo.texi (makeinfo options): * texinfo/texinfo.texi (Pointer Validation): * texinfo/texinfo.texi (makeinfo in XEmacs): * texinfo/texinfo.texi (texinfo-format commands): * texinfo/texinfo.texi (Batch Formatting): * texinfo/texinfo.texi (Tag and Split Files): * texinfo/texinfo.texi (Installing an Info File): * texinfo/texinfo.texi (Directory File): * texinfo/texinfo.texi (New Info File): * texinfo/texinfo.texi (Other Info Directories): * texinfo/texinfo.texi (Installing Dir Entries): * texinfo/texinfo.texi (Invoking install-info): * texinfo/texinfo.texi (Generating HTML): * texinfo/texinfo.texi (HTML Translation): * texinfo/texinfo.texi (HTML Splitting): * texinfo/texinfo.texi (HTML CSS): * texinfo/texinfo.texi (HTML Xref): * texinfo/texinfo.texi (HTML Xref Link Basics): * texinfo/texinfo.texi (HTML Xref Node Name Expansion): * texinfo/texinfo.texi (HTML Xref Command Expansion): * texinfo/texinfo.texi (HTML Xref 8-bit Character Expansion): * texinfo/texinfo.texi (HTML Xref Mismatch): * texinfo/texinfo.texi (Command List): * texinfo/texinfo.texi (Command Syntax): * texinfo/texinfo.texi (Tips): * texinfo/texinfo.texi (Sample Texinfo Files): * texinfo/texinfo.texi (Short Sample Texinfo File): * texinfo/texinfo.texi (GNU Sample Texts): * texinfo/texinfo.texi (Invoking sample): * texinfo/texinfo.texi (GNU Free Documentation License): * texinfo/texinfo.texi (Index): * texinfo/texinfo.texi (Verbatim Copying License): * texinfo/texinfo.texi (All-permissive Copying License): * texinfo/texinfo.texi (Include Files): * texinfo/texinfo.texi (Using Include Files): * texinfo/texinfo.texi (texinfo-multiple-files-update): * texinfo/texinfo.texi (Include Files Requirements): * texinfo/texinfo.texi (Sample Include File): * texinfo/texinfo.texi (Include Files Evolution): * texinfo/texinfo.texi (Headings): * texinfo/texinfo.texi (Headings Introduced): * texinfo/texinfo.texi (Heading Format): * texinfo/texinfo.texi (Heading Choice): * texinfo/texinfo.texi (Custom Headings): * texinfo/texinfo.texi (Catching Mistakes): * texinfo/texinfo.texi (makeinfo Preferred): * texinfo/texinfo.texi (Debugging with Info): * texinfo/texinfo.texi (Debugging with TeX): * texinfo/texinfo.texi (Using texinfo-show-structure): * texinfo/texinfo.texi (Using occur): * texinfo/texinfo.texi (Running Info-Validate): * texinfo/texinfo.texi (Using Info-validate): * texinfo/texinfo.texi (Unsplit): * texinfo/texinfo.texi (Tagifying): * texinfo/texinfo.texi (Splitting): * texinfo/texinfo.texi (Refilling Paragraphs): * texinfo/texinfo.texi (Command and Variable Index): * texinfo/texinfo.texi (General Index): * texinfo/version.texi: New file. Sync with FSF 23.1.92. Make new directory to hold the files needed to generate texinfo.info, since there are three such files now. 2010-02-19 Ben Wing <ben@xemacs.org> * Makefile: * Makefile (src_files1): * Makefile (DIR): * Makefile (texinfo-srcs): * Makefile ($(INFODIR)/widget.info): * Makefile ($(INFODIR)/texinfo.info): * Makefile (.PHONY): * Makefile (texinfo.dvi): * Makefile (texinfo.pdf): * Makefile ($(HTMLDIR)/widget.html): * Makefile ($(HTMLDIR)/texinfo.html): Incorporate texinfo.texi moving to a subdirectory texinfo/. Do some tricks to reduce the amount of duplication while still maintaining compatible with non-GNU make (at least, with Solaris make). * doclicense.texi: New file. * info.texi: * info.texi (Top): * info.texi (Getting Started): * info.texi (Help-Small-Screen): * info.texi (Help): * info.texi (Help-P): * info.texi (Help-^L): * info.texi (Help-Inv): * info.texi (Help-]): * info.texi (Help-M): * info.texi (Help-FOO): * info.texi (Help-Xref): * info.texi (Help-Int): * info.texi (Help-Q): * info.texi (Advanced): * info.texi (Search Text): * info.texi (Search Index): * info.texi (Go to node): * info.texi (Choose menu subtopic): * info.texi (Create Info buffer): * info.texi (XEmacs Info Variables): * info.texi (Expert Info): * info.texi (Add): * info.texi (Menus): * info.texi (Cross-refs): * info.texi (Help-Cross): * info.texi (Tags): * info.texi (Checking): * info.texi (Index): * texinfo.tex: * texinfo.tex (paragraphindent{%): * texinfo.tex (sectionheading will have): * texinfo.tex (chapterzzz{#3}%): * texinfo.tex (subsubsection = \numberedsubsubsec): * texinfo.tex (subsubsection = \appendixsubsubsec): * texinfo.tex (subsubsection = \unnumberedsubsubsec): * texinfo.tex (sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%): * texinfo.tex (sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%): * texinfo.tex (sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%): * texinfo.tex (sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%): * texinfo.tex (sectionheading{#1}{subsec}{Yappendix}%): * texinfo.tex (sectionheading{#1}{subsec}{Ynothing}%): * texinfo.tex (sectionheading{#1}{subsubsec}{Ynumbered}%): * texinfo.tex (sectionheading{#1}{subsubsec}{Yappendix}%): * texinfo.tex (sectionheading{#1}{subsubsec}{Ynothing}%): * texinfo.tex (sectionheading{#1}{subsubsec}{Yomitfromtoc}{}): * texinfo.tex (sectionheading to do the printing.): * texinfo.tex (sectionlevel}{#1}{#4}%): * texinfo.tex (sectionheading, q.v.): Sync with FSF 23.1.92.
author Ben Wing <ben@xemacs.org>
date Fri, 19 Feb 2010 22:39:19 -0600
parents cbe181529c34
children d4f666cda5e6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
1 /* Compiler-specific definitions for XEmacs.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
2 Copyright (C) 1998-1999, 2003 Free Software Foundation, Inc.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
3 Copyright (C) 1994 Richard Mlynarik.
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
4 Copyright (C) 1995, 1996, 2000-2004 Ben Wing.
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
5
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
6 This file is part of XEmacs.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
7
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
8 XEmacs is free software; you can redistribute it and/or modify it
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
11 later version.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
12
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
16 for more details.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
17
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
19 along with XEmacs; see the file COPYING. If not, write to
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
21 Boston, MA 02111-1307, USA. */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
22
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
23 /* Synched up with: not in FSF. */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
24
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
25 /* Authorship:
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
26
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
27 NOT_REACHED, DOESNT_RETURN, PRINTF_ARGS by Richard Mlynarik, c. 1994.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
28 RETURN_SANS_WARNING by Martin buchholz, 1998 or 1999.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
29 Many changes and improvements by Jerry James, 2003.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
30 Split out of lisp.h, reorganized, and modernized.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
31 {BEGIN,END}_C_DECLS, NEED_GCC, GCC_VERSION
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
32 ATTRIBUTE_MALLOC, ATTRIBUTE_CONST, ATTRIBUTE_PURE, UNUSED
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
33 */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
34
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
35 #ifndef INCLUDED_compiler_h
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
36 #define INCLUDED_compiler_h
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
37
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
38 /* Define min() and max(). (Some compilers put them in strange places that
3025
facf3239ba30 [xemacs-hg @ 2005-10-25 11:16:19 by ben]
ben
parents: 2500
diff changeset
39 won't be referenced by include files used by XEmacs, such as `macros.h'
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
40 under Solaris.) */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
41
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
42 #ifndef min
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
43 # define min(a,b) (((a) <= (b)) ? (a) : (b))
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
44 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
45 #ifndef max
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
46 # define max(a,b) (((a) > (b)) ? (a) : (b))
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
47 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
48
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
49 /* Regular C complains about possible clobbering of local vars NOT declared
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
50 as volatile if there's a longjmp() in a function. C++ complains if such
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
51 vars ARE volatile; or more correctly, sans volatile no problem even when
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
52 you longjmp, avec volatile you get unfixable compile errors like
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
53
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
54 /src/xemacs/lilfix/src/process-unix.c: In function `void
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
55 unix_send_process(Lisp_Object, lstream*)':
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
56 /src/xemacs/lilfix/src/process-unix.c:1577: no matching function for call to `
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
57 Lisp_Object::Lisp_Object(volatile Lisp_Object&)'
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
58 /src/xemacs/lilfix/src/lisp-union.h:32: candidates are:
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
59 Lisp_Object::Lisp_Object(const Lisp_Object&)
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
60 */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
61
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
62 #ifdef __cplusplus
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
63 # define VOLATILE_IF_NOT_CPP
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
64 #else
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
65 # define VOLATILE_IF_NOT_CPP volatile
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
66 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
67
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
68 /* Avoid indentation problems when XEmacs sees the curly braces */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
69 #ifndef BEGIN_C_DECLS
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
70 # ifdef __cplusplus
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
71 # define BEGIN_C_DECLS extern "C" {
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
72 # define END_C_DECLS }
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
73 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
74 # define BEGIN_C_DECLS
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
75 # define END_C_DECLS
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
76 # endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
77 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
78
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
79 /* Guard against older gccs that did not define all of these symbols */
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
80 #ifdef __GNUC__
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
81 # ifndef __GNUC_MINOR__
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
82 # define __GNUC_MINOR__ 0
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
83 # endif
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
84 # ifndef __GNUC_PATCHLEVEL__
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
85 # define __GNUC_PATCHLEVEL__ 0
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
86 # endif
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
87 #endif /* __GNUC__ */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
88
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
89 /* Simplify testing for specific GCC versions. For non-GNU compilers,
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
90 GCC_VERSION evaluates to zero. */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
91 #ifndef NEED_GCC
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
92 # define NEED_GCC(major,minor,patch) (major * 1000000 + minor * 1000 + patch)
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
93 #endif /* NEED_GCC */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
94 #ifndef GCC_VERSION
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
95 # ifdef __GNUC__
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
96 # define GCC_VERSION NEED_GCC (__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
97 # else
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
98 # define GCC_VERSION 0
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
99 # endif /* __GNUC__ */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
100 #endif /* GCC_VERSION */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
101
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
102 #ifdef _MSC_VER
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
103 #define MSC_VERSION _MSC_VER
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
104 #else
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
105 #define MSC_VERSION 0
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
106 #endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
107
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
108 /* GCC < 2.6.0 could only declare one attribute per function. In that case,
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
109 we define DOESNT_RETURN in preference to PRINTF_ARGS, which is only used
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
110 for checking args against the string spec. */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
111 #ifndef PRINTF_ARGS
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
112 # if (GCC_VERSION >= NEED_GCC (2, 6, 0))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
113 # define PRINTF_ARGS(string_index,first_to_check) \
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
114 __attribute__ ((format (printf, string_index, first_to_check)))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
115 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
116 # define PRINTF_ARGS(string_index,first_to_check)
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
117 # endif /* GNUC */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
118 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
119
2268
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
120 #ifndef DOESNT_RETURN_TYPE
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
121 # if (GCC_VERSION > NEED_GCC (0, 0, 0))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
122 # if (GCC_VERSION >= NEED_GCC (2, 5, 0))
2270
0be6ff2356c8 [xemacs-hg @ 2004-09-14 18:22:31 by james]
james
parents: 2268
diff changeset
123 # ifndef __INTEL_COMPILER
0be6ff2356c8 [xemacs-hg @ 2004-09-14 18:22:31 by james]
james
parents: 2268
diff changeset
124 # define RETURN_NOT_REACHED(value) DO_NOTHING
0be6ff2356c8 [xemacs-hg @ 2004-09-14 18:22:31 by james]
james
parents: 2268
diff changeset
125 # endif
2268
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
126 # define DOESNT_RETURN_TYPE(rettype) rettype
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
127 # define DECLARE_DOESNT_RETURN_TYPE(rettype,decl) rettype decl \
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
128 __attribute__ ((noreturn))
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
129 # else /* GCC_VERSION < NEED_GCC (2, 5, 0) */
2268
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
130 # define DOESNT_RETURN_TYPE(rettype) rettype volatile
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
131 # define DECLARE_DOESNT_RETURN_TYPE(rettype,decl) rettype volatile decl
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
132 # endif /* GCC_VERSION >= NEED_GCC (2, 5, 0) */
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
133 # elif (MSC_VERSION >= 1200)
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
134 /* MSVC 6.0 has a mechanism to declare functions which never return */
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
135 # define DOESNT_RETURN_TYPE(rettype) __declspec(noreturn) rettype
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
136 # define DECLARE_DOESNT_RETURN_TYPE(rettype,decl) \
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
137 __declspec(noreturn) rettype XCDECL decl
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
138 # if (MSC_VERSION >= 1300)
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
139 /* VC++ 7 issues warnings about return statements in __declspec(noreturn)
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
140 functions; this problem didn't exist under VC++ 6 */
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
141 # define RETURN_NOT_REACHED(value) DO_NOTHING
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
142 # endif
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
143 # else /* not gcc, VC++ */
2268
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
144 # define DOESNT_RETURN_TYPE(rettype) rettype
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
145 # define DECLARE_DOESNT_RETURN_TYPE(rettype,decl) rettype decl
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
146 # endif /* GCC_VERSION > NEED_GCC (0, 0, 0) */
2268
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
147 #endif /* DOESNT_RETURN_TYPE */
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
148 #ifndef DOESNT_RETURN
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
149 # define DOESNT_RETURN DOESNT_RETURN_TYPE (void)
61855263cb07 [xemacs-hg @ 2004-09-14 14:32:29 by james]
james
parents: 1748
diff changeset
150 # define DECLARE_DOESNT_RETURN(decl) DECLARE_DOESNT_RETURN_TYPE (void, decl)
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
151 #endif /* DOESNT_RETURN */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
152
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
153 /* Another try to fix SunPro C compiler warnings */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
154 /* "end-of-loop code not reached" */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
155 /* "statement not reached */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
156 #if defined __SUNPRO_C || defined __USLC__
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
157 # define RETURN_SANS_WARNINGS if (1) return
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
158 # define RETURN_NOT_REACHED(value) DO_NOTHING
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
159 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
160
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
161 /* More ways to shut up compiler. This works in Fcommand_loop_1(),
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
162 where there's an infinite loop in a function returning a Lisp object.
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
163 */
2500
3d8143fc88e1 [xemacs-hg @ 2005-01-24 23:33:30 by ben]
ben
parents: 2367
diff changeset
164 #if (defined (_MSC_VER) && MSC_VERSION < 1300) || defined (__SUNPRO_C) || \
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 4028
diff changeset
165 defined (__SUNPRO_CC)
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
166 # define DO_NOTHING_DISABLING_NO_RETURN_WARNINGS if (0) return Qnil
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
167 #else
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
168 # define DO_NOTHING_DISABLING_NO_RETURN_WARNINGS DO_NOTHING
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
169 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
170
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
171 #ifndef RETURN_NOT_REACHED
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
172 # define RETURN_NOT_REACHED(value) return (value)
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
173 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
174
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
175 #ifndef RETURN_SANS_WARNINGS
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
176 # define RETURN_SANS_WARNINGS return
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
177 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
178
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
179 #ifndef DO_NOTHING
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
180 # define DO_NOTHING do {} while (0)
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
181 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
182
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
183 #ifndef DECLARE_NOTHING
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
184 # define DECLARE_NOTHING struct nosuchstruct
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
185 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
186
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
187 #ifndef ATTRIBUTE_MALLOC
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
188 # if (GCC_VERSION >= NEED_GCC (2, 96, 0))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
189 # define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
190 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
191 # define ATTRIBUTE_MALLOC
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
192 # endif /* GCC_VERSION >= NEED_GCC (2, 96, 0) */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
193 #endif /* ATTRIBUTE_MALLOC */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
194
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
195 #ifndef ATTRIBUTE_PURE
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
196 # if (GCC_VERSION >= NEED_GCC (2, 96, 0))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
197 # define ATTRIBUTE_PURE __attribute__ ((pure))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
198 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
199 # define ATTRIBUTE_PURE
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
200 # endif /* GCC_VERSION >= NEED_GCC (2, 96, 0) */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
201 #endif /* ATTRIBUTE_PURE */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
202
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
203 #ifndef ATTRIBUTE_CONST
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
204 # if (GCC_VERSION >= NEED_GCC (2, 5, 0))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
205 # define ATTRIBUTE_CONST __attribute__ ((const))
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
206 # define CONST_FUNC
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
207 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
208 # define ATTRIBUTE_CONST
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
209 # define CONST_FUNC const
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
210 # endif /* GCC_VERSION >= NEED_GCC (2, 5, 0) */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
211 #endif /* ATTRIBUTE_CONST */
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
212
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
213 /*
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
214 NOTE: These macros MUST be named UNUSED (exactly) or something
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
215 prefixed with USED_IF_, or DEFUN docstrings will be parsed incorrectly.
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
216 See comments in make_docfile.c (write_c_args). You'd think that this
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
217 wouldn't happen, but unfortunately we do indeed have some arguments
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
218 of DEFUNs unused for GNU compatibility or because features are missing.
4028
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
219
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
220 #### At one time, __attribute__ ((unused)) confused G++. We don't know
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
221 which versions. Please report problems and fix conditionals.
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
222 #### A similar issue arose with the Intel CC. We know that v7 didn't
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
223 work and v9 does. Let us know if v8 works or not, please.
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
224 See <m34plsmh88.fsf@jerrypc.cs.usu.edu>.
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
225 */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
226 #ifndef UNUSED_ARG
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
227 # define UNUSED_ARG(decl) unused_##decl
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
228 #endif
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
229 #ifndef UNUSED
4028
f386b9b92417 [xemacs-hg @ 2007-06-22 17:15:34 by stephent]
stephent
parents: 3094
diff changeset
230 # if defined(__GNUC__) && (!defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 800)
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
231 # define ATTRIBUTE_UNUSED __attribute__ ((unused))
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
232 # else
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
233 # define ATTRIBUTE_UNUSED
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
234 # endif
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
235 # define UNUSED(decl) UNUSED_ARG (decl) ATTRIBUTE_UNUSED
2333
ba4677f54a05 [xemacs-hg @ 2004-10-14 17:26:18 by james]
james
parents: 2286
diff changeset
236 # ifdef MULE
ba4677f54a05 [xemacs-hg @ 2004-10-14 17:26:18 by james]
james
parents: 2286
diff changeset
237 # define USED_IF_MULE(decl) decl
ba4677f54a05 [xemacs-hg @ 2004-10-14 17:26:18 by james]
james
parents: 2286
diff changeset
238 # else
ba4677f54a05 [xemacs-hg @ 2004-10-14 17:26:18 by james]
james
parents: 2286
diff changeset
239 # define USED_IF_MULE(decl) UNUSED (decl)
ba4677f54a05 [xemacs-hg @ 2004-10-14 17:26:18 by james]
james
parents: 2286
diff changeset
240 # endif
4916
a6c778975d7d split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents: 4908
diff changeset
241 # ifdef HAVE_XFT
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
242 # define USED_IF_XFT(decl) decl
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
243 # else
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
244 # define USED_IF_XFT(decl) UNUSED (decl)
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 3025
diff changeset
245 # endif
4932
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
246 # ifdef HAVE_SCROLLBARS
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
247 # define USED_IF_SCROLLBARS(decl) decl
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
248 # else
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
249 # define USED_IF_SCROLLBARS(decl) UNUSED (decl)
8b63e21b0436 fix compile issues with gcc 4
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
250 # endif
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 2270
diff changeset
251 #endif /* UNUSED */
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
252
4908
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
253 /* Declaration that variable or expression X is "used" to defeat
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
254 "unused variable" warnings. DON'T DO THIS FOR PARAMETERS IF IT ALL
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
255 POSSIBLE. Use an UNUSED() or USED_IF_*() declaration on the parameter
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
256 instead. Don't do this for unused local variables that should really
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
257 just be deleted. */
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
258 #define USED(x) ((void) (x))
b3ce27ca7647 various fixes related to gtk, redisplay-xlike-inc.c
Ben Wing <ben@xemacs.org>
parents: 4860
diff changeset
259
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
260 #ifdef DEBUG_XEMACS
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
261 # define REGISTER
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
262 # define register
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
263 #else
1748
19b0fcab3f47 [xemacs-hg @ 2003-10-14 17:01:09 by james]
james
parents: 1744
diff changeset
264 # define REGISTER register
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
265 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
266
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
267 #if defined(HAVE_MS_WINDOWS) && defined(HAVE_SHLIB)
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
268 # ifdef EMACS_MODULE
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
269 # define MODULE_API __declspec(dllimport)
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
270 # else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
271 # define MODULE_API __declspec(dllexport)
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
272 # endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
273 #else
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
274 # define MODULE_API
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
275 #endif
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
276
2367
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
277 /* Under "strict-aliasing" assumptions, you're not necessarily allowed to
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
278 access the same memory address as two different types. The proper way
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
279 around that is with a union. The macros below help out, e.g. the
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
280 definition of XE_MAKEPOINTS(val) is
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
281
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
282 ANSI_ALIASING_TYPEDEF (POINTS, POINTS);
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
283 #define XE_MAKEPOINTS(l) ANSI_ALIASING_CAST (POINTS, l)
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
284
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
285 replacing
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
286
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
287 BAD!!! #define XE_MAKEPOINTS(l) (* (POINTS *) &(l))
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
288
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
289 On the other hand, if you are just casting from one pointer to the other
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
290 in order to pass a pointer to another function, it's probably OK to just
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
291 trick GCC by inserting an intermediate cast to (void *), to avoid
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
292 warnings about "dereferencing type-punned pointer". #### I don't know
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
293 how kosher this is, but do strict-aliasing rules really apply across
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
294 functions?
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
295
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
296 Note that the input to e.g. VOIDP_CAST must be an lvalue (i.e. not
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
297 &(something)), but the value of the macro is also an lvalue, so in place
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
298 of `(void **) &foo' you could write `& VOIDP_CAST (foo)' if you are
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
299 subsequently dereferencing the value or don't feel comfortable doing a
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
300 trick like `(void **) (void *) &foo'.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
301
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
302 Unfortunately, it does not work to just define the union type on the fly in
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
303 the cast -- otherwise, we could avoid the need for a typedef. Or rather,
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
304 it does work under gcc but not under Visual C++.
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
305
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
306 --ben
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
307 */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
308
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
309 #define ANSI_ALIASING_TYPEDEF(name, type) typedef union { char c; type p; } *ANSI_ALIASING_##name
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
310 #define ANSI_ALIASING_CAST(name, val) (((ANSI_ALIASING_##name) &(val))->p)
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
311 ANSI_ALIASING_TYPEDEF (voidp, void *);
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
312 /* VOIDP_CAST: Cast an lvalue to (void *) in a way that is ANSI-aliasing
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
313 safe and will not result in GCC warnings. The result is still an
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
314 lvalue, so you can assign to it or take its address. */
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
315 #define VOIDP_CAST(l) ANSI_ALIASING_CAST (voidp, l)
ecf1ebac70d8 [xemacs-hg @ 2004-11-04 23:05:23 by ben]
ben
parents: 2333
diff changeset
316
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents:
diff changeset
317 #endif /* INCLUDED_compiler_h */