@item -M
@opindex M
-@cindex make
-@cindex dependencies, make
+@cindex @command{make}
+@cindex dependencies, @command{make}
Instead of outputting the result of preprocessing, output a rule
suitable for @command{make} describing the dependencies of the main
source file. The preprocessor outputs one @command{make} rule containing
@opindex fpch-preprocess
This option allows use of a precompiled header (@pxref{Precompiled
Headers}) together with @option{-E}. It inserts a special @code{#pragma},
-@code{#pragma GCC pch_preprocess "<filename>"} in the output to mark
-the place where the precompiled header was found, and its filename. When
-@option{-fpreprocessed} is in use, GCC recognizes this @code{#pragma} and
-loads the PCH@.
+@code{#pragma GCC pch_preprocess "@var{filename}"} in the output to mark
+the place where the precompiled header was found, and its @var{filename}.
+When @option{-fpreprocessed} is in use, GCC recognizes this @code{#pragma}
+and loads the PCH@.
This option is off by default, because the resulting preprocessed output
is only really suitable as input to GCC@. It is switched on by
The revised ISO C standard, published in December 1999. Before
publication, this was known as C9X@.
-@item c1x
-The next version of the ISO C standard, still under development.
+@item iso9899:2011
+@itemx c11
+@itemx c1x
+The revised ISO C standard, published in December 2011. Before
+publication, this was known as C1X@.
@item gnu90
@itemx gnu89
@itemx gnu9x
The 1999 C standard plus GNU extensions.
-@item gnu1x
-The next version of the ISO C standard, still under development, plus
-GNU extensions.
+@item gnu11
+@itemx gnu1x
+The 2011 C standard plus GNU extensions.
@item c++98
The 1998 ISO C++ standard plus amendments.
line. If the value is less than 1 or greater than 100, the option is
ignored. The default is 8.
+@item -fdebug-cpp
+@opindex fdebug-cpp
+This option is only useful for debugging GCC. When used with
+@option{-E}, dumps debugging information about location maps. Every
+token in the output is preceded by the dump of the map its location
+belongs to. The dump of the map holding the location of a token would
+be:
+@smallexample
+@{@samp{P}:@file{/file/path};@samp{F}:@file{/includer/path};@samp{L}:@var{line_num};@samp{C}:@var{col_num};@samp{S}:@var{system_header_p};@samp{M}:@var{map_address};@samp{E}:@var{macro_expansion_p},@samp{loc}:@var{location}@}
+@end smallexample
+
+When used without @option{-E}, this option has no effect.
+
+@item -ftrack-macro-expansion@r{[}=@var{level}@r{]}
+@opindex ftrack-macro-expansion
+Track locations of tokens across macro expansions. This allows the
+compiler to emit diagnostic about the current macro expansion stack
+when a compilation error occurs in a macro expansion. Using this
+option makes the preprocessor and the compiler consume more
+memory. The @var{level} parameter can be used to choose the level of
+precision of token location tracking thus decreasing the memory
+consumption if necessary. Value @samp{0} of @var{level} de-activates
+this option just as if no @option{-ftrack-macro-expansion} was present
+on the command line. Value @samp{1} tracks tokens locations in a
+degraded mode for the sake of minimal memory overhead. In this mode
+all tokens resulting from the expansion of an argument of a
+function-like macro have the same location. Value @samp{2} tracks
+tokens locations completely. This value is the most memory hungry.
+When this option is given no argument, the default parameter value is
+@samp{2}.
+
@item -fexec-charset=@var{charset}
@opindex fexec-charset
@cindex character set, execution