1CPP(1) GNU CPP(1)
2
3
4
6 cpp - The C Preprocessor
7
9 cpp [-Dmacro[=defn]...] [-Umacro]
10 [-Idir...] [-iquotedir...]
11 [-Wwarn...]
12 [-M⎪-MM] [-MG] [-MF filename]
13 [-MP] [-MQ target...]
14 [-MT target...]
15 [-P] [-fno-working-directory]
16 [-x language] [-std=standard]
17 infile outfile
18
19 Only the most useful options are listed here; see below for the remain‐
20 der.
21
23 The C preprocessor, often known as cpp, is a macro processor that is
24 used automatically by the C compiler to transform your program before
25 compilation. It is called a macro processor because it allows you to
26 define macros, which are brief abbreviations for longer constructs.
27
28 The C preprocessor is intended to be used only with C, C++, and Objec‐
29 tive-C source code. In the past, it has been abused as a general text
30 processor. It will choke on input which does not obey C's lexical
31 rules. For example, apostrophes will be interpreted as the beginning
32 of character constants, and cause errors. Also, you cannot rely on it
33 preserving characteristics of the input which are not significant to
34 C-family languages. If a Makefile is preprocessed, all the hard tabs
35 will be removed, and the Makefile will not work.
36
37 Having said that, you can often get away with using cpp on things which
38 are not C. Other Algol-ish programming languages are often safe (Pas‐
39 cal, Ada, etc.) So is assembly, with caution. -traditional-cpp mode
40 preserves more white space, and is otherwise more permissive. Many of
41 the problems can be avoided by writing C or C++ style comments instead
42 of native language comments, and keeping macros simple.
43
44 Wherever possible, you should use a preprocessor geared to the language
45 you are writing in. Modern versions of the GNU assembler have macro
46 facilities. Most high level programming languages have their own con‐
47 ditional compilation and inclusion mechanism. If all else fails, try a
48 true general text processor, such as GNU M4.
49
50 C preprocessors vary in some details. This manual discusses the GNU C
51 preprocessor, which provides a small superset of the features of ISO
52 Standard C. In its default mode, the GNU C preprocessor does not do a
53 few things required by the standard. These are features which are
54 rarely, if ever, used, and may cause surprising changes to the meaning
55 of a program which does not expect them. To get strict ISO Standard C,
56 you should use the -std=c89 or -std=c99 options, depending on which
57 version of the standard you want. To get all the mandatory diagnos‐
58 tics, you must also use -pedantic.
59
60 This manual describes the behavior of the ISO preprocessor. To mini‐
61 mize gratuitous differences, where the ISO preprocessor's behavior does
62 not conflict with traditional semantics, the traditional preprocessor
63 should behave the same way. The various differences that do exist are
64 detailed in the section Traditional Mode.
65
66 For clarity, unless noted otherwise, references to CPP in this manual
67 refer to GNU CPP.
68
70 The C preprocessor expects two file names as arguments, infile and out‐
71 file. The preprocessor reads infile together with any other files it
72 specifies with #include. All the output generated by the combined
73 input files is written in outfile.
74
75 Either infile or outfile may be -, which as infile means to read from
76 standard input and as outfile means to write to standard output. Also,
77 if either file is omitted, it means the same as if - had been specified
78 for that file.
79
80 Unless otherwise noted, or the option ends in =, all options which take
81 an argument may have that argument appear either immediately after the
82 option, or with a space between option and argument: -Ifoo and -I foo
83 have the same effect.
84
85 Many options have multi-letter names; therefore multiple single-letter
86 options may not be grouped: -dM is very different from -d -M.
87
88 -D name
89 Predefine name as a macro, with definition 1.
90
91 -D name=definition
92 The contents of definition are tokenized and processed as if they
93 appeared during translation phase three in a #define directive. In
94 particular, the definition will be truncated by embedded newline
95 characters.
96
97 If you are invoking the preprocessor from a shell or shell-like
98 program you may need to use the shell's quoting syntax to protect
99 characters such as spaces that have a meaning in the shell syntax.
100
101 If you wish to define a function-like macro on the command line,
102 write its argument list with surrounding parentheses before the
103 equals sign (if any). Parentheses are meaningful to most shells,
104 so you will need to quote the option. With sh and csh,
105 -D'name(args...)=definition' works.
106
107 -D and -U options are processed in the order they are given on the
108 command line. All -imacros file and -include file options are pro‐
109 cessed after all -D and -U options.
110
111 -U name
112 Cancel any previous definition of name, either built in or provided
113 with a -D option.
114
115 -undef
116 Do not predefine any system-specific or GCC-specific macros. The
117 standard predefined macros remain defined.
118
119 -I dir
120 Add the directory dir to the list of directories to be searched for
121 header files.
122
123 Directories named by -I are searched before the standard system
124 include directories. If the directory dir is a standard system
125 include directory, the option is ignored to ensure that the default
126 search order for system directories and the special treatment of
127 system headers are not defeated .
128
129 -o file
130 Write output to file. This is the same as specifying file as the
131 second non-option argument to cpp. gcc has a different interpreta‐
132 tion of a second non-option argument, so you must use -o to specify
133 the output file.
134
135 -Wall
136 Turns on all optional warnings which are desirable for normal code.
137 At present this is -Wcomment, -Wtrigraphs, -Wmultichar and a warn‐
138 ing about integer promotion causing a change of sign in "#if"
139 expressions. Note that many of the preprocessor's warnings are on
140 by default and have no options to control them.
141
142 -Wcomment
143 -Wcomments
144 Warn whenever a comment-start sequence /* appears in a /* comment,
145 or whenever a backslash-newline appears in a // comment. (Both
146 forms have the same effect.)
147
148 -Wtrigraphs
149 @anchor{Wtrigraphs} Most trigraphs in comments cannot affect the
150 meaning of the program. However, a trigraph that would form an
151 escaped newline (??/ at the end of a line) can, by changing where
152 the comment begins or ends. Therefore, only trigraphs that would
153 form escaped newlines produce warnings inside a comment.
154
155 This option is implied by -Wall. If -Wall is not given, this
156 option is still enabled unless trigraphs are enabled. To get tri‐
157 graph conversion without warnings, but get the other -Wall warn‐
158 ings, use -trigraphs -Wall -Wno-trigraphs.
159
160 -Wtraditional
161 Warn about certain constructs that behave differently in tradi‐
162 tional and ISO C. Also warn about ISO C constructs that have no
163 traditional C equivalent, and problematic constructs which should
164 be avoided.
165
166 -Wimport
167 Warn the first time #import is used.
168
169 -Wundef
170 Warn whenever an identifier which is not a macro is encountered in
171 an #if directive, outside of defined. Such identifiers are
172 replaced with zero.
173
174 -Wunused-macros
175 Warn about macros defined in the main file that are unused. A
176 macro is used if it is expanded or tested for existence at least
177 once. The preprocessor will also warn if the macro has not been
178 used at the time it is redefined or undefined.
179
180 Built-in macros, macros defined on the command line, and macros
181 defined in include files are not warned about.
182
183 Note: If a macro is actually used, but only used in skipped condi‐
184 tional blocks, then CPP will report it as unused. To avoid the
185 warning in such a case, you might improve the scope of the macro's
186 definition by, for example, moving it into the first skipped block.
187 Alternatively, you could provide a dummy use with something like:
188
189 #if defined the_macro_causing_the_warning
190 #endif
191
192 -Wendif-labels
193 Warn whenever an #else or an #endif are followed by text. This
194 usually happens in code of the form
195
196 #if FOO
197 ...
198 #else FOO
199 ...
200 #endif FOO
201
202 The second and third "FOO" should be in comments, but often are not
203 in older programs. This warning is on by default.
204
205 -Werror
206 Make all warnings into hard errors. Source code which triggers
207 warnings will be rejected.
208
209 -Wsystem-headers
210 Issue warnings for code in system headers. These are normally
211 unhelpful in finding bugs in your own code, therefore suppressed.
212 If you are responsible for the system library, you may want to see
213 them.
214
215 -w Suppress all warnings, including those which GNU CPP issues by
216 default.
217
218 -pedantic
219 Issue all the mandatory diagnostics listed in the C standard. Some
220 of them are left out by default, since they trigger frequently on
221 harmless code.
222
223 -pedantic-errors
224 Issue all the mandatory diagnostics, and make all mandatory diag‐
225 nostics into errors. This includes mandatory diagnostics that GCC
226 issues without -pedantic but treats as warnings.
227
228 -M Instead of outputting the result of preprocessing, output a rule
229 suitable for make describing the dependencies of the main source
230 file. The preprocessor outputs one make rule containing the object
231 file name for that source file, a colon, and the names of all the
232 included files, including those coming from -include or -imacros
233 command line options.
234
235 Unless specified explicitly (with -MT or -MQ), the object file name
236 consists of the basename of the source file with any suffix
237 replaced with object file suffix. If there are many included files
238 then the rule is split into several lines using \-newline. The
239 rule has no commands.
240
241 This option does not suppress the preprocessor's debug output, such
242 as -dM. To avoid mixing such debug output with the dependency
243 rules you should explicitly specify the dependency output file with
244 -MF, or use an environment variable like DEPENDENCIES_OUTPUT.
245 Debug output will still be sent to the regular output stream as
246 normal.
247
248 Passing -M to the driver implies -E, and suppresses warnings with
249 an implicit -w.
250
251 -MM Like -M but do not mention header files that are found in system
252 header directories, nor header files that are included, directly or
253 indirectly, from such a header.
254
255 This implies that the choice of angle brackets or double quotes in
256 an #include directive does not in itself determine whether that
257 header will appear in -MM dependency output. This is a slight
258 change in semantics from GCC versions 3.0 and earlier.
259
260 @anchor{dashMF}
261
262 -MF file
263 When used with -M or -MM, specifies a file to write the dependen‐
264 cies to. If no -MF switch is given the preprocessor sends the
265 rules to the same place it would have sent preprocessed output.
266
267 When used with the driver options -MD or -MMD, -MF overrides the
268 default dependency output file.
269
270 -MG In conjunction with an option such as -M requesting dependency gen‐
271 eration, -MG assumes missing header files are generated files and
272 adds them to the dependency list without raising an error. The
273 dependency filename is taken directly from the "#include" directive
274 without prepending any path. -MG also suppresses preprocessed out‐
275 put, as a missing header file renders this useless.
276
277 This feature is used in automatic updating of makefiles.
278
279 -MP This option instructs CPP to add a phony target for each dependency
280 other than the main file, causing each to depend on nothing. These
281 dummy rules work around errors make gives if you remove header
282 files without updating the Makefile to match.
283
284 This is typical output:
285
286 test.o: test.c test.h
287
288 test.h:
289
290 -MT target
291 Change the target of the rule emitted by dependency generation. By
292 default CPP takes the name of the main input file, including any
293 path, deletes any file suffix such as .c, and appends the plat‐
294 form's usual object suffix. The result is the target.
295
296 An -MT option will set the target to be exactly the string you
297 specify. If you want multiple targets, you can specify them as a
298 single argument to -MT, or use multiple -MT options.
299
300 For example, -MT '$(objpfx)foo.o' might give
301
302 $(objpfx)foo.o: foo.c
303
304 -MQ target
305 Same as -MT, but it quotes any characters which are special to
306 Make. -MQ '$(objpfx)foo.o' gives
307
308 $$(objpfx)foo.o: foo.c
309
310 The default target is automatically quoted, as if it were given
311 with -MQ.
312
313 -MD -MD is equivalent to -M -MF file, except that -E is not implied.
314 The driver determines file based on whether an -o option is given.
315 If it is, the driver uses its argument but with a suffix of .d,
316 otherwise it take the basename of the input file and applies a .d
317 suffix.
318
319 If -MD is used in conjunction with -E, any -o switch is understood
320 to specify the dependency output file (but @pxref{dashMF,,-MF}),
321 but if used without -E, each -o is understood to specify a target
322 object file.
323
324 Since -E is not implied, -MD can be used to generate a dependency
325 output file as a side-effect of the compilation process.
326
327 -MMD
328 Like -MD except mention only user header files, not system header
329 files.
330
331 -x c
332 -x c++
333 -x objective-c
334 -x assembler-with-cpp
335 Specify the source language: C, C++, Objective-C, or assembly.
336 This has nothing to do with standards conformance or extensions; it
337 merely selects which base syntax to expect. If you give none of
338 these options, cpp will deduce the language from the extension of
339 the source file: .c, .cc, .m, or .S. Some other common extensions
340 for C++ and assembly are also recognized. If cpp does not recog‐
341 nize the extension, it will treat the file as C; this is the most
342 generic mode.
343
344 Note: Previous versions of cpp accepted a -lang option which
345 selected both the language and the standards conformance level.
346 This option has been removed, because it conflicts with the -l
347 option.
348
349 -std=standard
350 -ansi
351 Specify the standard to which the code should conform. Currently
352 CPP knows about C and C++ standards; others may be added in the
353 future.
354
355 standard may be one of:
356
357 "iso9899:1990"
358 "c89"
359 The ISO C standard from 1990. c89 is the customary shorthand
360 for this version of the standard.
361
362 The -ansi option is equivalent to -std=c89.
363
364 "iso9899:199409"
365 The 1990 C standard, as amended in 1994.
366
367 "iso9899:1999"
368 "c99"
369 "iso9899:199x"
370 "c9x"
371 The revised ISO C standard, published in December 1999. Before
372 publication, this was known as C9X.
373
374 "gnu89"
375 The 1990 C standard plus GNU extensions. This is the default.
376
377 "gnu99"
378 "gnu9x"
379 The 1999 C standard plus GNU extensions.
380
381 "c++98"
382 The 1998 ISO C++ standard plus amendments.
383
384 "gnu++98"
385 The same as -std=c++98 plus GNU extensions. This is the
386 default for C++ code.
387
388 -I- Split the include path. Any directories specified with -I options
389 before -I- are searched only for headers requested with
390 "#include "file""; they are not searched for "#include <file>". If
391 additional directories are specified with -I options after the -I-,
392 those directories are searched for all #include directives.
393
394 In addition, -I- inhibits the use of the directory of the current
395 file directory as the first search directory for "#include "file"".
396
397 This option has been deprecated.
398
399 -nostdinc
400 Do not search the standard system directories for header files.
401 Only the directories you have specified with -I options (and the
402 directory of the current file, if appropriate) are searched.
403
404 -nostdinc++
405 Do not search for header files in the C++-specific standard direc‐
406 tories, but do still search the other standard directories. (This
407 option is used when building the C++ library.)
408
409 -include file
410 Process file as if "#include "file"" appeared as the first line of
411 the primary source file. However, the first directory searched for
412 file is the preprocessor's working directory instead of the direc‐
413 tory containing the main source file. If not found there, it is
414 searched for in the remainder of the "#include "..."" search chain
415 as normal.
416
417 If multiple -include options are given, the files are included in
418 the order they appear on the command line.
419
420 -imacros file
421 Exactly like -include, except that any output produced by scanning
422 file is thrown away. Macros it defines remain defined. This
423 allows you to acquire all the macros from a header without also
424 processing its declarations.
425
426 All files specified by -imacros are processed before all files
427 specified by -include.
428
429 -idirafter dir
430 Search dir for header files, but do it after all directories speci‐
431 fied with -I and the standard system directories have been
432 exhausted. dir is treated as a system include directory.
433
434 -iprefix prefix
435 Specify prefix as the prefix for subsequent -iwithprefix options.
436 If the prefix represents a directory, you should include the final
437 /.
438
439 -iwithprefix dir
440 -iwithprefixbefore dir
441 Append dir to the prefix specified previously with -iprefix, and
442 add the resulting directory to the include search path. -iwithpre‐
443 fixbefore puts it in the same place -I would; -iwithprefix puts it
444 where -idirafter would.
445
446 -isysroot dir
447 This option is like the --sysroot option, but applies only to
448 header files. See the --sysroot option for more information.
449
450 -isystem dir
451 Search dir for header files, after all directories specified by -I
452 but before the standard system directories. Mark it as a system
453 directory, so that it gets the same special treatment as is applied
454 to the standard system directories.
455
456 -iquote dir
457 Search dir only for header files requested with "#include "file"";
458 they are not searched for "#include <file>", before all directories
459 specified by -I and before the standard system directories.
460
461 -fdollars-in-identifiers
462 @anchor{fdollars-in-identifiers} Accept $ in identifiers.
463
464 -fextended-identifiers
465 Accept universal character names in identifiers. This option is
466 experimental; in a future version of GCC, it will be enabled by
467 default for C99 and C++.
468
469 -fpreprocessed
470 Indicate to the preprocessor that the input file has already been
471 preprocessed. This suppresses things like macro expansion, tri‐
472 graph conversion, escaped newline splicing, and processing of most
473 directives. The preprocessor still recognizes and removes com‐
474 ments, so that you can pass a file preprocessed with -C to the com‐
475 piler without problems. In this mode the integrated preprocessor
476 is little more than a tokenizer for the front ends.
477
478 -fpreprocessed is implicit if the input file has one of the exten‐
479 sions .i, .ii or .mi. These are the extensions that GCC uses for
480 preprocessed files created by -save-temps.
481
482 -ftabstop=width
483 Set the distance between tab stops. This helps the preprocessor
484 report correct column numbers in warnings or errors, even if tabs
485 appear on the line. If the value is less than 1 or greater than
486 100, the option is ignored. The default is 8.
487
488 -fexec-charset=charset
489 Set the execution character set, used for string and character con‐
490 stants. The default is UTF-8. charset can be any encoding sup‐
491 ported by the system's "iconv" library routine.
492
493 -fwide-exec-charset=charset
494 Set the wide execution character set, used for wide string and
495 character constants. The default is UTF-32 or UTF-16, whichever
496 corresponds to the width of "wchar_t". As with -fexec-charset,
497 charset can be any encoding supported by the system's "iconv"
498 library routine; however, you will have problems with encodings
499 that do not fit exactly in "wchar_t".
500
501 -finput-charset=charset
502 Set the input character set, used for translation from the charac‐
503 ter set of the input file to the source character set used by GCC.
504 If the locale does not specify, or GCC cannot get this information
505 from the locale, the default is UTF-8. This can be overridden by
506 either the locale or this command line option. Currently the com‐
507 mand line option takes precedence if there's a conflict. charset
508 can be any encoding supported by the system's "iconv" library rou‐
509 tine.
510
511 -fworking-directory
512 Enable generation of linemarkers in the preprocessor output that
513 will let the compiler know the current working directory at the
514 time of preprocessing. When this option is enabled, the preproces‐
515 sor will emit, after the initial linemarker, a second linemarker
516 with the current working directory followed by two slashes. GCC
517 will use this directory, when it's present in the preprocessed
518 input, as the directory emitted as the current working directory in
519 some debugging information formats. This option is implicitly
520 enabled if debugging information is enabled, but this can be inhib‐
521 ited with the negated form -fno-working-directory. If the -P flag
522 is present in the command line, this option has no effect, since no
523 "#line" directives are emitted whatsoever.
524
525 -fno-show-column
526 Do not print column numbers in diagnostics. This may be necessary
527 if diagnostics are being scanned by a program that does not under‐
528 stand the column numbers, such as dejagnu.
529
530 -A predicate=answer
531 Make an assertion with the predicate predicate and answer answer.
532 This form is preferred to the older form -A predicate(answer),
533 which is still supported, because it does not use shell special
534 characters.
535
536 -A -predicate=answer
537 Cancel an assertion with the predicate predicate and answer answer.
538
539 -dCHARS
540 CHARS is a sequence of one or more of the following characters, and
541 must not be preceded by a space. Other characters are interpreted
542 by the compiler proper, or reserved for future versions of GCC, and
543 so are silently ignored. If you specify characters whose behavior
544 conflicts, the result is undefined.
545
546 M Instead of the normal output, generate a list of #define direc‐
547 tives for all the macros defined during the execution of the
548 preprocessor, including predefined macros. This gives you a
549 way of finding out what is predefined in your version of the
550 preprocessor. Assuming you have no file foo.h, the command
551
552 touch foo.h; cpp -dM foo.h
553
554 will show all the predefined macros.
555
556 D Like M except in two respects: it does not include the prede‐
557 fined macros, and it outputs both the #define directives and
558 the result of preprocessing. Both kinds of output go to the
559 standard output file.
560
561 N Like D, but emit only the macro names, not their expansions.
562
563 I Output #include directives in addition to the result of prepro‐
564 cessing.
565
566 -P Inhibit generation of linemarkers in the output from the preproces‐
567 sor. This might be useful when running the preprocessor on some‐
568 thing that is not C code, and will be sent to a program which might
569 be confused by the linemarkers.
570
571 -C Do not discard comments. All comments are passed through to the
572 output file, except for comments in processed directives, which are
573 deleted along with the directive.
574
575 You should be prepared for side effects when using -C; it causes
576 the preprocessor to treat comments as tokens in their own right.
577 For example, comments appearing at the start of what would be a
578 directive line have the effect of turning that line into an ordi‐
579 nary source line, since the first token on the line is no longer a
580 #.
581
582 -CC Do not discard comments, including during macro expansion. This is
583 like -C, except that comments contained within macros are also
584 passed through to the output file where the macro is expanded.
585
586 In addition to the side-effects of the -C option, the -CC option
587 causes all C++-style comments inside a macro to be converted to
588 C-style comments. This is to prevent later use of that macro from
589 inadvertently commenting out the remainder of the source line.
590
591 The -CC option is generally used to support lint comments.
592
593 -traditional-cpp
594 Try to imitate the behavior of old-fashioned C preprocessors, as
595 opposed to ISO C preprocessors.
596
597 -trigraphs
598 Process trigraph sequences.
599
600 -remap
601 Enable special code to work around file systems which only permit
602 very short file names, such as MS-DOS.
603
604 --help
605 --target-help
606 Print text describing all the command line options instead of pre‐
607 processing anything.
608
609 -v Verbose mode. Print out GNU CPP's version number at the beginning
610 of execution, and report the final form of the include path.
611
612 -H Print the name of each header file used, in addition to other nor‐
613 mal activities. Each name is indented to show how deep in the
614 #include stack it is. Precompiled header files are also printed,
615 even if they are found to be invalid; an invalid precompiled header
616 file is printed with ...x and a valid one with ...! .
617
618 -version
619 --version
620 Print out GNU CPP's version number. With one dash, proceed to pre‐
621 process as normal. With two dashes, exit immediately.
622
624 This section describes the environment variables that affect how CPP
625 operates. You can use them to specify directories or prefixes to use
626 when searching for include files, or to control dependency output.
627
628 Note that you can also specify places to search using options such as
629 -I, and control dependency output with options like -M. These take
630 precedence over environment variables, which in turn take precedence
631 over the configuration of GCC.
632
633 CPATH
634 C_INCLUDE_PATH
635 CPLUS_INCLUDE_PATH
636 OBJC_INCLUDE_PATH
637 Each variable's value is a list of directories separated by a spe‐
638 cial character, much like PATH, in which to look for header files.
639 The special character, "PATH_SEPARATOR", is target-dependent and
640 determined at GCC build time. For Microsoft Windows-based targets
641 it is a semicolon, and for almost all other targets it is a colon.
642
643 CPATH specifies a list of directories to be searched as if speci‐
644 fied with -I, but after any paths given with -I options on the com‐
645 mand line. This environment variable is used regardless of which
646 language is being preprocessed.
647
648 The remaining environment variables apply only when preprocessing
649 the particular language indicated. Each specifies a list of direc‐
650 tories to be searched as if specified with -isystem, but after any
651 paths given with -isystem options on the command line.
652
653 In all these variables, an empty element instructs the compiler to
654 search its current working directory. Empty elements can appear at
655 the beginning or end of a path. For instance, if the value of
656 CPATH is ":/special/include", that has the same effect as
657 -I. -I/special/include.
658
659 DEPENDENCIES_OUTPUT
660 If this variable is set, its value specifies how to output depen‐
661 dencies for Make based on the non-system header files processed by
662 the compiler. System header files are ignored in the dependency
663 output.
664
665 The value of DEPENDENCIES_OUTPUT can be just a file name, in which
666 case the Make rules are written to that file, guessing the target
667 name from the source file name. Or the value can have the form
668 file target, in which case the rules are written to file file using
669 target as the target name.
670
671 In other words, this environment variable is equivalent to combin‐
672 ing the options -MM and -MF, with an optional -MT switch too.
673
674 SUNPRO_DEPENDENCIES
675 This variable is the same as DEPENDENCIES_OUTPUT (see above),
676 except that system header files are not ignored, so it implies -M
677 rather than -MM. However, the dependence on the main input file is
678 omitted.
679
681 gpl(7), gfdl(7), fsf-funding(7), gcc(1), as(1), ld(1), and the Info
682 entries for cpp, gcc, and binutils.
683
685 Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
686 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Founda‐
687 tion, Inc.
688
689 Permission is granted to copy, distribute and/or modify this document
690 under the terms of the GNU Free Documentation License, Version 1.1 or
691 any later version published by the Free Software Foundation. A copy of
692 the license is included in the man page gfdl(7). This manual contains
693 no Invariant Sections. The Front-Cover Texts are (a) (see below), and
694 the Back-Cover Texts are (b) (see below).
695
696 (a) The FSF's Front-Cover Text is:
697
698 A GNU Manual
699
700 (b) The FSF's Back-Cover Text is:
701
702 You have freedom to copy and modify this GNU Manual, like GNU
703 software. Copies published by the Free Software Foundation raise
704 funds for GNU development.
705
706
707
708gcc-4.1.2 2007-02-14 CPP(1)