]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/doc/cpp.info-4
State of the tree after a full build and a debian/rules clean. Dirty orig.tar?
[msp430-gcc.git] / gcc / doc / cpp.info-4
diff --git a/gcc/doc/cpp.info-4 b/gcc/doc/cpp.info-4
deleted file mode 100644 (file)
index d33f2cb..0000000
+++ /dev/null
@@ -1,1054 +0,0 @@
-This is doc/cpp.info, produced by makeinfo version 4.5 from
-doc/cpp.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* Cpp: (cpp).                 The GNU C preprocessor.
-END-INFO-DIR-ENTRY
-
-\1f
-File: cpp.info,  Node: Invocation,  Next: Environment Variables,  Prev: Implementation Details,  Up: Top
-
-Invocation
-**********
-
-   Most often when you use the C preprocessor you will not have to
-invoke it explicitly: the C compiler will do so automatically.
-However, the preprocessor is sometimes useful on its own.  All the
-options listed here are also acceptable to the C compiler and have the
-same meaning, except that the C compiler has different rules for
-specifying the output file.
-
-   *Note:* Whether you use the preprocessor by way of `gcc' or `cpp',
-the "compiler driver" is run first.  This program's purpose is to
-translate your command into invocations of the programs that do the
-actual work.  Their command line interfaces are similar but not
-identical to the documented interface, and may change without notice.
-
-   The C preprocessor expects two file names as arguments, INFILE and
-OUTFILE.  The preprocessor reads INFILE together with any other files
-it specifies with `#include'.  All the output generated by the combined
-input files is written in OUTFILE.
-
-   Either INFILE or OUTFILE may be `-', which as INFILE means to read
-from standard input and as OUTFILE means to write to standard output.
-Also, if either file is omitted, it means the same as if `-' had been
-specified for that file.
-
-   Unless otherwise noted, or the option ends in `=', all options which
-take an argument may have that argument appear either immediately after
-the option, or with a space between option and argument: `-Ifoo' and
-`-I foo' have the same effect.
-
-   Many options have multi-letter names; therefore multiple
-single-letter options may _not_ be grouped: `-dM' is very different from
-`-d -M'.
-
-`-D NAME'
-     Predefine NAME as a macro, with definition `1'.
-
-`-D NAME=DEFINITION'
-     Predefine NAME as a macro, with definition DEFINITION.  There are
-     no restrictions on the contents of DEFINITION, but if you are
-     invoking the preprocessor from a shell or shell-like program you
-     may need to use the shell's quoting syntax to protect characters
-     such as spaces that have a meaning in the shell syntax.
-
-     If you wish to define a function-like macro on the command line,
-     write its argument list with surrounding parentheses before the
-     equals sign (if any).  Parentheses are meaningful to most shells,
-     so you will need to quote the option.  With `sh' and `csh',
-     `-D'NAME(ARGS...)=DEFINITION'' works.
-
-     `-D' and `-U' options are processed in the order they are given on
-     the command line.  All `-imacros FILE' and `-include FILE' options
-     are processed after all `-D' and `-U' options.
-
-`-U NAME'
-     Cancel any previous definition of NAME, either built in or
-     provided with a `-D' option.
-
-`-undef'
-     Do not predefine any system-specific macros.  The common predefined
-     macros remain defined.
-
-`-I DIR'
-     Add the directory DIR to the list of directories to be searched
-     for header files.  *Note Search Path::.  Directories named by `-I'
-     are searched before the standard system include directories.
-
-     It is dangerous to specify a standard system include directory in
-     an `-I' option.  This defeats the special treatment of system
-     headers (*note System Headers::) .  It can also defeat the repairs
-     to buggy system headers which GCC makes when it is installed.
-
-`-o FILE'
-     Write output to FILE.  This is the same as specifying FILE as the
-     second non-option argument to `cpp'.  `gcc' has a different
-     interpretation of a second non-option argument, so you must use
-     `-o' to specify the output file.
-
-`-Wall'
-     Turns on all optional warnings which are desirable for normal
-     code.  At present this is `-Wcomment' and `-Wtrigraphs'.  Note that
-     many of the preprocessor's warnings are on by default and have no
-     options to control them.
-
-`-Wcomment'
-`-Wcomments'
-     Warn whenever a comment-start sequence `/*' appears in a `/*'
-     comment, or whenever a backslash-newline appears in a `//' comment.
-     (Both forms have the same effect.)
-
-`-Wtrigraphs'
-     Warn if any trigraphs are encountered.  This option used to take
-     effect only if `-trigraphs' was also specified, but now works
-     independently.  Warnings are not given for trigraphs within
-     comments, as they do not affect the meaning of the program.
-
-`-Wtraditional'
-     Warn about certain constructs that behave differently in
-     traditional and ISO C.  Also warn about ISO C constructs that have
-     no traditional C equivalent, and problematic constructs which
-     should be avoided.  *Note Traditional Mode::.
-
-`-Wimport'
-     Warn the first time `#import' is used.
-
-`-Wundef'
-     Warn whenever an identifier which is not a macro is encountered in
-     an `#if' directive, outside of `defined'.  Such identifiers are
-     replaced with zero.
-
-`-Werror'
-     Make all warnings into hard errors.  Source code which triggers
-     warnings will be rejected.
-
-`-Wsystem-headers'
-     Issue warnings for code in system headers.  These are normally
-     unhelpful in finding bugs in your own code, therefore suppressed.
-     If you are responsible for the system library, you may want to see
-     them.
-
-`-w'
-     Suppress all warnings, including those which GNU CPP issues by
-     default.
-
-`-pedantic'
-     Issue all the mandatory diagnostics listed in the C standard.
-     Some of them are left out by default, since they trigger
-     frequently on harmless code.
-
-`-pedantic-errors'
-     Issue all the mandatory diagnostics, and make all mandatory
-     diagnostics into errors.  This includes mandatory diagnostics that
-     GCC issues without `-pedantic' but treats as warnings.
-
-`-M'
-     Instead of outputting the result of preprocessing, output a rule
-     suitable for `make' describing the dependencies of the main source
-     file.  The preprocessor outputs one `make' rule containing the
-     object file name for that source file, a colon, and the names of
-     all the included files, including those coming from `-include' or
-     `-imacros' command line options.
-
-     Unless specified explicitly (with `-MT' or `-MQ'), the object file
-     name consists of the basename of the source file with any suffix
-     replaced with object file suffix.  If there are many included
-     files then the rule is split into several lines using `\'-newline.
-     The rule has no commands.
-
-     This option does not suppress the preprocessor's debug output,
-     such as `-dM'.  To avoid mixing such debug output with the
-     dependency rules you should explicitly specify the dependency
-     output file with `-MF', or use an environment variable like
-     `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::).  Debug output
-     will still be sent to the regular output stream as normal.
-
-     Passing `-M' to the driver implies `-E'.
-
-`-MM'
-     Like `-M' but do not mention header files that are found in system
-     header directories, nor header files that are included, directly
-     or indirectly, from such a header.
-
-     This implies that the choice of angle brackets or double quotes in
-     an `#include' directive does not in itself determine whether that
-     header will appear in `-MM' dependency output.  This is a slight
-     change in semantics from GCC versions 3.0 and earlier.
-
-`-MF FILE'
-     When used with `-M' or `-MM', specifies a file to write the
-     dependencies to.  If no `-MF' switch is given the preprocessor
-     sends the rules to the same place it would have sent preprocessed
-     output.
-
-     When used with the driver options `-MD' or `-MMD', `-MF' overrides
-     the default dependency output file.
-
-`-MG'
-     When used with `-M' or `-MM', `-MG' says to treat missing header
-     files as generated files and assume they live in the same
-     directory as the source file.  It suppresses preprocessed output,
-     as a missing header file is ordinarily an error.
-
-     This feature is used in automatic updating of makefiles.
-
-`-MP'
-     This option instructs CPP to add a phony target for each dependency
-     other than the main file, causing each to depend on nothing.  These
-     dummy rules work around errors `make' gives if you remove header
-     files without updating the `Makefile' to match.
-
-     This is typical output:
-
-          test.o: test.c test.h
-          
-          test.h:
-
-`-MT TARGET'
-     Change the target of the rule emitted by dependency generation.  By
-     default CPP takes the name of the main input file, including any
-     path, deletes any file suffix such as `.c', and appends the
-     platform's usual object suffix.  The result is the target.
-
-     An `-MT' option will set the target to be exactly the string you
-     specify.  If you want multiple targets, you can specify them as a
-     single argument to `-MT', or use multiple `-MT' options.
-
-     For example, `-MT '$(objpfx)foo.o'' might give
-
-          $(objpfx)foo.o: foo.c
-
-`-MQ TARGET'
-     Same as `-MT', but it quotes any characters which are special to
-     Make.  `-MQ '$(objpfx)foo.o'' gives
-
-          $$(objpfx)foo.o: foo.c
-
-     The default target is automatically quoted, as if it were given
-     with `-MQ'.
-
-`-MD'
-     `-MD' is equivalent to `-M -MF FILE', except that `-E' is not
-     implied.  The driver determines FILE based on whether an `-o'
-     option is given.  If it is, the driver uses its argument but with
-     a suffix of `.d', otherwise it take the basename of the input file
-     and applies a `.d' suffix.
-
-     If `-MD' is used in conjunction with `-E', any `-o' switch is
-     understood to specify the dependency output file (but *note
-     -MF::), but if used without `-E', each `-o' is understood to
-     specify a target object file.
-
-     Since `-E' is not implied, `-MD' can be used to generate a
-     dependency output file as a side-effect of the compilation process.
-
-`-MMD'
-     Like `-MD' except mention only user header files, not system
-     -header files.
-
-`-x c'
-`-x c++'
-`-x objective-c'
-`-x assembler-with-cpp'
-     Specify the source language: C, C++, Objective-C, or assembly.
-     This has nothing to do with standards conformance or extensions;
-     it merely selects which base syntax to expect.  If you give none
-     of these options, cpp will deduce the language from the extension
-     of the source file: `.c', `.cc', `.m', or `.S'.  Some other common
-     extensions for C++ and assembly are also recognized.  If cpp does
-     not recognize the extension, it will treat the file as C; this is
-     the most generic mode.
-
-     *Note:* Previous versions of cpp accepted a `-lang' option which
-     selected both the language and the standards conformance level.
-     This option has been removed, because it conflicts with the `-l'
-     option.
-
-`-std=STANDARD'
-`-ansi'
-     Specify the standard to which the code should conform.  Currently
-     cpp only knows about the standards for C; other language standards
-     will be added in the future.
-
-     STANDARD may be one of:
-    `iso9899:1990'
-    `c89'
-          The ISO C standard from 1990.  `c89' is the customary
-          shorthand for this version of the standard.
-
-          The `-ansi' option is equivalent to `-std=c89'.
-
-    `iso9899:199409'
-          The 1990 C standard, as amended in 1994.
-
-    `iso9899:1999'
-    `c99'
-    `iso9899:199x'
-    `c9x'
-          The revised ISO C standard, published in December 1999.
-          Before publication, this was known as C9X.
-
-    `gnu89'
-          The 1990 C standard plus GNU extensions.  This is the default.
-
-    `gnu99'
-    `gnu9x'
-          The 1999 C standard plus GNU extensions.
-
-`-I-'
-     Split the include path.  Any directories specified with `-I'
-     options before `-I-' are searched only for headers requested with
-     `#include "FILE"'; they are not searched for `#include <FILE>'.
-     If additional directories are specified with `-I' options after
-     the `-I-', those directories are searched for all `#include'
-     directives.
-
-     In addition, `-I-' inhibits the use of the directory of the current
-     file directory as the first search directory for `#include "FILE"'.
-     *Note Search Path::.
-
-`-nostdinc'
-     Do not search the standard system directories for header files.
-     Only the directories you have specified with `-I' options (and the
-     directory of the current file, if appropriate) are searched.
-
-`-nostdinc++'
-     Do not search for header files in the C++-specific standard
-     directories, but do still search the other standard directories.
-     (This option is used when building the C++ library.)
-
-`-include FILE'
-     Process FILE as if `#include "file"' appeared as the first line of
-     the primary source file.  However, the first directory searched
-     for FILE is the preprocessor's working directory _instead of_ the
-     directory containing the main source file.  If not found there, it
-     is searched for in the remainder of the `#include "..."' search
-     chain as normal.
-
-     If multiple `-include' options are given, the files are included
-     in the order they appear on the command line.
-
-`-imacros FILE'
-     Exactly like `-include', except that any output produced by
-     scanning FILE is thrown away.  Macros it defines remain defined.
-     This allows you to acquire all the macros from a header without
-     also processing its declarations.
-
-     All files specified by `-imacros' are processed before all files
-     specified by `-include'.
-
-`-idirafter DIR'
-     Search DIR for header files, but do it _after_ all directories
-     specified with `-I' and the standard system directories have been
-     exhausted.  DIR is treated as a system include directory.
-
-`-iprefix PREFIX'
-     Specify PREFIX as the prefix for subsequent `-iwithprefix'
-     options.  If the prefix represents a directory, you should include
-     the final `/'.
-
-`-iwithprefix DIR'
-`-iwithprefixbefore DIR'
-     Append DIR to the prefix specified previously with `-iprefix', and
-     add the resulting directory to the include search path.
-     `-iwithprefixbefore' puts it in the same place `-I' would;
-     `-iwithprefix' puts it where `-idirafter' would.
-
-     Use of these options is discouraged.
-
-`-isystem DIR'
-     Search DIR for header files, after all directories specified by
-     `-I' but before the standard system directories.  Mark it as a
-     system directory, so that it gets the same special treatment as is
-     applied to the standard system directories.  *Note System
-     Headers::.
-
-`-fpreprocessed'
-     Indicate to the preprocessor that the input file has already been
-     preprocessed.  This suppresses things like macro expansion,
-     trigraph conversion, escaped newline splicing, and processing of
-     most directives.  The preprocessor still recognizes and removes
-     comments, so that you can pass a file preprocessed with `-C' to
-     the compiler without problems.  In this mode the integrated
-     preprocessor is little more than a tokenizer for the front ends.
-
-     `-fpreprocessed' is implicit if the input file has one of the
-     extensions `.i', `.ii' or `.mi'.  These are the extensions that
-     GCC uses for preprocessed files created by `-save-temps'.
-
-`-ftabstop=WIDTH'
-     Set the distance between tab stops.  This helps the preprocessor
-     report correct column numbers in warnings or errors, even if tabs
-     appear on the line.  If the value is less than 1 or greater than
-     100, the option is ignored.  The default is 8.
-
-`-fno-show-column'
-     Do not print column numbers in diagnostics.  This may be necessary
-     if diagnostics are being scanned by a program that does not
-     understand the column numbers, such as `dejagnu'.
-
-`-A PREDICATE=ANSWER'
-     Make an assertion with the predicate PREDICATE and answer ANSWER.
-     This form is preferred to the older form `-A PREDICATE(ANSWER)',
-     which is still supported, because it does not use shell special
-     characters.  *Note Assertions::.
-
-`-A -PREDICATE=ANSWER'
-     Cancel an assertion with the predicate PREDICATE and answer ANSWER.
-
-`-A-'
-     Cancel all predefined assertions and all assertions preceding it on
-     the command line.  Also, undefine all predefined macros and all
-     macros preceding it on the command line.  (This is a historical
-     wart and may change in the future.)
-
-`-dCHARS'
-     CHARS is a sequence of one or more of the following characters,
-     and must not be preceded by a space.  Other characters are
-     interpreted by the compiler proper, or reserved for future
-     versions of GCC, and so are silently ignored.  If you specify
-     characters whose behavior conflicts, the result is undefined.
-
-    `M'
-          Instead of the normal output, generate a list of `#define'
-          directives for all the macros defined during the execution of
-          the preprocessor, including predefined macros.  This gives
-          you a way of finding out what is predefined in your version
-          of the preprocessor.  Assuming you have no file `foo.h', the
-          command
-
-               touch foo.h; cpp -dM foo.h
-
-          will show all the predefined macros.
-
-    `D'
-          Like `M' except in two respects: it does _not_ include the
-          predefined macros, and it outputs _both_ the `#define'
-          directives and the result of preprocessing.  Both kinds of
-          output go to the standard output file.
-
-    `N'
-          Like `D', but emit only the macro names, not their expansions.
-
-    `I'
-          Output `#include' directives in addition to the result of
-          preprocessing.
-
-`-P'
-     Inhibit generation of linemarkers in the output from the
-     preprocessor.  This might be useful when running the preprocessor
-     on something that is not C code, and will be sent to a program
-     which might be confused by the linemarkers.  *Note Preprocessor
-     Output::.
-
-`-C'
-     Do not discard comments.  All comments are passed through to the
-     output file, except for comments in processed directives, which
-     are deleted along with the directive.
-
-     You should be prepared for side effects when using `-C'; it causes
-     the preprocessor to treat comments as tokens in their own right.
-     For example, comments appearing at the start of what would be a
-     directive line have the effect of turning that line into an
-     ordinary source line, since the first token on the line is no
-     longer a `#'.
-
-`-gcc'
-     Define the macros __GNUC__, __GNUC_MINOR__ and
-     __GNUC_PATCHLEVEL__.  These are defined automatically when you use
-     `gcc -E'; you can turn them off in that case with `-no-gcc'.
-
-`-traditional'
-     Try to imitate the behavior of old-fashioned C, as opposed to ISO
-     C.  *Note Traditional Mode::.
-
-`-trigraphs'
-     Process trigraph sequences.  *Note Initial processing::.
-
-`-remap'
-     Enable special code to work around file systems which only permit
-     very short file names, such as MS-DOS.
-
-`-$'
-     Forbid the use of `$' in identifiers.  The C standard allows
-     implementations to define extra characters that can appear in
-     identifiers.  By default GNU CPP permits `$', a common extension.
-
-`-h'
-`--help'
-`--target-help'
-     Print text describing all the command line options instead of
-     preprocessing anything.
-
-`-v'
-     Verbose mode.  Print out GNU CPP's version number at the beginning
-     of execution, and report the final form of the include path.
-
-`-H'
-     Print the name of each header file used, in addition to other
-     normal activities.  Each name is indented to show how deep in the
-     `#include' stack it is.
-
-`-version'
-`--version'
-     Print out GNU CPP's version number.  With one dash, proceed to
-     preprocess as normal.  With two dashes, exit immediately.
-
-\1f
-File: cpp.info,  Node: Environment Variables,  Next: GNU Free Documentation License,  Prev: Invocation,  Up: Top
-
-Environment Variables
-*********************
-
-   This section describes the environment variables that affect how CPP
-operates.  You can use them to specify directories or prefixes to use
-when searching for include files, or to control dependency output.
-
-   Note that you can also specify places to search using options such as
-`-I', and control dependency output with options like `-M' (*note
-Invocation::).  These take precedence over environment variables, which
-in turn take precedence over the configuration of GCC.
-
-`CPATH'
-`C_INCLUDE_PATH'
-`CPLUS_INCLUDE_PATH'
-`OBJC_INCLUDE_PATH'
-     Each variable's value is a list of directories separated by a
-     special character, much like `PATH', in which to look for header
-     files.  The special character, `PATH_SEPARATOR', is
-     target-dependent and determined at GCC build time.  For
-     Windows-based targets it is a semicolon, and for almost all other
-     targets it is a colon.
-
-     `CPATH' specifies a list of directories to be searched as if
-     specified with `-I', but after any paths given with `-I' options
-     on the command line.  The environment variable is used regardless
-     of which language is being preprocessed.
-
-     The remaining environment variables apply only when preprocessing
-     the particular language indicated.  Each specifies a list of
-     directories to be searched as if specified with `-isystem', but
-     after any paths given with `-isystem' options on the command line.
-
-     See also *Note Search Path::.
-
-`DEPENDENCIES_OUTPUT'
-     If this variable is set, its value specifies how to output
-     dependencies for Make based on the non-system header files
-     processed by the compiler.  System header files are ignored in the
-     dependency output.
-
-     The value of `DEPENDENCIES_OUTPUT' can be just a file name, in
-     which case the Make rules are written to that file, guessing the
-     target name from the source file name.  Or the value can have the
-     form `FILE TARGET', in which case the rules are written to file
-     FILE using TARGET as the target name.
-
-     In other words, this environment variable is equivalent to
-     combining the options `-MM' and `-MF' (*note Invocation::), with
-     an optional `-MT' switch too.
-
-`SUNPRO_DEPENDENCIES'
-     This variable is the same as the environment variable
-     `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::), except that
-     system header files are not ignored, so it implies `-M' rather
-     than `-MM'.  However, the dependence on the main input file is
-     omitted.  *Note Invocation::.
-
-\1f
-File: cpp.info,  Node: GNU Free Documentation License,  Next: Option Index,  Prev: Environment Variables,  Up: Top
-
-GNU Free Documentation License
-******************************
-
-                        Version 1.1, March 2000
-     Copyright (C) 2000 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
-     
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     written document "free" in the sense of freedom: to assure everyone
-     the effective freedom to copy and redistribute it, with or without
-     modifying it, either commercially or noncommercially.  Secondarily,
-     this License preserves for the author and publisher a way to get
-     credit for their work, while not being considered responsible for
-     modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work that contains a
-     notice placed by the copyright holder saying it can be distributed
-     under the terms of this License.  The "Document", below, refers to
-     any such manual or work.  Any member of the public is a licensee,
-     and is addressed as "you".
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter
-     section of the Document that deals exclusively with the
-     relationship of the publishers or authors of the Document to the
-     Document's overall subject (or to related matters) and contains
-     nothing that could fall directly within that overall subject.
-     (For example, if the Document is in part a textbook of
-     mathematics, a Secondary Section may not explain any mathematics.)
-     The relationship could be a matter of historical connection with
-     the subject or with related matters, or of legal, commercial,
-     philosophical, ethical or political position regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, whose contents can be viewed and edited directly
-     and straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup has been designed
-     to thwart or discourage subsequent modification by readers is not
-     Transparent.  A copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML designed for human modification.
-     Opaque formats include PostScript, PDF, proprietary formats that
-     can be read and edited only by proprietary word processors, SGML
-     or XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML produced by some word
-     processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies of the Document numbering more than
-     100, and the Document's license notice requires Cover Texts, you
-     must enclose the copies in covers that carry, clearly and legibly,
-     all these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a publicly-accessible
-     computer-network location containing a complete Transparent copy
-     of the Document, free of added material, which the general
-     network-using public has access to download anonymously at no
-     charge using public-standard network protocols.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has less than five).
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section entitled "History", and its title, and
-          add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. In any section entitled "Acknowledgments" or "Dedications",
-          preserve the section's title, and preserve in the section all
-          the substance and tone of each of the contributor
-          acknowledgments and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section as "Endorsements" or to
-          conflict in title with any Invariant Section.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections entitled
-     "History" in the various original documents, forming one section
-     entitled "History"; likewise combine any sections entitled
-     "Acknowledgments", and any sections entitled "Dedications".  You
-     must delete all sections entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, does not as a whole count as a
-     Modified Version of the Document, provided no compilation
-     copyright is claimed for the compilation.  Such a compilation is
-     called an "aggregate", and this License does not apply to the
-     other self-contained works thus compiled with the Document, on
-     account of their being thus compiled, if they are not themselves
-     derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one
-     quarter of the entire aggregate, the Document's Cover Texts may be
-     placed on covers that surround only the Document within the
-     aggregate.  Otherwise they must appear on covers around the whole
-     aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License provided that you also include the
-     original English version of this License.  In case of a
-     disagreement between the translation and the original English
-     version of this License, the original English version will prevail.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided for under this License.  Any other
-     attempt to copy, modify, sublicense or distribute the Document is
-     void, and will automatically terminate your rights under this
-     License.  However, parties who have received copies, or rights,
-     from you under this License will not have their licenses
-     terminated so long as such parties remain in full compliance.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-   To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.1
-       or any later version published by the Free Software Foundation;
-       with the Invariant Sections being LIST THEIR TITLES, with the
-       Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-       A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant.  If you have no Front-Cover
-Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
-LIST"; likewise for Back-Cover Texts.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-\1f
-File: cpp.info,  Node: Option Index,  Next: Index of Directives,  Prev: GNU Free Documentation License,  Up: Top
-
-Option Index
-************
-
-   CPP's command line options are indexed here without any initial `-'
-or `--'.
-
-* Menu:
-
-* $:                                     Invocation.
-* A:                                     Invocation.
-* A-:                                    Invocation.
-* ansi:                                  Invocation.
-* C:                                     Invocation.
-* D:                                     Invocation.
-* dD:                                    Invocation.
-* dI:                                    Invocation.
-* dM:                                    Invocation.
-* dN:                                    Invocation.
-* fno-show-column:                       Invocation.
-* fpreprocessed:                         Invocation.
-* ftabstop:                              Invocation.
-* gcc:                                   Invocation.
-* H:                                     Invocation.
-* h:                                     Invocation.
-* help:                                  Invocation.
-* I:                                     Invocation.
-* I-:                                    Invocation.
-* idirafter:                             Invocation.
-* imacros:                               Invocation.
-* include:                               Invocation.
-* iprefix:                               Invocation.
-* isystem:                               Invocation.
-* iwithprefix:                           Invocation.
-* iwithprefixbefore:                     Invocation.
-* M:                                     Invocation.
-* MD:                                    Invocation.
-* MF:                                    Invocation.
-* MG:                                    Invocation.
-* MM:                                    Invocation.
-* MMD:                                   Invocation.
-* MP:                                    Invocation.
-* MQ:                                    Invocation.
-* MT:                                    Invocation.
-* nostdinc:                              Invocation.
-* nostdinc++:                            Invocation.
-* o:                                     Invocation.
-* P:                                     Invocation.
-* pedantic:                              Invocation.
-* pedantic-errors:                       Invocation.
-* remap:                                 Invocation.
-* std=:                                  Invocation.
-* target-help:                           Invocation.
-* traditional:                           Invocation.
-* trigraphs:                             Invocation.
-* U:                                     Invocation.
-* undef:                                 Invocation.
-* v:                                     Invocation.
-* version:                               Invocation.
-* w:                                     Invocation.
-* Wall:                                  Invocation.
-* Wcomment:                              Invocation.
-* Wcomments:                             Invocation.
-* Werror:                                Invocation.
-* Wimport:                               Invocation.
-* Wsystem-headers:                       Invocation.
-* Wtraditional:                          Invocation.
-* Wtrigraphs:                            Invocation.
-* Wundef:                                Invocation.
-* x:                                     Invocation.
-
-\1f
-File: cpp.info,  Node: Index of Directives,  Next: Concept Index,  Prev: Option Index,  Up: Top
-
-Index of Directives
-*******************
-
-* Menu:
-
-* #assert:                               Assertions.
-* #define:                               Object-like Macros.
-* #elif:                                 Elif.
-* #else:                                 Else.
-* #endif:                                Ifdef.
-* #error:                                Diagnostics.
-* #ident:                                Other Directives.
-* #if:                                   Conditional Syntax.
-* #ifdef:                                Ifdef.
-* #ifndef:                               Ifdef.
-* #import:                               Obsolete once-only headers.
-* #include:                              Include Syntax.
-* #include_next:                         Wrapper Headers.
-* #line:                                 Line Control.
-* #pragma GCC dependency:                Pragmas.
-* #pragma GCC poison:                    Pragmas.
-* #pragma GCC system_header <1>:         Pragmas.
-* #pragma GCC system_header:             System Headers.
-* #sccs:                                 Other Directives.
-* #unassert:                             Assertions.
-* #undef:                                Undefining and Redefining Macros.
-* #warning:                              Diagnostics.
-* C_INCLUDE_PATH:                        Environment Variables.
-* CPATH:                                 Environment Variables.
-* CPLUS_INCLUDE_PATH:                    Environment Variables.
-* DEPENDENCIES_OUTPUT:                   Environment Variables.
-* OBJC_INCLUDE_PATH:                     Environment Variables.
-* SUNPRO_DEPENDENCIES:                   Environment Variables.
-