-finline-functions -finline-functions-called-once -finline-limit=@var{n} @gol
-finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg -fipa-pta @gol
-fipa-profile -fipa-pure-const -fipa-reference -fipa-struct-reorg @gol
--fipa-type-escape -fira-algorithm=@var{algorithm} @gol
+-fira-algorithm=@var{algorithm} @gol
-fira-region=@var{region} -fira-coalesce @gol
-fira-loop-pressure -fno-ira-share-save-slots @gol
-fno-ira-share-spill-slots -fira-verbose=@var{n} @gol
@item -###
@opindex ###
-Like @option{-v} except the commands are not executed and all command
-arguments are quoted. This is useful for shell scripts to capture the
-driver-generated command lines.
+Like @option{-v} except the commands are not executed and arguments
+are quoted unless they contain only alphanumeric characters or @code{./-_}.
+This is useful for shell scripts to capture the driver-generated command lines.
@item -pipe
@opindex pipe
ANSI/ISO C@. These include @code{ffs}, @code{alloca}, @code{_exit},
@code{index}, @code{bzero}, @code{conjf}, and other related functions.
+@item -fnothrow-opt
+@opindex fnothrow-opt
+Treat a @code{throw()} exception specification as though it were a
+@code{noexcept} specification to reduce or eliminate the text size
+overhead relative to a function with no exception specification. The
+semantic effect is that an exception thrown out of a function with
+such an exception specification will result in a call to
+@code{terminate} rather than @code{unexpected}.
+
@item -fno-operator-names
@opindex fno-operator-names
Do not treat the operator name keywords @code{and}, @code{bitand},
Emit statistics about front-end processing at the end of the compilation.
This information is generally only useful to the G++ development team.
+@item -fstrict-enums
+@opindex fstrict-enums
+Allow the compiler to optimize using the assumption that a value of
+enumeration type can only be one of the values of the enumeration (as
+defined in the C++ standard; basically, a value which can be
+represented in the minimum number of bits needed to represent all the
+enumerators). This assumption may not be valid if the program uses a
+cast to convert an arbitrary integer value to the enumeration type.
+
@item -ftemplate-depth=@var{n}
@opindex ftemplate-depth
Set the maximum instantiation depth for template classes to @var{n}.
If a source file was changed between @option{-fprofile-gen} and
@option{-fprofile-use}, the files with the profile feedback can fail
to match the source file and GCC can not use the profile feedback
-information. By default, GCC emits an error message in this case.
-The option @option{-Wcoverage-mismatch} emits a warning instead of an
-error. GCC does not use appropriate feedback profiles, so using this
-option can result in poorly optimized code. This option is useful
-only in the case of very minor changes such as bug fixes to an
-existing code-base.
+information. By default, this warning is enabled and is treated as an
+error. @option{-Wno-coverage-mismatch} can be used to disable the
+warning or @option{-Wno-error=coverage-mismatch} can be used to
+disable the error. Disable the error for this warning can result in
+poorly optimized code, so disabling the error is useful only in the
+case of very minor changes such as bug fixes to an existing code-base.
+Completely disabling the warning is not recommended.
@end table
@ref{Objective-C and Objective-C++ Dialect Options}.
When an unrecognized warning label is requested (e.g.,
-@option{-Wunknown-warning}), GCC will emit a diagnostic stating
+@option{-Wunknown-warning}, GCC will emit a diagnostic stating
that the option is not recognized. However, if the @samp{-Wno-} form
is used, the behavior is slightly different: No diagnostic will be
produced for @option{-Wno-unknown-warning} unless other diagnostics
-Wc++0x-compat @gol
-Wchar-subscripts @gol
-Wenum-compare @r{(in C/Objc; this is on by default in C++)} @gol
--Wimplicit-int @gol
--Wimplicit-function-declaration @gol
+-Wimplicit-int @r{(C and Objective-C only)} @gol
+-Wimplicit-function-declaration @r{(C and Objective-C only)} @gol
-Wcomment @gol
-Wformat @gol
-Wmain @r{(only for C/ObjC and unless} @option{-ffreestanding}@r{)} @gol
@option{-pedantic-errors}. This warning is also enabled by
@option{-Wall}.
-@item -Wimplicit
+@item -Wimplicit @r{(C and Objective-C only)}
@opindex Wimplicit
@opindex Wno-implicit
Same as @option{-Wimplicit-int} and @option{-Wimplicit-function-declaration}.
layout in order to better utilize spatial locality. This transformation is
affective for programs containing arrays of structures. Available in two
compilation modes: profile-based (enabled with @option{-fprofile-generate})
-or static (which uses built-in heuristics). Require @option{-fipa-type-escape}
-to provide the safety of this transformation. It works only in whole program
+or static (which uses built-in heuristics). It works only in whole program
mode, so it requires @option{-fwhole-program} and @option{-combine} to be
enabled. Structures considered @samp{cold} by this transformation are not
affected (see @option{--param struct-reorg-cold-struct-ratio=@var{value}}).
compile-time usage on large compilation units. It is not enabled by
default at any optimization level.
-@item -fipa-profile
-@opindex fipa-profile
-Perform interprocedural profile propagation. The functions called only from
-cold functions are marked as cold. Also functions executed once (such as
-@code{cold}, @code{noreturn}, static constructors or destructors) are identified. Cold
-functions and loop less parts of functions executed once are then optimized for
-size.
-Enabled by default at @option{-O} and higher.
-
@item -fipa-cp
@opindex fipa-cp
Perform interprocedural constant propagation.
Disabled by default.
-This option is experimental.
-
@item -fwpa
@opindex fwpa
This is an internal option used by GCC when compiling with
@item min-insn-to-prefetch-ratio
The minimum ratio between the number of instructions and the
-number of prefetches to enable prefetching in a loop with an
-unknown trip count.
+number of prefetches to enable prefetching in a loop.
@item prefetch-min-insn-to-mem-ratio
The minimum ratio between the number of instructions and the
by default. This can be overridden with the @code{section} attribute.
@xref{Variable Attributes}.
-@item -mfix-cortex-m3-ldrd
-@opindex mfix-cortex-m3-ldrd
-Some Cortex-M3 cores can cause data corruption when @code{ldrd} instructions
-with overlapping destination and base registers are used. This option avoids
-generating these instructions. This option is enabled by default when
-@option{-mcpu=cortex-m3} is specified.
-
@end table
@node ARM Options
loader imposes this restriction, and when @option{-fpic} or @option{-fPIC}
is specified.
+@item -mfix-cortex-m3-ldrd
+@opindex mfix-cortex-m3-ldrd
+Some Cortex-M3 cores can cause data corruption when @code{ldrd} instructions
+with overlapping destination and base registers are used. This option avoids
+generating these instructions. This option is enabled by default when
+@option{-mcpu=cortex-m3} is specified.
+
@end table
@node AVR Options