Mercurial > hg > CbC > CbC_gcc
annotate gcc/doc/cppopts.texi @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
rev | line source |
---|---|
145 | 1 @c Copyright (C) 1999-2020 Free Software Foundation, Inc. |
0 | 2 @c This is part of the CPP and GCC manuals. |
3 @c For copying conditions, see the file gcc.texi. | |
4 | |
5 @c --------------------------------------------------------------------- | |
6 @c Options affecting the preprocessor | |
7 @c --------------------------------------------------------------------- | |
8 | |
9 @c If this file is included with the flag ``cppmanual'' set, it is | |
10 @c formatted for inclusion in the CPP manual; otherwise the main GCC manual. | |
11 | |
12 @item -D @var{name} | |
13 @opindex D | |
14 Predefine @var{name} as a macro, with definition @code{1}. | |
15 | |
16 @item -D @var{name}=@var{definition} | |
17 The contents of @var{definition} are tokenized and processed as if | |
18 they appeared during translation phase three in a @samp{#define} | |
111 | 19 directive. In particular, the definition is truncated by |
0 | 20 embedded newline characters. |
21 | |
22 If you are invoking the preprocessor from a shell or shell-like | |
23 program you may need to use the shell's quoting syntax to protect | |
24 characters such as spaces that have a meaning in the shell syntax. | |
25 | |
26 If you wish to define a function-like macro on the command line, write | |
27 its argument list with surrounding parentheses before the equals sign | |
111 | 28 (if any). Parentheses are meaningful to most shells, so you should |
29 quote the option. With @command{sh} and @command{csh}, | |
0 | 30 @option{-D'@var{name}(@var{args@dots{}})=@var{definition}'} works. |
31 | |
32 @option{-D} and @option{-U} options are processed in the order they | |
33 are given on the command line. All @option{-imacros @var{file}} and | |
34 @option{-include @var{file}} options are processed after all | |
35 @option{-D} and @option{-U} options. | |
36 | |
37 @item -U @var{name} | |
38 @opindex U | |
39 Cancel any previous definition of @var{name}, either built in or | |
40 provided with a @option{-D} option. | |
41 | |
111 | 42 @item -include @var{file} |
43 @opindex include | |
44 Process @var{file} as if @code{#include "file"} appeared as the first | |
45 line of the primary source file. However, the first directory searched | |
46 for @var{file} is the preprocessor's working directory @emph{instead of} | |
47 the directory containing the main source file. If not found there, it | |
48 is searched for in the remainder of the @code{#include "@dots{}"} search | |
49 chain as normal. | |
50 | |
51 If multiple @option{-include} options are given, the files are included | |
52 in the order they appear on the command line. | |
53 | |
54 @item -imacros @var{file} | |
55 @opindex imacros | |
56 Exactly like @option{-include}, except that any output produced by | |
57 scanning @var{file} is thrown away. Macros it defines remain defined. | |
58 This allows you to acquire all the macros from a header without also | |
59 processing its declarations. | |
60 | |
61 All files specified by @option{-imacros} are processed before all files | |
62 specified by @option{-include}. | |
63 | |
0 | 64 @item -undef |
65 @opindex undef | |
66 Do not predefine any system-specific or GCC-specific macros. The | |
67 standard predefined macros remain defined. | |
68 @ifset cppmanual | |
69 @xref{Standard Predefined Macros}. | |
70 @end ifset | |
71 | |
111 | 72 @item -pthread |
73 @opindex pthread | |
74 Define additional macros required for using the POSIX threads library. | |
75 You should use this option consistently for both compilation and linking. | |
76 This option is supported on GNU/Linux targets, most other Unix derivatives, | |
77 and also on x86 Cygwin and MinGW targets. | |
0 | 78 |
79 @item -M | |
80 @opindex M | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
81 @cindex @command{make} |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
82 @cindex dependencies, @command{make} |
0 | 83 Instead of outputting the result of preprocessing, output a rule |
84 suitable for @command{make} describing the dependencies of the main | |
85 source file. The preprocessor outputs one @command{make} rule containing | |
86 the object file name for that source file, a colon, and the names of all | |
87 the included files, including those coming from @option{-include} or | |
111 | 88 @option{-imacros} command-line options. |
0 | 89 |
90 Unless specified explicitly (with @option{-MT} or @option{-MQ}), the | |
91 object file name consists of the name of the source file with any | |
92 suffix replaced with object file suffix and with any leading directory | |
93 parts removed. If there are many included files then the rule is | |
94 split into several lines using @samp{\}-newline. The rule has no | |
95 commands. | |
96 | |
97 This option does not suppress the preprocessor's debug output, such as | |
98 @option{-dM}. To avoid mixing such debug output with the dependency | |
99 rules you should explicitly specify the dependency output file with | |
100 @option{-MF}, or use an environment variable like | |
101 @env{DEPENDENCIES_OUTPUT} (@pxref{Environment Variables}). Debug output | |
111 | 102 is still sent to the regular output stream as normal. |
0 | 103 |
104 Passing @option{-M} to the driver implies @option{-E}, and suppresses | |
105 warnings with an implicit @option{-w}. | |
106 | |
107 @item -MM | |
108 @opindex MM | |
109 Like @option{-M} but do not mention header files that are found in | |
110 system header directories, nor header files that are included, | |
111 directly or indirectly, from such a header. | |
112 | |
113 This implies that the choice of angle brackets or double quotes in an | |
114 @samp{#include} directive does not in itself determine whether that | |
111 | 115 header appears in @option{-MM} dependency output. |
0 | 116 |
117 @anchor{dashMF} | |
118 @item -MF @var{file} | |
119 @opindex MF | |
120 When used with @option{-M} or @option{-MM}, specifies a | |
121 file to write the dependencies to. If no @option{-MF} switch is given | |
111 | 122 the preprocessor sends the rules to the same place it would send |
0 | 123 preprocessed output. |
124 | |
125 When used with the driver options @option{-MD} or @option{-MMD}, | |
126 @option{-MF} overrides the default dependency output file. | |
127 | |
111 | 128 If @var{file} is @file{-}, then the dependencies are written to @file{stdout}. |
129 | |
0 | 130 @item -MG |
131 @opindex MG | |
132 In conjunction with an option such as @option{-M} requesting | |
133 dependency generation, @option{-MG} assumes missing header files are | |
134 generated files and adds them to the dependency list without raising | |
135 an error. The dependency filename is taken directly from the | |
136 @code{#include} directive without prepending any path. @option{-MG} | |
137 also suppresses preprocessed output, as a missing header file renders | |
138 this useless. | |
139 | |
140 This feature is used in automatic updating of makefiles. | |
141 | |
142 @item -MP | |
143 @opindex MP | |
144 This option instructs CPP to add a phony target for each dependency | |
145 other than the main file, causing each to depend on nothing. These | |
146 dummy rules work around errors @command{make} gives if you remove header | |
147 files without updating the @file{Makefile} to match. | |
148 | |
149 This is typical output: | |
150 | |
151 @smallexample | |
152 test.o: test.c test.h | |
153 | |
154 test.h: | |
155 @end smallexample | |
156 | |
157 @item -MT @var{target} | |
158 @opindex MT | |
159 | |
160 Change the target of the rule emitted by dependency generation. By | |
161 default CPP takes the name of the main input file, deletes any | |
162 directory components and any file suffix such as @samp{.c}, and | |
163 appends the platform's usual object suffix. The result is the target. | |
164 | |
111 | 165 An @option{-MT} option sets the target to be exactly the string you |
0 | 166 specify. If you want multiple targets, you can specify them as a single |
167 argument to @option{-MT}, or use multiple @option{-MT} options. | |
168 | |
169 For example, @option{@w{-MT '$(objpfx)foo.o'}} might give | |
170 | |
171 @smallexample | |
172 $(objpfx)foo.o: foo.c | |
173 @end smallexample | |
174 | |
175 @item -MQ @var{target} | |
176 @opindex MQ | |
177 | |
178 Same as @option{-MT}, but it quotes any characters which are special to | |
179 Make. @option{@w{-MQ '$(objpfx)foo.o'}} gives | |
180 | |
181 @smallexample | |
182 $$(objpfx)foo.o: foo.c | |
183 @end smallexample | |
184 | |
185 The default target is automatically quoted, as if it were given with | |
186 @option{-MQ}. | |
187 | |
188 @item -MD | |
189 @opindex MD | |
190 @option{-MD} is equivalent to @option{-M -MF @var{file}}, except that | |
191 @option{-E} is not implied. The driver determines @var{file} based on | |
192 whether an @option{-o} option is given. If it is, the driver uses its | |
193 argument but with a suffix of @file{.d}, otherwise it takes the name | |
194 of the input file, removes any directory components and suffix, and | |
195 applies a @file{.d} suffix. | |
196 | |
197 If @option{-MD} is used in conjunction with @option{-E}, any | |
198 @option{-o} switch is understood to specify the dependency output file | |
199 (@pxref{dashMF,,-MF}), but if used without @option{-E}, each @option{-o} | |
200 is understood to specify a target object file. | |
201 | |
202 Since @option{-E} is not implied, @option{-MD} can be used to generate | |
131 | 203 a dependency output file as a side effect of the compilation process. |
0 | 204 |
205 @item -MMD | |
206 @opindex MMD | |
207 Like @option{-MD} except mention only user header files, not system | |
208 header files. | |
209 | |
111 | 210 @item -fpreprocessed |
211 @opindex fpreprocessed | |
212 Indicate to the preprocessor that the input file has already been | |
213 preprocessed. This suppresses things like macro expansion, trigraph | |
214 conversion, escaped newline splicing, and processing of most directives. | |
215 The preprocessor still recognizes and removes comments, so that you can | |
216 pass a file preprocessed with @option{-C} to the compiler without | |
217 problems. In this mode the integrated preprocessor is little more than | |
218 a tokenizer for the front ends. | |
0 | 219 |
111 | 220 @option{-fpreprocessed} is implicit if the input file has one of the |
221 extensions @samp{.i}, @samp{.ii} or @samp{.mi}. These are the | |
222 extensions that GCC uses for preprocessed files created by | |
223 @option{-save-temps}. | |
0 | 224 |
225 @item -fdirectives-only | |
226 @opindex fdirectives-only | |
227 When preprocessing, handle directives, but do not expand macros. | |
228 | |
229 The option's behavior depends on the @option{-E} and @option{-fpreprocessed} | |
230 options. | |
231 | |
232 With @option{-E}, preprocessing is limited to the handling of directives | |
233 such as @code{#define}, @code{#ifdef}, and @code{#error}. Other | |
234 preprocessor operations, such as macro expansion and trigraph | |
235 conversion are not performed. In addition, the @option{-dD} option is | |
236 implicitly enabled. | |
237 | |
238 With @option{-fpreprocessed}, predefinition of command line and most | |
239 builtin macros is disabled. Macros such as @code{__LINE__}, which are | |
240 contextually dependent, are handled normally. This enables compilation of | |
241 files previously preprocessed with @code{-E -fdirectives-only}. | |
242 | |
243 With both @option{-E} and @option{-fpreprocessed}, the rules for | |
244 @option{-fpreprocessed} take precedence. This enables full preprocessing of | |
245 files previously preprocessed with @code{-E -fdirectives-only}. | |
246 | |
247 @item -fdollars-in-identifiers | |
248 @opindex fdollars-in-identifiers | |
249 @anchor{fdollars-in-identifiers} | |
250 Accept @samp{$} in identifiers. | |
251 @ifset cppmanual | |
252 @xref{Identifier characters}. | |
253 @end ifset | |
254 | |
255 @item -fextended-identifiers | |
256 @opindex fextended-identifiers | |
145 | 257 Accept universal character names and extended characters in |
258 identifiers. This option is enabled by default for C99 (and later C | |
259 standard versions) and C++. | |
0 | 260 |
111 | 261 @item -fno-canonical-system-headers |
262 @opindex fno-canonical-system-headers | |
263 When preprocessing, do not shorten system header paths with canonicalization. | |
0 | 264 |
145 | 265 @item -fmax-include-depth=@var{depth} |
266 @opindex fmax-include-depth | |
267 Set the maximum depth of the nested #include. The default is 200. | |
268 | |
0 | 269 @item -ftabstop=@var{width} |
270 @opindex ftabstop | |
271 Set the distance between tab stops. This helps the preprocessor report | |
272 correct column numbers in warnings or errors, even if tabs appear on the | |
273 line. If the value is less than 1 or greater than 100, the option is | |
274 ignored. The default is 8. | |
275 | |
111 | 276 @item -ftrack-macro-expansion@r{[}=@var{level}@r{]} |
277 @opindex ftrack-macro-expansion | |
278 Track locations of tokens across macro expansions. This allows the | |
279 compiler to emit diagnostic about the current macro expansion stack | |
280 when a compilation error occurs in a macro expansion. Using this | |
281 option makes the preprocessor and the compiler consume more | |
282 memory. The @var{level} parameter can be used to choose the level of | |
283 precision of token location tracking thus decreasing the memory | |
284 consumption if necessary. Value @samp{0} of @var{level} de-activates | |
285 this option. Value @samp{1} tracks tokens locations in a | |
286 degraded mode for the sake of minimal memory overhead. In this mode | |
287 all tokens resulting from the expansion of an argument of a | |
288 function-like macro have the same location. Value @samp{2} tracks | |
289 tokens locations completely. This value is the most memory hungry. | |
290 When this option is given no argument, the default parameter value is | |
291 @samp{2}. | |
292 | |
293 Note that @code{-ftrack-macro-expansion=2} is activated by default. | |
294 | |
131 | 295 @item -fmacro-prefix-map=@var{old}=@var{new} |
296 @opindex fmacro-prefix-map | |
297 When preprocessing files residing in directory @file{@var{old}}, | |
298 expand the @code{__FILE__} and @code{__BASE_FILE__} macros as if the | |
299 files resided in directory @file{@var{new}} instead. This can be used | |
300 to change an absolute path to a relative path by using @file{.} for | |
301 @var{new} which can result in more reproducible builds that are | |
302 location independent. This option also affects | |
303 @code{__builtin_FILE()} during compilation. See also | |
304 @option{-ffile-prefix-map}. | |
305 | |
0 | 306 @item -fexec-charset=@var{charset} |
307 @opindex fexec-charset | |
308 @cindex character set, execution | |
309 Set the execution character set, used for string and character | |
310 constants. The default is UTF-8. @var{charset} can be any encoding | |
311 supported by the system's @code{iconv} library routine. | |
312 | |
313 @item -fwide-exec-charset=@var{charset} | |
314 @opindex fwide-exec-charset | |
315 @cindex character set, wide execution | |
316 Set the wide execution character set, used for wide string and | |
317 character constants. The default is UTF-32 or UTF-16, whichever | |
318 corresponds to the width of @code{wchar_t}. As with | |
319 @option{-fexec-charset}, @var{charset} can be any encoding supported | |
320 by the system's @code{iconv} library routine; however, you will have | |
321 problems with encodings that do not fit exactly in @code{wchar_t}. | |
322 | |
323 @item -finput-charset=@var{charset} | |
324 @opindex finput-charset | |
325 @cindex character set, input | |
326 Set the input character set, used for translation from the character | |
327 set of the input file to the source character set used by GCC@. If the | |
328 locale does not specify, or GCC cannot get this information from the | |
329 locale, the default is UTF-8. This can be overridden by either the locale | |
111 | 330 or this command-line option. Currently the command-line option takes |
0 | 331 precedence if there's a conflict. @var{charset} can be any encoding |
332 supported by the system's @code{iconv} library routine. | |
333 | |
111 | 334 @ifclear cppmanual |
335 @item -fpch-deps | |
336 @opindex fpch-deps | |
337 When using precompiled headers (@pxref{Precompiled Headers}), this flag | |
338 causes the dependency-output flags to also list the files from the | |
339 precompiled header's dependencies. If not specified, only the | |
340 precompiled header are listed and not the files that were used to | |
341 create it, because those files are not consulted when a precompiled | |
342 header is used. | |
343 | |
344 @item -fpch-preprocess | |
345 @opindex fpch-preprocess | |
346 This option allows use of a precompiled header (@pxref{Precompiled | |
347 Headers}) together with @option{-E}. It inserts a special @code{#pragma}, | |
348 @code{#pragma GCC pch_preprocess "@var{filename}"} in the output to mark | |
349 the place where the precompiled header was found, and its @var{filename}. | |
350 When @option{-fpreprocessed} is in use, GCC recognizes this @code{#pragma} | |
351 and loads the PCH@. | |
352 | |
353 This option is off by default, because the resulting preprocessed output | |
354 is only really suitable as input to GCC@. It is switched on by | |
355 @option{-save-temps}. | |
356 | |
357 You should not write this @code{#pragma} in your own code, but it is | |
358 safe to edit the filename if the PCH file is available in a different | |
359 location. The filename may be absolute or it may be relative to GCC's | |
360 current directory. | |
361 @end ifclear | |
362 | |
0 | 363 @item -fworking-directory |
364 @opindex fworking-directory | |
365 @opindex fno-working-directory | |
111 | 366 Enable generation of linemarkers in the preprocessor output that |
0 | 367 let the compiler know the current working directory at the time of |
111 | 368 preprocessing. When this option is enabled, the preprocessor |
369 emits, after the initial linemarker, a second linemarker with the | |
370 current working directory followed by two slashes. GCC uses this | |
0 | 371 directory, when it's present in the preprocessed input, as the |
372 directory emitted as the current working directory in some debugging | |
373 information formats. This option is implicitly enabled if debugging | |
374 information is enabled, but this can be inhibited with the negated | |
375 form @option{-fno-working-directory}. If the @option{-P} flag is | |
376 present in the command line, this option has no effect, since no | |
377 @code{#line} directives are emitted whatsoever. | |
378 | |
379 @item -A @var{predicate}=@var{answer} | |
380 @opindex A | |
381 Make an assertion with the predicate @var{predicate} and answer | |
382 @var{answer}. This form is preferred to the older form @option{-A | |
383 @var{predicate}(@var{answer})}, which is still supported, because | |
384 it does not use shell special characters. | |
385 @ifset cppmanual | |
386 @xref{Obsolete Features}. | |
387 @end ifset | |
388 | |
389 @item -A -@var{predicate}=@var{answer} | |
390 Cancel an assertion with the predicate @var{predicate} and answer | |
391 @var{answer}. | |
392 | |
393 @item -C | |
394 @opindex C | |
395 Do not discard comments. All comments are passed through to the output | |
396 file, except for comments in processed directives, which are deleted | |
397 along with the directive. | |
398 | |
399 You should be prepared for side effects when using @option{-C}; it | |
400 causes the preprocessor to treat comments as tokens in their own right. | |
401 For example, comments appearing at the start of what would be a | |
402 directive line have the effect of turning that line into an ordinary | |
403 source line, since the first token on the line is no longer a @samp{#}. | |
404 | |
405 @item -CC | |
111 | 406 @opindex CC |
0 | 407 Do not discard comments, including during macro expansion. This is |
408 like @option{-C}, except that comments contained within macros are | |
409 also passed through to the output file where the macro is expanded. | |
410 | |
131 | 411 In addition to the side effects of the @option{-C} option, the |
0 | 412 @option{-CC} option causes all C++-style comments inside a macro |
413 to be converted to C-style comments. This is to prevent later use | |
414 of that macro from inadvertently commenting out the remainder of | |
415 the source line. | |
416 | |
417 The @option{-CC} option is generally used to support lint comments. | |
418 | |
111 | 419 @item -P |
420 @opindex P | |
421 Inhibit generation of linemarkers in the output from the preprocessor. | |
422 This might be useful when running the preprocessor on something that is | |
423 not C code, and will be sent to a program which might be confused by the | |
424 linemarkers. | |
425 @ifset cppmanual | |
426 @xref{Preprocessor Output}. | |
427 @end ifset | |
428 | |
429 @cindex traditional C language | |
430 @cindex C language, traditional | |
431 @item -traditional | |
432 @itemx -traditional-cpp | |
0 | 433 @opindex traditional-cpp |
111 | 434 @opindex traditional |
435 | |
436 Try to imitate the behavior of pre-standard C preprocessors, as | |
0 | 437 opposed to ISO C preprocessors. |
438 @ifset cppmanual | |
439 @xref{Traditional Mode}. | |
440 @end ifset | |
111 | 441 @ifclear cppmanual |
442 See the GNU CPP manual for details. | |
443 @end ifclear | |
444 | |
445 Note that GCC does not otherwise attempt to emulate a pre-standard | |
446 C compiler, and these options are only supported with the @option{-E} | |
447 switch, or when invoking CPP explicitly. | |
0 | 448 |
449 @item -trigraphs | |
450 @opindex trigraphs | |
111 | 451 Support ISO C trigraphs. |
452 These are three-character sequences, all starting with @samp{??}, that | |
453 are defined by ISO C to stand for single characters. For example, | |
454 @samp{??/} stands for @samp{\}, so @samp{'??/n'} is a character | |
455 constant for a newline. | |
0 | 456 @ifset cppmanual |
457 @xref{Initial processing}. | |
458 @end ifset | |
111 | 459 |
0 | 460 @ifclear cppmanual |
461 The nine trigraphs and their replacements are | |
462 | |
463 @smallexample | |
464 Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??- | |
465 Replacement: [ ] @{ @} # \ ^ | ~ | |
466 @end smallexample | |
467 @end ifclear | |
468 | |
111 | 469 By default, GCC ignores trigraphs, but in |
470 standard-conforming modes it converts them. See the @option{-std} and | |
471 @option{-ansi} options. | |
472 | |
0 | 473 @item -remap |
474 @opindex remap | |
475 Enable special code to work around file systems which only permit very | |
476 short file names, such as MS-DOS@. | |
477 | |
478 @item -H | |
479 @opindex H | |
480 Print the name of each header file used, in addition to other normal | |
481 activities. Each name is indented to show how deep in the | |
482 @samp{#include} stack it is. Precompiled header files are also | |
483 printed, even if they are found to be invalid; an invalid precompiled | |
484 header file is printed with @samp{...x} and a valid one with @samp{...!} . | |
485 | |
111 | 486 @item -d@var{letters} |
487 @opindex d | |
488 Says to make debugging dumps during compilation as specified by | |
489 @var{letters}. The flags documented here are those relevant to the | |
490 preprocessor. Other @var{letters} are interpreted | |
491 by the compiler proper, or reserved for future versions of GCC, and so | |
492 are silently ignored. If you specify @var{letters} whose behavior | |
493 conflicts, the result is undefined. | |
494 @ifclear cppmanual | |
495 @xref{Developer Options}, for more information. | |
496 @end ifclear | |
497 | |
498 @table @gcctabopt | |
499 @item -dM | |
500 @opindex dM | |
501 Instead of the normal output, generate a list of @samp{#define} | |
502 directives for all the macros defined during the execution of the | |
503 preprocessor, including predefined macros. This gives you a way of | |
504 finding out what is predefined in your version of the preprocessor. | |
505 Assuming you have no file @file{foo.h}, the command | |
506 | |
507 @smallexample | |
508 touch foo.h; cpp -dM foo.h | |
509 @end smallexample | |
510 | |
511 @noindent | |
512 shows all the predefined macros. | |
513 | |
514 @ifclear cppmanual | |
515 If you use @option{-dM} without the @option{-E} option, @option{-dM} is | |
516 interpreted as a synonym for @option{-fdump-rtl-mach}. | |
517 @xref{Developer Options, , ,gcc}. | |
518 @end ifclear | |
519 | |
520 @item -dD | |
521 @opindex dD | |
522 Like @option{-dM} except in two respects: it does @emph{not} include the | |
523 predefined macros, and it outputs @emph{both} the @samp{#define} | |
524 directives and the result of preprocessing. Both kinds of output go to | |
525 the standard output file. | |
526 | |
527 @item -dN | |
528 @opindex dN | |
529 Like @option{-dD}, but emit only the macro names, not their expansions. | |
530 | |
531 @item -dI | |
532 @opindex dI | |
533 Output @samp{#include} directives in addition to the result of | |
534 preprocessing. | |
535 | |
536 @item -dU | |
537 @opindex dU | |
538 Like @option{-dD} except that only macros that are expanded, or whose | |
539 definedness is tested in preprocessor directives, are output; the | |
540 output is delayed until the use or test of the macro; and | |
541 @samp{#undef} directives are also output for macros tested but | |
542 undefined at the time. | |
0 | 543 @end table |
111 | 544 |
545 @item -fdebug-cpp | |
546 @opindex fdebug-cpp | |
547 This option is only useful for debugging GCC. When used from CPP or with | |
548 @option{-E}, it dumps debugging information about location maps. Every | |
549 token in the output is preceded by the dump of the map its location | |
550 belongs to. | |
551 | |
552 When used from GCC without @option{-E}, this option has no effect. |