{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Fdirectives only when preprocessing handle directives

Info iconThis preview shows pages 66–69. Sign up to view the full content.

View Full Document Right Arrow Icon
-fdirectives-only When preprocessing, handle directives, but do not expand macros.
Background image of page 66

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Chapter 12: Invocation 63 The option’s behavior depends on the ‘ -E ’ and ‘ -fpreprocessed ’ options. With ‘ -E ’, preprocessing is limited to the handling of directives such as #define , #ifdef , and #error . Other preprocessor operations, such as macro expansion and trigraph conversion are not performed. In addition, the ‘ -dD ’ option is implicitly enabled. With ‘ -fpreprocessed ’, predefinition of command line and most builtin macros is disabled. Macros such as __LINE__ , which are contextually dependent, are handled normally. This enables compilation of files previously preprocessed with -E -fdirectives-only . With both ‘ -E ’ and ‘ -fpreprocessed ’, the rules for ‘ -fpreprocessed ’ take precedence. This enables full preprocessing of files previously preprocessed with -E -fdirectives-only . -fdollars-in-identifiers Accept ‘ $ ’ in identifiers. See [Identifier characters], page 52 . -fextended-identifiers Accept universal character names in identifiers. This option is experimental; in a future version of GCC, it will be enabled by default for C99 and C ++ . -fno-canonical-system-headers When preprocessing, do not shorten system header paths with canonicalization. -fpreprocessed Indicate to the preprocessor that the input file has already been preprocessed. This suppresses things like macro expansion, trigraph conversion, escaped new- line 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. -fdebug-cpp This option is only useful for debugging GCC. When used with ‘ -E ’, dumps debugging information about location maps. Every token in the output is pre- ceded by the dump of the map its location belongs to. The dump of the map holding the location of a token would be: {‘P’:‘/file/path’;‘F’:‘/includer/path’;‘L’: line_num ;‘C’: col_num ;‘S’: system_header_p ;‘M’: map_a When used without ‘ -E ’, this option has no effect. -ftrack-macro-expansion [ = level ] Track locations of tokens across macro expansions. This allows the compiler to emit diagnostic about the current macro expansion stack when a compilation
Background image of page 67
Chapter 12: Invocation 64 error occurs in a macro expansion. Using this option makes the preprocessor and the compiler consume more memory. The level parameter can be used
Background image of page 68

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 69
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page66 / 83

fdirectives only When preprocessing handle directives but...

This preview shows document pages 66 - 69. Sign up to view the full document.

View Full Document Right Arrow Icon bookmark
Ask a homework question - tutors are online