{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Fdirectives only when preprocessing handle directives

Info icon This 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.
Image of page 66

Info icon This 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
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
Image of page 68

Info icon This 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 ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern