https://gcc.gnu.org/g:ed2924c7628343ff8b699f320a05c85bdb9c2837

commit r16-7027-ged2924c7628343ff8b699f320a05c85bdb9c2837
Author: Sandra Loosemore <[email protected]>
Date:   Sun Jan 11 23:31:44 2026 +0000

    doc: Add missing index entries for -fno-* options [PR122243]
    
    This patch was initially mechanically generated but has been hand-checked
    and corrected where necessary.
    
    gcc/ChangeLog
            PR other/122243
            * doc/cppopts.texi: Add missing @opindex entries for
            -fno-* options.
            * doc/invoke.texi: Likewise.

Diff:
---
 gcc/doc/cppopts.texi |   8 ++
 gcc/doc/invoke.texi  | 341 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 349 insertions(+)

diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi
index 91f63b3dd421..e5ac751292bf 100644
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
@@ -234,6 +234,7 @@ Like @option{-MD} except mention only user header files, 
not system
 header files.
 
 @opindex fpreprocessed
+@opindex fno-preprocessed
 @item -fpreprocessed
 Indicate to the preprocessor that the input file has already been
 preprocessed.  This suppresses things like macro expansion, trigraph
@@ -249,6 +250,7 @@ extensions that GCC uses for preprocessed files created by
 @option{-save-temps}.
 
 @opindex fdirectives-only
+@opindex fno-directives-only
 @item -fdirectives-only
 When preprocessing, handle directives, but do not expand macros.
 
@@ -271,6 +273,7 @@ With both @option{-E} and @option{-fpreprocessed}, the 
rules for
 files previously preprocessed with @code{-E -fdirectives-only}.
 
 @opindex fdollars-in-identifiers
+@opindex fno-dollars-in-identifiers
 @item -fdollars-in-identifiers
 @anchor{fdollars-in-identifiers}
 Accept @samp{$} in identifiers.
@@ -279,6 +282,7 @@ Accept @samp{$} in identifiers.
 @end ifset
 
 @opindex fextended-identifiers
+@opindex fno-extended-identifiers
 @item -fextended-identifiers
 Accept universal character names and extended characters in
 identifiers.  This option is enabled by default for C99 (and later C
@@ -294,6 +298,7 @@ When preprocessing, do not shorten system header paths with 
canonicalization.
 Set the maximum depth of the nested #include. The default is 200. 
 
 @opindex fsearch-include-path
+@opindex fno-search-include-path
 @item -fsearch-include-path@r{[}=@var{kind}@r{]}
 Look for input files on the #include path, not just the current
 directory.  This is particularly useful with C++20 modules, for which
@@ -376,6 +381,7 @@ supported by the system's @code{iconv} library routine.
 
 @ifclear cppmanual
 @opindex fpch-deps
+@opindex fno-pch-deps
 @item -fpch-deps
 When using precompiled headers (@pxref{Precompiled Headers}), this flag
 causes the dependency-output flags to also list the files from the
@@ -385,6 +391,7 @@ create it, because those files are not consulted when a 
precompiled
 header is used.
 
 @opindex fpch-preprocess
+@opindex fno-pch-preprocess
 @item -fpch-preprocess
 This option allows use of a precompiled header (@pxref{Precompiled
 Headers}) together with @option{-E}.  It inserts a special @code{#pragma},
@@ -615,6 +622,7 @@ undefined at the time.
 @end table
 
 @opindex fdebug-cpp
+@opindex fno-debug-cpp
 @item -fdebug-cpp
 This option is only useful for debugging GCC.  When used from CPP or with
 @option{-E}, it dumps debugging information about location maps.  Every
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 2a25af0ee40b..d50e846a6025 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -2368,6 +2368,7 @@ directives are not affected by these options.  See also
 @option{-fprofile-prefix-map} and @option{-fcanon-prefix-map}.
 
 @opindex fcanon-prefix-map
+@opindex fno-canon-prefix-map
 @item -fcanon-prefix-map
 For the @option{-f*-prefix-map} options normally comparison
 of @file{@var{old}} prefix against the filename that would be normally
@@ -2733,12 +2734,14 @@ built-in functions selectively when using 
@option{-fno-builtin} or
 @end smallexample
 
 @opindex fcond-mismatch
+@opindex fno-cond-mismatch
 @item -fcond-mismatch
 Allow conditional expressions with mismatched types in the second and
 third arguments.  The value of such an expression is void.  This option
 is not supported for C++.
 
 @opindex ffreestanding
+@opindex fno-freestanding
 @cindex hosted environment
 @item -ffreestanding
 
@@ -2752,6 +2755,7 @@ This is equivalent to @option{-fno-hosted}.
 freestanding and hosted environments.
 
 @opindex fgimple
+@opindex fno-gimple
 @item -fgimple
 
 Enable parsing of function definitions marked with @code{__GIMPLE}.
@@ -2759,6 +2763,7 @@ This is an experimental feature that allows unit testing 
of GIMPLE
 passes.
 
 @opindex fgnu-tm
+@opindex fno-gnu-tm
 @item -fgnu-tm
 When the option @option{-fgnu-tm} is specified, the compiler
 generates code for the Linux variant of Intel's current Transactional
@@ -2775,6 +2780,7 @@ Note that the transactional memory feature is not 
supported with
 non-call exceptions (@option{-fnon-call-exceptions}).
 
 @opindex fgnu89-inline
+@opindex fno-gnu89-inline
 @item -fgnu89-inline
 The option @option{-fgnu89-inline} tells GCC to use the traditional
 GNU semantics for @code{inline} functions when in C99 mode.
@@ -2795,6 +2801,7 @@ in effect for @code{inline} functions.  @xref{Common 
Predefined
 Macros,,,cpp,The C Preprocessor}.
 
 @opindex fhosted
+@opindex fno-hosted
 @cindex hosted environment
 @item -fhosted
 
@@ -2805,12 +2812,14 @@ type of @code{int}.  Examples are nearly everything 
except a kernel.
 This is equivalent to @option{-fno-freestanding}.
 
 @opindex flax-vector-conversions
+@opindex fno-lax-vector-conversions
 @item -flax-vector-conversions
 Allow implicit conversions between vectors with differing numbers of
 elements and/or incompatible element types.  This option should not be
 used for new code.
 
 @opindex fms-extensions
+@opindex fno-ms-extensions
 @item -fms-extensions
 Accept some non-standard constructs used in Microsoft header files.
 
@@ -2883,6 +2892,7 @@ provide any resources extracted from the source that may 
be required by other
 sources.
 
 @opindex fplan9-extensions
+@opindex fno-plan9-extensions
 @item -fplan9-extensions
 Accept some non-standard constructs used in Plan 9 code.
 
@@ -2907,6 +2917,7 @@ default, such a bit-field is signed, because this is 
consistent: the
 basic integer types such as @code{int} are signed types.
 
 @opindex fsigned-char
+@opindex fno-signed-char
 @item -fsigned-char
 Let the type @code{char} be signed, like @code{signed char}.
 
@@ -2915,6 +2926,7 @@ the negative form of @option{-funsigned-char}.  Likewise, 
the option
 @option{-fno-signed-char} is equivalent to @option{-funsigned-char}.
 
 @opindex funsigned-char
+@opindex fno-unsigned-char
 @item -funsigned-char
 Let the type @code{char} be unsigned, like @code{unsigned char}.
 
@@ -3131,6 +3143,7 @@ Turn off all access checking.  This switch is mainly 
useful for working
 around bugs in the access control code.
 
 @opindex faligned-new
+@opindex fno-aligned-new
 @item -faligned-new
 @itemx -faligned-new=@var{alignment}
 Enable support for C++17 @code{new} of types that require more
@@ -3224,6 +3237,7 @@ s = u8"xx"s;            // error: conversion from
 @end smallexample
 
 @opindex fcheck-new
+@opindex fno-check-new
 @item -fcheck-new
 Check that the pointer returned by @code{operator new} is non-null
 before attempting to modify the storage allocated.  This check is
@@ -3236,6 +3250,7 @@ exhaustion is signalled by throwing 
@code{std::bad_alloc}.  See also
 @samp{new (nothrow)}.
 
 @opindex fconcepts
+@opindex fno-concepts
 @item -fconcepts
 Enable support for the C++ Concepts feature for constraining template
 arguments.  With @option{-std=c++20} and above, Concepts are part of
@@ -3272,6 +3287,7 @@ constexpr calculations you might want to experiment to 
find which
 value works best for you.
 
 @opindex fconstexpr-fp-except
+@opindex fno-constexpr-fp-except
 @item -fconstexpr-fp-except
 Annex F of the C standard specifies that IEC559 floating point
 exceptions encountered at compile time should not stop compilation.
@@ -3302,6 +3318,7 @@ evaluation might take too long.
 The default is 33554432 (1<<25).
 
 @opindex fcontracts
+@opindex fno-contracts
 @item -fcontracts
 Enable experimental support for the C++ Contracts feature, as briefly
 added to and then removed from the C++20 working paper (N4820).  The
@@ -3383,12 +3400,14 @@ called.  If the handler returns, execution continues 
normally.
 @end table
 
 @opindex fcoroutines
+@opindex fno-coroutines
 @item -fcoroutines
 Enable support for the C++ coroutines extension.  With @option{-std=c++20}
 and above, coroutines are part of the language standard, so
 @option{-fcoroutines} defaults to on.
 
 @opindex fdiagnostics-all-candidates
+@opindex fno-diagnostics-all-candidates
 @item -fdiagnostics-all-candidates
 Permit the C++ front end to note all candidates during overload resolution
 failure, including when a deleted function is selected.
@@ -3536,6 +3555,7 @@ This option is turned on by default; it is only effective 
in C++20 mode
 or later.
 
 @opindex fimplicit-constexpr
+@opindex fno-implicit-constexpr
 @item -fimplicit-constexpr
 Make inline functions implicitly constexpr, if they satisfy the
 requirements for a constexpr function.  This option can be used in
@@ -3582,6 +3602,7 @@ implicitly enabled by selecting that standard version.
 Compile a header file to create an importable header unit.
 
 @opindex fmodule-implicit-inline
+@opindex fno-module-implicit-inline
 @item -fmodule-implicit-inline
 Member functions defined in their class definitions are not implicitly
 inline for modular code.  This is different to traditional C++
@@ -3613,11 +3634,13 @@ and if that is unset, an in-process default is provided.
 Only emit the Compiled Module Interface, inhibiting any object file.
 
 @opindex fms-extensions
+@opindex fno-ms-extensions
 @item -fms-extensions
 Disable Wpedantic warnings about constructs used in MFC, such as implicit
 int and getting a pointer to member function via non-standard syntax.
 
 @opindex fnew-inheriting-ctors
+@opindex fno-new-inheriting-ctors
 @item -fnew-inheriting-ctors
 Enable the P0136 adjustment to the semantics of C++11 constructor
 inheritance.  This is part of C++17 but also considered to be a Defect
@@ -3625,6 +3648,7 @@ Report against C++11 and C++14.  This flag is enabled by 
default
 unless @option{-fabi-version=10} or lower is specified.
 
 @opindex fnew-ttp-matching
+@opindex fno-new-ttp-matching
 @item -fnew-ttp-matching
 Enable the P0522 resolution to Core issue 150, template template
 parameters and default arguments: this allows a template with default
@@ -3640,6 +3664,7 @@ ANSI/ISO C@.  These include @code{ffs}, @code{alloca}, 
@code{_exit},
 @code{index}, @code{bzero}, @code{conjf}, and other related functions.
 
 @opindex fnothrow-opt
+@opindex fno-nothrow-opt
 @item -fnothrow-opt
 Treat a @code{throw()} exception specification as if it were a
 @code{noexcept} specification to reduce or eliminate the text size
@@ -3680,6 +3705,7 @@ behaviors make it harder to understand the error message 
rather than
 easier, you can use @option{-fno-pretty-templates} to disable them.
 
 @opindex frange-for-ext-temps
+@opindex fno-range-for-ext-temps
 @item -frange-for-ext-temps
 Enable lifetime extension of C++ range based for temporaries.
 With @option{-std=c++23} and above this is part of the language standard,
@@ -3709,6 +3735,7 @@ fail to link if a class compiled with @option{-fno-rtti} 
is used as a base
 for a class compiled with @option{-frtti}.
 
 @opindex fsized-deallocation
+@opindex fno-sized-deallocation
 @item -fsized-deallocation
 Enable the built-in global declarations
 @smallexample
@@ -3722,6 +3749,7 @@ to make deallocation faster.  Enabled by default under
 warns about places that might want to add a definition.
 
 @opindex fstrict-enums
+@opindex fno-strict-enums
 @item -fstrict-enums
 Allow the compiler to optimize using the assumption that a value of
 enumerated type can only be one of the values of the enumeration (as
@@ -3733,6 +3761,7 @@ This option has no effect for an enumeration type with a 
fixed underlying
 type.
 
 @opindex fstrong-eval-order
+@opindex fno-strong-eval-order
 @item -fstrong-eval-order
 @itemx -fstrong-eval-order=@var{kind}
 Evaluate member access, array subscripting, and shift expressions in
@@ -3771,6 +3800,7 @@ option to reduce code size slightly in code that doesn't 
need to be
 thread-safe.
 
 @opindex fuse-cxa-atexit
+@opindex fno-use-cxa-atexit
 @item -fuse-cxa-atexit
 Register destructors for objects with static storage duration with the
 @code{__cxa_atexit} function rather than the @code{atexit} function.
@@ -3786,6 +3816,7 @@ causes @code{std::uncaught_exception} to be incorrect, 
but is necessary
 if the runtime routine is not available.
 
 @opindex fvisibility-inlines-hidden
+@opindex fno-visibility-inlines-hidden
 @item -fvisibility-inlines-hidden
 This switch declares that the user does not attempt to compare
 pointers to inline functions or methods where the addresses of the two 
functions
@@ -3814,6 +3845,7 @@ as their linkage might otherwise cross a shared library 
boundary.
 @xref{Template Instantiation}.
 
 @opindex fvisibility-ms-compat
+@opindex fno-visibility-ms-compat
 @item -fvisibility-ms-compat
 This flag attempts to use visibility settings to make GCC's C++
 linkage model compatible with that of Microsoft Visual Studio.
@@ -3876,7 +3908,9 @@ C++, but do still search the other standard directories.  
(This option
 is used when building the C++ library.)
 
 @opindex flang-info-include-translate
+@opindex fno-lang-info-include-translate
 @opindex flang-info-include-translate-not
+@opindex fno-lang-info-include-translate-not
 @item -flang-info-include-translate
 @itemx -flang-info-include-translate-not
 @itemx -flang-info-include-translate=@var{header}
@@ -3888,6 +3922,7 @@ the form @code{"user"} or @code{<system>} it will be 
resolved to a
 specific user or system header using the include path.
 
 @opindex flang-info-module-cmi
+@opindex fno-lang-info-module-cmi
 @item -flang-info-module-cmi
 @itemx -flang-info-module-cmi=@var{module}
 Inform of Compiled Module Interface pathnames.  The first will note
@@ -5259,6 +5294,7 @@ nothing is specified, the default is Version 0 on 32-bit 
target
 machines, and Version 2 on 64-bit target machines.
 
 @opindex fobjc-call-cxx-cdtors
+@opindex fno-objc-call-cxx-cdtors
 @item -fobjc-call-cxx-cdtors
 For each Objective-C class, check if any of its instance variables is a
 C++ object with a non-trivial default constructor.  If so, synthesize a
@@ -5284,11 +5320,13 @@ support for invoking the @code{- (id) .cxx_construct} 
and
 @code{- (void) .cxx_destruct} methods.
 
 @opindex fobjc-direct-dispatch
+@opindex fno-objc-direct-dispatch
 @item -fobjc-direct-dispatch
 Allow fast jumps to the message dispatcher.  On Darwin this is
 accomplished via the comm page.
 
 @opindex fobjc-exceptions
+@opindex fno-objc-exceptions
 @item -fobjc-exceptions
 Enable syntactic support for structured exception handling in
 Objective-C, similar to what is offered by C++.  This option
@@ -5299,6 +5337,7 @@ runtime and the NeXT runtime (but not available in 
conjunction with
 the NeXT runtime on Mac OS X 10.2 and earlier).
 
 @opindex fobjc-gc
+@opindex fno-objc-gc
 @item -fobjc-gc
 Enable garbage collection (GC) in Objective-C and Objective-C++
 programs.  This option is only available with the NeXT runtime; the
@@ -5306,6 +5345,7 @@ GNU runtime has a different garbage collection 
implementation that
 does not require special compiler flags.
 
 @opindex fobjc-nilcheck
+@opindex fno-objc-nilcheck
 @item -fobjc-nilcheck
 For the NeXT runtime with version 2 of the ABI, check for a nil
 receiver in method invocations before doing the actual method call.
@@ -5327,6 +5367,7 @@ This is useful if you need to make sure that your 
Objective-C code can
 be compiled with older versions of GCC@.
 
 @opindex freplace-objc-classes
+@opindex fno-replace-objc-classes
 @item -freplace-objc-classes
 Emit a special marker instructing @command{ld(1)} not to statically link in
 the resulting object file, and allow @command{dyld(1)} to load it in at
@@ -5338,6 +5379,7 @@ is only available in conjunction with the NeXT runtime on 
Mac OS X 10.3
 and later.
 
 @opindex fzero-link
+@opindex fno-zero-link
 @item -fzero-link
 When compiling for the NeXT runtime, the compiler ordinarily replaces calls
 to @code{objc_getClass("@dots{}")} (when the name of the class is known at
@@ -5498,6 +5540,7 @@ Typical command lines are
 @end smallexample
 
 @opindex fopenacc
+@opindex fno-openacc
 @cindex OpenACC accelerator programming
 @item -fopenacc
 Enable handling of OpenACC directives @samp{#pragma acc} in C/C++ and
@@ -5514,6 +5557,7 @@ not explicitly specify them.  The @var{geom} value is a 
triple of
 A size can be omitted, to use a target-specific default value.
 
 @opindex fopenmp
+@opindex fno-openmp
 @cindex OpenMP parallel
 @item -fopenmp
 Enable handling of OpenMP directives @samp{#pragma omp},
@@ -5528,6 +5572,7 @@ targets that have support for @option{-pthread}. 
@option{-fopenmp}
 implies @option{-fopenmp-simd}.
 
 @opindex fopenmp-simd
+@opindex fno-openmp-simd
 @cindex OpenMP SIMD
 @cindex SIMD
 @item -fopenmp-simd
@@ -5544,6 +5589,7 @@ Fortran.  In fixed source form Fortran, the sentinels can 
also start with
 to the current task region, independent of the specified @code{bind} clause.
 
 @opindex fopenmp-target-simd-clone
+@opindex fno-openmp-target-simd-clone
 @cindex OpenMP target SIMD clone
 @item -fopenmp-target-simd-clone
 @item -fopenmp-target-simd-clone=@var{device-type}
@@ -5627,6 +5673,7 @@ prefix) for physical lines that result from the process 
of breaking
 a message which is too long to fit on a single line.
 
 @opindex fdiagnostics-color
+@opindex fno-diagnostics-color
 @cindex highlight, color
 @vindex GCC_COLORS @r{environment variable}
 @item -fdiagnostics-color[=@var{WHEN}]
@@ -5945,6 +5992,7 @@ This option controls the minimum width of the left margin 
printed by
 @option{-fdiagnostics-show-line-numbers}.  It defaults to 6.
 
 @opindex fdiagnostics-show-context
+@opindex fno-diagnostics-show-context
 @item -fdiagnostics-show-context[=@var{depth}]
 @itemx -fno-diagnostics-show-context
 With this option, the compiler might print the interesting control flow
@@ -5961,6 +6009,7 @@ The forms @option{-fdiagnostics-show-context} and
 @option{-fdiagnostics-show-context=0}, respectively.
 
 @opindex fdiagnostics-parseable-fixits
+@opindex fno-diagnostics-parseable-fixits
 @item -fdiagnostics-parseable-fixits
 Emit fix-it hints in a machine-parseable format, suitable for consumption
 by IDEs.  For each fix-it, a line will be printed after the relevant
@@ -5992,6 +6041,7 @@ An empty range (e.g. ``45:3-45:3'') indicates that the 
string is to
 be inserted at the given position.
 
 @opindex fdiagnostics-generate-patch
+@opindex fno-diagnostics-generate-patch
 @item -fdiagnostics-generate-patch
 Print fix-it hints to stderr in unified diff format, after any diagnostics
 are printed.  For example:
@@ -6013,6 +6063,7 @@ The diff may or may not be colorized, following the same 
rules
 as for diagnostics (see @option{-fdiagnostics-color}).
 
 @opindex fdiagnostics-show-template-tree
+@opindex fno-diagnostics-show-template-tree
 @item -fdiagnostics-show-template-tree
 
 In the C++ frontend, when printing diagnostics showing mismatching
@@ -6149,6 +6200,7 @@ For example:
 @end smallexample
 
 @opindex fdiagnostics-show-path-depths
+@opindex fno-diagnostics-show-path-depths
 @item -fdiagnostics-show-path-depths
 This option provides additional information when printing control-flow paths
 associated with a diagnostic.
@@ -6530,6 +6582,7 @@ warnings but control the kinds of diagnostics produced by 
GCC@.
 @table @gcctabopt
 @cindex syntax checking
 @opindex fsyntax-only
+@opindex fno-syntax-only
 @item -fsyntax-only
 Check the code for syntax errors, but don't do anything beyond that.
 
@@ -6711,6 +6764,7 @@ errors by @option{-pedantic-errors}.  For instance:
 }
 
 @opindex fpermissive
+@opindex fno-permissive
 @item -fpermissive
 Downgrade some required diagnostics about nonconformant code from
 errors to warnings.  Thus, using @option{-fpermissive} allows some
@@ -7141,6 +7195,7 @@ Warn if a declaration has duplicate @code{const}, 
@code{volatile},
 @opindex Wformat
 @opindex Wno-format
 @opindex ffreestanding
+@opindex fno-freestanding
 @opindex fno-builtin
 @opindex Wformat=
 @item -Wformat
@@ -12876,6 +12931,7 @@ By default, no debug information is produced for 
symbols that are not actually
 used. Use this option if you want debug information for all symbols.
 
 @opindex femit-class-debug-always
+@opindex fno-emit-class-debug-always
 @item -femit-class-debug-always
 Instead of emitting debugging information for a C++ class in only one
 object file, emit it in all object files using the class.  This option
@@ -12906,6 +12962,7 @@ where to find the source files. See also 
@option{-ffile-prefix-map}
 and @option{-fcanon-prefix-map}.
 
 @opindex fvar-tracking
+@opindex fno-var-tracking
 @item -fvar-tracking
 Run variable tracking pass.  It computes where variables are stored at each
 position in code.  Better debugging information is then generated
@@ -13513,6 +13570,7 @@ this allows the compiler to let arguments accumulate on 
the stack for several
 function calls and pop them all at once.
 
 @opindex fforward-propagate
+@opindex fno-forward-propagate
 @item -fforward-propagate
 Perform a forward propagation pass on RTL@.  The pass tries to combine two
 instructions and checks if the result can be simplified.  If loop unrolling
@@ -13523,6 +13581,7 @@ This option is enabled by default at optimization 
levels @option{-O1},
 @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex favoid-store-forwarding
+@opindex fno-avoid-store-forwarding
 @item -favoid-store-forwarding
 @itemx -fno-avoid-store-forwarding
 Many CPUs will stall for many cycles when a load partially depends on previous
@@ -13546,6 +13605,7 @@ The default is @option{-ffp-contract=off} for C in a 
standards compliant mode
 (@option{-std=c11} or similar), @option{-ffp-contract=fast} otherwise.
 
 @opindex ffp-int-builtin-inexact
+@opindex fno-fp-int-builtin-inexact
 @item -ffp-int-builtin-inexact
 Allow the built-in functions @code{ceil}, @code{floor},
 @code{round} and @code{trunc}, and their @code{float} and @code{long
@@ -13564,6 +13624,7 @@ generate a call to a library function then the 
``inexact'' exception
 may be raised if the library implementation does not follow TS 18661.
 
 @opindex fomit-frame-pointer
+@opindex fno-omit-frame-pointer
 @item -fomit-frame-pointer
 Omit the frame pointer in functions that don't need one.  This avoids the
 instructions to save, set up and restore the frame pointer; on many targets
@@ -13579,6 +13640,7 @@ leaf functions.
 Enabled by default at @option{-O1} and higher.
 
 @opindex foptimize-crc
+@opindex fno-optimize-crc
 @item -foptimize-crc
 Detect loops calculating CRC (performing polynomial long division) and
 replace them with a faster implementation.  Detect 8, 16, 32, and 64 bit CRC,
@@ -13592,12 +13654,14 @@ instruction, generate CRC using it; otherwise 
generate table-based CRC.
 Enabled by default at @option{-O2} and higher.
 
 @opindex foptimize-sibling-calls
+@opindex fno-optimize-sibling-calls
 @item -foptimize-sibling-calls
 Optimize sibling and tail recursive calls.
 
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex foptimize-strlen
+@opindex fno-optimize-strlen
 @item -foptimize-strlen
 Optimize various standard C string functions (e.g.@: @code{strlen},
 @code{strchr} or @code{strcpy}) and
@@ -13613,6 +13677,7 @@ Inline @samp{__atomic} operations when a lock-free 
instruction sequence
 is available.  This optimization is enabled by default.
 
 @opindex finline-stringops
+@opindex fno-inline-stringops
 @item -finline-stringops@r{[}=@var{fn}@r{]}
 Expand memory and string operations (for now, only @code{memset})
 inline, even when the length is variable or big enough as to require
@@ -13637,6 +13702,7 @@ Single functions can be exempted from inlining by 
marking them
 with the @code{noinline} attribute.
 
 @opindex finline-small-functions
+@opindex fno-inline-small-functions
 @item -finline-small-functions
 Integrate functions into their callers when their body is smaller than expected
 function call code (so overall size of program gets smaller).  The compiler
@@ -13647,6 +13713,7 @@ inline.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex findirect-inlining
+@opindex fno-indirect-inlining
 @item -findirect-inlining
 Inline also indirect calls that are discovered to be known at compile
 time thanks to previous inlining.  This option has any effect only
@@ -13656,6 +13723,7 @@ or @option{-finline-small-functions} options.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex finline-functions
+@opindex fno-inline-functions
 @item -finline-functions
 Consider all functions for inlining, even if they are not declared inline.
 The compiler heuristically decides which functions are worth integrating
@@ -13669,6 +13737,7 @@ Enabled at levels @option{-O2}, @option{-O3}, 
@option{-Os}.  Also enabled
 by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex finline-functions-called-once
+@opindex fno-inline-functions-called-once
 @item -finline-functions-called-once
 Consider all @code{static} functions called once for inlining into their
 caller even if they are not marked @code{inline}.  If a call to a given
@@ -13679,6 +13748,7 @@ Enabled at levels @option{-O1}, @option{-O2}, 
@option{-O3} and @option{-Os},
 but not @option{-Og}.
 
 @opindex fearly-inlining
+@opindex fno-early-inlining
 @item -fearly-inlining
 Inline functions marked by @code{always_inline} and functions whose body seems
 smaller than the function call overhead early before doing
@@ -13689,6 +13759,7 @@ having large chains of nested wrapper functions.
 Enabled by default.
 
 @opindex fipa-sra
+@opindex fno-ipa-sra
 @item -fipa-sra
 Perform interprocedural scalar replacement of aggregates, removal of
 unused parameters and replacement of parameters passed by reference
@@ -13734,6 +13805,7 @@ attribute or declspec.  @xref{Function 
Attributes,,Declaring Attributes of
 Functions}.
 
 @opindex fkeep-inline-functions
+@opindex fno-keep-inline-functions
 @item -fkeep-inline-functions
 In C, emit @code{static} functions that are declared @code{inline}
 into the object file, even if the function has been inlined into all
@@ -13742,11 +13814,13 @@ of its callers.  This switch does not affect 
functions using the
 inline functions into the object file.
 
 @opindex fkeep-static-functions
+@opindex fno-keep-static-functions
 @item -fkeep-static-functions
 Emit @code{static} functions into the object file, even if the function
 is never used.
 
 @opindex fkeep-static-consts
+@opindex fno-keep-static-consts
 @item -fkeep-static-consts
 Emit variables declared @code{static const} when optimization isn't turned
 on, even if the variables aren't referenced.
@@ -13756,6 +13830,7 @@ check if a variable is referenced, regardless of 
whether or not
 optimization is turned on, use the @option{-fno-keep-static-consts} option.
 
 @opindex fmerge-constants
+@opindex fno-merge-constants
 @item -fmerge-constants
 Attempt to merge identical constants (string constants and floating-point
 constants) across compilation units.
@@ -13767,6 +13842,7 @@ behavior.
 Enabled at levels @option{-O1}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fmerge-all-constants
+@opindex fno-merge-all-constants
 @item -fmerge-all-constants
 Attempt to merge identical constants and identical variables.
 
@@ -13779,12 +13855,14 @@ so using this option results in non-conforming
 behavior.
 
 @opindex fmodulo-sched
+@opindex fno-modulo-sched
 @item -fmodulo-sched
 Perform swing modulo scheduling immediately before the first scheduling
 pass.  This pass looks at innermost loops and reorders their
 instructions by overlapping different iterations.
 
 @opindex fmodulo-sched-allow-regmoves
+@opindex fno-modulo-sched-allow-regmoves
 @item -fmodulo-sched-allow-regmoves
 Perform more aggressive SMS-based modulo scheduling with register moves
 allowed.  By setting this flag certain anti-dependences edges are
@@ -13843,6 +13921,7 @@ assumptions based on that.
 The default is @option{-fzero-initialized-in-bss} except in Ada.
 
 @opindex fthread-jumps
+@opindex fno-thread-jumps
 @item -fthread-jumps
 Perform optimizations that check to see if a jump branches to a
 location where another comparison subsumed by the first is found.  If
@@ -13853,6 +13932,7 @@ the condition is known to be true or false.
 Enabled at levels @option{-O1}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fsplit-wide-types
+@opindex fno-split-wide-types
 @item -fsplit-wide-types
 When using a type that occupies multiple registers, such as @code{long
 long} on a 32-bit system, split the registers apart and allocate them
@@ -13863,6 +13943,7 @@ Enabled at levels @option{-O1}, @option{-O2}, 
@option{-O3},
 @option{-Os}.
 
 @opindex fsplit-wide-types-early
+@opindex fno-split-wide-types-early
 @item -fsplit-wide-types-early
 Fully split wide types early, instead of very late.
 This option has no effect unless @option{-fsplit-wide-types} is turned on.
@@ -13870,6 +13951,7 @@ This option has no effect unless 
@option{-fsplit-wide-types} is turned on.
 This is the default on some targets.
 
 @opindex fcse-follow-jumps
+@opindex fno-cse-follow-jumps
 @item -fcse-follow-jumps
 In common subexpression elimination (CSE), scan through jump instructions
 when the target of the jump is not reached by any other path.  For
@@ -13890,6 +13972,7 @@ body of the @code{if}.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex frerun-cse-after-loop
+@opindex fno-rerun-cse-after-loop
 @item -frerun-cse-after-loop
 Re-run common subexpression elimination after loop optimizations are
 performed.
@@ -13897,6 +13980,7 @@ performed.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fgcse
+@opindex fno-gcse
 @item -fgcse
 Perform a global common subexpression elimination pass.
 This pass also performs global constant and copy propagation.
@@ -13909,6 +13993,7 @@ the global common subexpression elimination pass by 
adding
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fgcse-lm
+@opindex fno-gcse-lm
 @item -fgcse-lm
 When @option{-fgcse-lm} is enabled, global common subexpression elimination
 attempts to move loads that are only killed by stores into themselves.  This
@@ -13918,6 +14003,7 @@ the loop, and a copy/store within the loop.
 Enabled by default when @option{-fgcse} is enabled.
 
 @opindex fgcse-sm
+@opindex fno-gcse-sm
 @item -fgcse-sm
 When @option{-fgcse-sm} is enabled, a store motion pass is run after
 global common subexpression elimination.  This pass attempts to move
@@ -13928,6 +14014,7 @@ the loop and a store after the loop.
 Not enabled at any optimization level.
 
 @opindex fgcse-las
+@opindex fno-gcse-las
 @item -fgcse-las
 When @option{-fgcse-las} is enabled, the global common subexpression
 elimination pass eliminates redundant loads that come after stores to the
@@ -13936,6 +14023,7 @@ same memory location (both partial and full 
redundancies).
 Not enabled at any optimization level.
 
 @opindex fgcse-after-reload
+@opindex fno-gcse-after-reload
 @item -fgcse-after-reload
 When @option{-fgcse-after-reload} is enabled, a redundant load elimination
 pass is performed after reload.  The purpose of this pass is to clean up
@@ -13944,6 +14032,7 @@ redundant spilling.
 Enabled by @option{-O3}, @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex faggressive-loop-optimizations
+@opindex fno-aggressive-loop-optimizations
 @item -faggressive-loop-optimizations
 This option tells the loop optimizer to use language constraints to
 derive bounds for the number of iterations of a loop.  This assumes that
@@ -13954,12 +14043,14 @@ and loop exit test optimizations.
 This option is enabled by default.
 
 @opindex funconstrained-commons
+@opindex fno-unconstrained-commons
 @item -funconstrained-commons
 This option tells the compiler that variables declared in common blocks
 (e.g.@: Fortran) may later be overridden with longer trailing arrays. This
 prevents certain optimizations that depend on knowing the array bounds.
 
 @opindex fcrossjumping
+@opindex fno-crossjumping
 @item -fcrossjumping
 Perform cross-jumping transformation.
 This transformation unifies equivalent code and saves code size.  The
@@ -13968,6 +14059,7 @@ resulting code may or may not perform better than 
without cross-jumping.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fauto-inc-dec
+@opindex fno-auto-inc-dec
 @item -fauto-inc-dec
 Combine increments or decrements of addresses with memory accesses.
 This pass is always skipped on architectures that do not have
@@ -13975,16 +14067,19 @@ instructions to support this.  Enabled by default at 
@option{-O1} and
 higher on architectures that support this.
 
 @opindex fdce
+@opindex fno-dce
 @item -fdce
 Perform dead code elimination (DCE) on RTL@.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fdse
+@opindex fno-dse
 @item -fdse
 Perform dead store elimination (DSE) on RTL@.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fif-conversion
+@opindex fno-if-conversion
 @item -fif-conversion
 Attempt to transform conditional jumps into branch-less equivalents.  This
 includes use of conditional moves, min, max, set flags and abs instructions, 
and
@@ -13995,6 +14090,7 @@ Enabled at levels @option{-O1}, @option{-O2}, 
@option{-O3}, @option{-Os}, but
 not with @option{-Og}.
 
 @opindex fif-conversion2
+@opindex fno-if-conversion2
 @item -fif-conversion2
 Use conditional execution (where available) to transform conditional jumps into
 branch-less equivalents.
@@ -14003,6 +14099,7 @@ Enabled at levels @option{-O1}, @option{-O2}, 
@option{-O3}, @option{-Os}, but
 not with @option{-Og}.
 
 @opindex fdeclone-ctor-dtor
+@opindex fno-declone-ctor-dtor
 @item -fdeclone-ctor-dtor
 The C++ ABI requires multiple entry points for constructors and
 destructors: one for a base subobject, one for a complete object, and
@@ -14015,6 +14112,7 @@ implementation.
 Enabled by @option{-Os}.
 
 @opindex fdelete-null-pointer-checks
+@opindex fno-delete-null-pointer-checks
 @item -fdelete-null-pointer-checks
 Assume that programs cannot safely dereference null pointers, and that
 no code or data element resides at address zero.
@@ -14037,6 +14135,7 @@ Passes that use the dataflow information
 are enabled independently at different optimization levels.
 
 @opindex fdevirtualize
+@opindex fno-devirtualize
 @item -fdevirtualize
 Attempt to convert calls to virtual functions to direct calls.  This
 is done both within a procedure and interprocedurally as part of
@@ -14045,6 +14144,7 @@ propagation (@option{-fipa-cp}).
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fdevirtualize-speculatively
+@opindex fno-devirtualize-speculatively
 @item -fdevirtualize-speculatively
 Attempt to convert calls to virtual functions to speculative direct calls.
 Based on the analysis of the type inheritance graph, determine for a given call
@@ -14054,6 +14154,7 @@ speculative calls enable more optimizations, such as 
inlining.  When they seem
 useless after further optimization, they are converted back into original form.
 
 @opindex fdevirtualize-at-ltrans
+@opindex fno-devirtualize-at-ltrans
 @item -fdevirtualize-at-ltrans
 Stream extra information needed for aggressive devirtualization when running
 the link-time optimizer in local transformation mode.
@@ -14062,6 +14163,7 @@ significantly increases the size of streamed data. For 
this reason it is
 disabled by default.
 
 @opindex fexpensive-optimizations
+@opindex fno-expensive-optimizations
 @item -fexpensive-optimizations
 Perform a number of minor optimizations that are relatively expensive.
 
@@ -14075,6 +14177,7 @@ Perform dead code elimination on zero and sign 
extensions, with special
 dataflow analysis.
 
 @opindex free
+@opindex fno-ree
 @item -free
 Attempt to remove redundant extension instructions.  This is especially
 helpful for the x86-64 architecture, which implicitly zero-extends in 64-bit
@@ -14100,6 +14203,7 @@ explicitly selected with @option{-flifetime-dse=2}.
 @option{-flifetime-dse=0} is equivalent to @option{-fno-lifetime-dse}.
 
 @opindex flive-range-shrinkage
+@opindex fno-live-range-shrinkage
 @item -flive-range-shrinkage
 Attempt to decrease register pressure through register live range
 shrinkage.  This is helpful for fast processors with small or moderate
@@ -14141,6 +14245,7 @@ This typically results in the smallest code size, and 
is enabled by default for
 @end table
 
 @opindex fira-hoist-pressure
+@opindex fno-ira-hoist-pressure
 @item -fira-hoist-pressure
 Use IRA to evaluate register pressure in the code hoisting pass for
 decisions to hoist expressions.  This option usually results in smaller
@@ -14149,6 +14254,7 @@ code, but it can slow the compiler down.
 This option is enabled at level @option{-Os} for all targets.
 
 @opindex fira-loop-pressure
+@opindex fno-ira-loop-pressure
 @item -fira-loop-pressure
 Use IRA to evaluate register pressure in loops for decisions to move
 loop invariants.  This option usually results in generation
@@ -14173,6 +14279,7 @@ pseudo-register that does not get a hard register gets 
a separate
 stack slot, and as a result function stack frames are larger.
 
 @opindex flra-remat
+@opindex fno-lra-remat
 @item -flra-remat
 Enable CFG-sensitive rematerialization in LRA.  Instead of loading
 values of spilled pseudos, LRA tries to rematerialize (recalculate)
@@ -14181,6 +14288,7 @@ values if it is profitable.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fdelayed-branch
+@opindex fno-delayed-branch
 @item -fdelayed-branch
 If supported for the target machine, attempt to reorder instructions
 to exploit instruction slots available after delayed branch
@@ -14190,6 +14298,7 @@ Enabled at levels @option{-O1}, @option{-O2}, 
@option{-O3}, @option{-Os},
 but not at @option{-Og}.
 
 @opindex fschedule-insns
+@opindex fno-schedule-insns
 @item -fschedule-insns
 If supported for the target machine, attempt to reorder instructions to
 eliminate execution stalls due to required data being unavailable.  This
@@ -14202,6 +14311,7 @@ However, many targets override this behavior.  For 
example, on x86, it is
 disabled at all levels, while on AArch64, it is enabled only at @option{-O3}.
 
 @opindex fschedule-insns2
+@opindex fno-schedule-insns2
 @item -fschedule-insns2
 Similar to @option{-fschedule-insns}, but requests an additional pass of
 instruction scheduling after register allocation has been done.  This is
@@ -14225,6 +14335,7 @@ is normally enabled when scheduling before register 
allocation, i.e.@:
 with @option{-fschedule-insns} or at @option{-O2} or higher.
 
 @opindex fsched-pressure
+@opindex fno-sched-pressure
 @item -fsched-pressure
 Enable register pressure sensitive insn scheduling before register
 allocation.  This only makes sense when scheduling before register
@@ -14235,18 +14346,21 @@ increase above the number of available hard registers 
and subsequent
 spills in register allocation.
 
 @opindex fsched-spec-load
+@opindex fno-sched-spec-load
 @item -fsched-spec-load
 Allow speculative motion of some load instructions.  This only makes
 sense when scheduling before register allocation, i.e.@: with
 @option{-fschedule-insns} or at @option{-O2} or higher.
 
 @opindex fsched-spec-load-dangerous
+@opindex fno-sched-spec-load-dangerous
 @item -fsched-spec-load-dangerous
 Allow speculative motion of more load instructions.  This only makes
 sense when scheduling before register allocation, i.e.@: with
 @option{-fschedule-insns} or at @option{-O2} or higher.
 
 @opindex fsched-stalled-insns
+@opindex fno-sched-stalled-insns
 @item -fsched-stalled-insns
 @itemx -fsched-stalled-insns=@var{n}
 Define how many insns (if any) can be moved prematurely from the queue
@@ -14258,6 +14372,7 @@ on how many queued insns can be moved prematurely.
 @option{-fsched-stalled-insns=1}.
 
 @opindex fsched-stalled-insns-dep
+@opindex fno-sched-stalled-insns-dep
 @item -fsched-stalled-insns-dep
 @itemx -fsched-stalled-insns-dep=@var{n}
 Define how many insn groups (cycles) are examined for a dependency
@@ -14270,6 +14385,7 @@ and only if @option{-fsched-stalled-insns} is used.
 @option{-fsched-stalled-insns-dep=1}.
 
 @opindex fsched2-use-superblocks
+@opindex fno-sched2-use-superblocks
 @item -fsched2-use-superblocks
 When scheduling after register allocation, use superblock scheduling.
 This allows motion across basic block boundaries,
@@ -14281,6 +14397,7 @@ This only makes sense when scheduling after register 
allocation, i.e.@: with
 @option{-fschedule-insns2} or at @option{-O2} or higher.
 
 @opindex fsched-group-heuristic
+@opindex fno-sched-group-heuristic
 @item -fsched-group-heuristic
 Enable the group heuristic in the scheduler.  This heuristic favors
 the instruction that belongs to a schedule group.  This is enabled
@@ -14288,6 +14405,7 @@ by default when scheduling is enabled, i.e.@: with 
@option{-fschedule-insns}
 or @option{-fschedule-insns2} or at @option{-O2} or higher.
 
 @opindex fsched-critical-path-heuristic
+@opindex fno-sched-critical-path-heuristic
 @item -fsched-critical-path-heuristic
 Enable the critical-path heuristic in the scheduler.  This heuristic favors
 instructions on the critical path.  This is enabled by default when
@@ -14295,6 +14413,7 @@ scheduling is enabled, i.e.@: with 
@option{-fschedule-insns}
 or @option{-fschedule-insns2} or at @option{-O2} or higher.
 
 @opindex fsched-spec-insn-heuristic
+@opindex fno-sched-spec-insn-heuristic
 @item -fsched-spec-insn-heuristic
 Enable the speculative instruction heuristic in the scheduler.  This
 heuristic favors speculative instructions with greater dependency weakness.
@@ -14303,6 +14422,7 @@ with @option{-fschedule-insns} or 
@option{-fschedule-insns2}
 or at @option{-O2} or higher.
 
 @opindex fsched-rank-heuristic
+@opindex fno-sched-rank-heuristic
 @item -fsched-rank-heuristic
 Enable the rank heuristic in the scheduler.  This heuristic favors
 the instruction belonging to a basic block with greater size or frequency.
@@ -14311,6 +14431,7 @@ with @option{-fschedule-insns} or 
@option{-fschedule-insns2} or
 at @option{-O2} or higher.
 
 @opindex fsched-last-insn-heuristic
+@opindex fno-sched-last-insn-heuristic
 @item -fsched-last-insn-heuristic
 Enable the last-instruction heuristic in the scheduler.  This heuristic
 favors the instruction that is less dependent on the last instruction
@@ -14319,6 +14440,7 @@ i.e.@: with @option{-fschedule-insns} or 
@option{-fschedule-insns2} or
 at @option{-O2} or higher.
 
 @opindex fsched-dep-count-heuristic
+@opindex fno-sched-dep-count-heuristic
 @item -fsched-dep-count-heuristic
 Enable the dependent-count heuristic in the scheduler.  This heuristic
 favors the instruction that has more instructions depending on it.
@@ -14327,6 +14449,7 @@ with @option{-fschedule-insns} or 
@option{-fschedule-insns2} or
 at @option{-O2} or higher.
 
 @opindex fspeculatively-call-stored-functions
+@opindex fno-speculatively-call-stored-functions
 @item -fspeculatively-call-stored-functions
 Attempt to convert indirect calls of function pointers to pointers
 loaded from a structure field if all visible stores to that field store
@@ -14337,33 +14460,39 @@ inlining.  When they seem useless after further 
optimization, they are
 converted back into original form.
 
 @opindex freschedule-modulo-scheduled-loops
+@opindex fno-reschedule-modulo-scheduled-loops
 @item -freschedule-modulo-scheduled-loops
 Modulo scheduling is performed before traditional scheduling.  If a loop
 is modulo scheduled, later scheduling passes may change its schedule.
 Use this option to control that behavior.
 
 @opindex fselective-scheduling
+@opindex fno-selective-scheduling
 @item -fselective-scheduling
 Schedule instructions using selective scheduling algorithm.  Selective
 scheduling runs instead of the first scheduler pass.
 
 @opindex fselective-scheduling2
+@opindex fno-selective-scheduling2
 @item -fselective-scheduling2
 Schedule instructions using selective scheduling algorithm.  Selective
 scheduling runs instead of the second scheduler pass.
 
 @opindex fsel-sched-pipelining
+@opindex fno-sel-sched-pipelining
 @item -fsel-sched-pipelining
 Enable software pipelining of innermost loops during selective scheduling.
 This option has no effect unless one of @option{-fselective-scheduling} or
 @option{-fselective-scheduling2} is turned on.
 
 @opindex fsel-sched-pipelining-outer-loops
+@opindex fno-sel-sched-pipelining-outer-loops
 @item -fsel-sched-pipelining-outer-loops
 When pipelining loops during selective scheduling, also pipeline outer loops.
 This option has no effect unless @option{-fsel-sched-pipelining} is turned on.
 
 @opindex fsemantic-interposition
+@opindex fno-semantic-interposition
 @item -fsemantic-interposition
 Some object formats, like ELF, allow interposing of symbols by the
 dynamic linker.
@@ -14382,12 +14511,14 @@ has no effect for functions explicitly declared inline
 and for symbols explicitly declared weak.
 
 @opindex fshrink-wrap
+@opindex fno-shrink-wrap
 @item -fshrink-wrap
 Emit function prologues only before parts of the function that need it,
 rather than at the top of the function.  This flag is enabled by default at
 @option{-O} and higher.
 
 @opindex fshrink-wrap-separate
+@opindex fno-shrink-wrap-separate
 @item -fshrink-wrap-separate
 Shrink-wrap separate parts of the prologue and epilogue separately, so that
 those parts are only executed when needed.
@@ -14395,6 +14526,7 @@ This option is on by default, but has no effect unless 
@option{-fshrink-wrap}
 is also turned on and the target supports this.
 
 @opindex fcaller-saves
+@opindex fno-caller-saves
 @item -fcaller-saves
 Enable allocation of values to registers that are clobbered by
 function calls, by emitting extra instructions to save and restore the
@@ -14407,6 +14539,7 @@ those which have no call-preserved registers to use 
instead.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fcombine-stack-adjustments
+@opindex fno-combine-stack-adjustments
 @item -fcombine-stack-adjustments
 Tracks stack adjustments (pushes and pops) and stack memory references
 and then tries to find ways to combine them.
@@ -14414,6 +14547,7 @@ and then tries to find ways to combine them.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fipa-ra
+@opindex fno-ipa-ra
 @item -fipa-ra
 Use caller save registers for allocation if those registers are not used by
 any called function.  In that case it is not necessary to save and restore
@@ -14427,6 +14561,7 @@ exactly (this happens on targets that do not expose 
prologues
 and epilogues in RTL).
 
 @opindex fconserve-stack
+@opindex fno-conserve-stack
 @item -fconserve-stack
 Attempt to minimize stack usage.  The compiler attempts to use less
 stack space, even if that makes the program slower.  This option
@@ -14434,11 +14569,13 @@ implies setting the @option{large-stack-frame} 
parameter to 100
 and the @option{large-stack-frame-growth} parameter to 400.
 
 @opindex ftree-reassoc
+@opindex fno-tree-reassoc
 @item -ftree-reassoc
 Perform reassociation on trees.  This flag is enabled by default
 at @option{-O1} and higher.
 
 @opindex fcode-hoisting
+@opindex fno-code-hoisting
 @item -fcode-hoisting
 Perform code hoisting.  Code hoisting tries to move the
 evaluation of expressions executed on all paths to the function exit
@@ -14447,21 +14584,25 @@ optimization, but it often helps for code speed as 
well.
 This flag is enabled by default at @option{-O2} and higher.
 
 @opindex ftree-pre
+@opindex fno-tree-pre
 @item -ftree-pre
 Perform partial redundancy elimination (PRE) on trees.  This flag is
 enabled by default at @option{-O2} and @option{-O3}.
 
 @opindex ftree-partial-pre
+@opindex fno-tree-partial-pre
 @item -ftree-partial-pre
 Make partial redundancy elimination (PRE) more aggressive.  This flag is
 enabled by default at @option{-O3}.
 
 @opindex ftree-forwprop
+@opindex fno-tree-forwprop
 @item -ftree-forwprop
 Perform forward propagation on trees.  This flag is enabled by default
 at @option{-O1} and higher.
 
 @opindex ftree-fre
+@opindex fno-tree-fre
 @item -ftree-fre
 Perform full redundancy elimination (FRE) on trees.  The difference
 between FRE and PRE is that FRE only considers expressions
@@ -14470,11 +14611,13 @@ This analysis is faster than PRE, though it exposes 
fewer redundancies.
 This flag is enabled by default at @option{-O1} and higher.
 
 @opindex ftree-phiprop
+@opindex fno-tree-phiprop
 @item -ftree-phiprop
 Perform hoisting of loads from conditional pointers on trees.  This
 pass is enabled by default at @option{-O1} and higher.
 
 @opindex fhoist-adjacent-loads
+@opindex fno-hoist-adjacent-loads
 @item -fhoist-adjacent-loads
 Speculatively hoist loads from both branches of an if-then-else if the
 loads are from adjacent locations in the same structure and the target
@@ -14482,28 +14625,33 @@ architecture has a conditional move instruction.  
This flag is enabled
 by default at @option{-O2} and higher.
 
 @opindex ftree-copy-prop
+@opindex fno-tree-copy-prop
 @item -ftree-copy-prop
 Perform copy propagation on trees.  This pass eliminates unnecessary
 copy operations.  This flag is enabled by default at @option{-O1} and
 higher.
 
 @opindex fipa-pure-const
+@opindex fno-ipa-pure-const
 @item -fipa-pure-const
 Discover which functions are pure or constant.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fipa-reference
+@opindex fno-ipa-reference
 @item -fipa-reference
 Discover which static variables do not escape the
 compilation unit.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fipa-reference-addressable
+@opindex fno-ipa-reference-addressable
 @item -fipa-reference-addressable
 Discover read-only, write-only and non-addressable static variables.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fipa-reorder-for-locality
+@opindex fno-ipa-reorder-for-locality
 @item -fipa-reorder-for-locality
 Group call chains close together in the binary layout to improve code
 locality and minimize jump distances between frequently called functions.
@@ -14519,11 +14667,13 @@ If using this option it is recommended to also use 
profile feedback, but this
 option is not enabled by default otherwise.
 
 @opindex fipa-stack-alignment
+@opindex fno-ipa-stack-alignment
 @item -fipa-stack-alignment
 Reduce stack alignment on call sites if possible.
 Enabled by default.
 
 @opindex fipa-pta
+@opindex fno-ipa-pta
 @item -fipa-pta
 Perform interprocedural pointer analysis and interprocedural modification
 and reference analysis.  This option can cause excessive memory and
@@ -14531,6 +14681,7 @@ compile-time usage on large compilation units.  It is 
not enabled by
 default at any optimization level.
 
 @opindex fipa-profile
+@opindex fno-ipa-profile
 @item -fipa-profile
 Perform interprocedural profile propagation.  The functions called only from
 cold functions are marked as cold. Also functions executed once (such as
@@ -14540,6 +14691,7 @@ then optimized for size.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fipa-modref
+@opindex fno-ipa-modref
 @item -fipa-modref
 Perform interprocedural mod/ref analysis.  This optimization analyzes the side
 effects of functions (memory locations that are modified or referenced) and
@@ -14547,6 +14699,7 @@ enables better optimization across the function call 
boundary.  This flag is
 enabled by default at @option{-O1} and higher.
 
 @opindex fipa-cp
+@opindex fno-ipa-cp
 @item -fipa-cp
 Perform interprocedural constant propagation.
 This optimization analyzes the program to determine when values passed
@@ -14557,6 +14710,7 @@ This flag is enabled by default at @option{-O2}, 
@option{-Os} and @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex fipa-cp-clone
+@opindex fno-ipa-cp-clone
 @item -fipa-cp-clone
 Perform function cloning to make interprocedural constant propagation stronger.
 When enabled, interprocedural constant propagation performs function cloning
@@ -14568,6 +14722,7 @@ This flag is enabled by default at @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex fipa-bit-cp
+@opindex fno-ipa-bit-cp
 @item -fipa-bit-cp
 When enabled, perform interprocedural bitwise constant
 propagation. This flag is enabled by default at @option{-O2} and
@@ -14575,6 +14730,7 @@ by @option{-fprofile-use} and @option{-fauto-profile}.
 It requires that @option{-fipa-cp} is enabled.
 
 @opindex fipa-vrp
+@opindex fno-ipa-vrp
 @item -fipa-vrp
 When enabled, perform interprocedural propagation of value
 ranges. This flag is enabled by default at @option{-O2}. It requires
@@ -14603,6 +14759,7 @@ equivalences that are found only by GCC and 
equivalences found only by Gold.
 @option{-fipa-icf} is enabled by default at @option{-O2} and @option{-Os}.
 
 @opindex flate-combine-instructions
+@opindex fno-late-combine-instructions
 @item -flate-combine-instructions
 Enable two instruction combination passes that run relatively late in the
 compilation process.  One of the passes runs before register allocation and
@@ -14673,6 +14830,7 @@ Note that @option{-flive-patching} is not supported 
with link-time optimization
 (@option{-flto}).
 
 @opindex fisolate-erroneous-paths-dereference
+@opindex fno-isolate-erroneous-paths-dereference
 @item -fisolate-erroneous-paths-dereference
 Detect paths that trigger erroneous or undefined behavior due to
 dereferencing a null pointer (with @option{-fdelete-null-pointer-checks}
@@ -14681,6 +14839,7 @@ flow and turn the statement with erroneous or undefined 
behavior into a
 trap.  This flag is enabled by default at @option{-O2} and higher.
 
 @opindex fisolate-erroneous-paths-attribute
+@opindex fno-isolate-erroneous-paths-attribute
 @item -fisolate-erroneous-paths-attribute
 Detect paths that trigger erroneous or undefined behavior due to a null value
 being used in a way forbidden by a @code{returns_nonnull} or @code{nonnull}
@@ -14689,11 +14848,13 @@ statement with erroneous or undefined behavior into a 
trap.  This is not
 currently enabled, but may be enabled by @option{-O2} in the future.
 
 @opindex ftree-sink
+@opindex fno-tree-sink
 @item -ftree-sink
 Perform forward store motion on trees.  This flag is
 enabled by default at @option{-O1} and higher.
 
 @opindex ftree-bit-ccp
+@opindex fno-tree-bit-ccp
 @item -ftree-bit-ccp
 Perform sparse conditional bit constant propagation on trees and propagate
 pointer alignment information.
@@ -14702,12 +14863,14 @@ at @option{-O1} and higher, except for @option{-Og}.
 It requires that @option{-ftree-ccp} is enabled.
 
 @opindex ftree-ccp
+@opindex fno-tree-ccp
 @item -ftree-ccp
 Perform sparse conditional constant propagation (CCP) on trees.  This
 pass only operates on local scalar variables and is enabled by default
 at @option{-O1} and higher.
 
 @opindex fssa-backprop
+@opindex fno-ssa-backprop
 @item -fssa-backprop
 Propagate information about uses of a value up the definition chain
 in order to simplify the definitions.  For example, this pass strips
@@ -14715,18 +14878,21 @@ sign operations if the sign of a value never matters. 
 The flag is
 enabled by default at @option{-O1} and higher.
 
 @opindex fssa-phiopt
+@opindex fno-ssa-phiopt
 @item -fssa-phiopt
 Perform pattern matching on SSA PHI nodes to optimize conditional
 code.  This pass is enabled by default at @option{-O1} and higher,
 except for @option{-Og}.
 
 @opindex ftree-switch-conversion
+@opindex fno-tree-switch-conversion
 @item -ftree-switch-conversion
 Perform conversion of simple initializations in a switch to
 initializations from a scalar array.  This flag is enabled by default
 at @option{-O2} and higher.
 
 @opindex ftree-tail-merge
+@opindex fno-tree-tail-merge
 @item -ftree-tail-merge
 Look for identical code sequences.  When found, replace one with a jump to the
 other.  This optimization is known as tail merging or cross jumping.  This flag
@@ -14736,17 +14902,20 @@ be limited using @option{max-tail-merge-comparisons} 
parameter and
 @option{max-tail-merge-iterations} parameter.
 
 @opindex ftree-cselim
+@opindex fno-tree-cselim
 @item -ftree-cselim
 Perform conditional store elimination on trees.  This flag is enabled by
 default at @option{-O1} and higher on targets that have conditional
 move instructions.
 
 @opindex ftree-dce
+@opindex fno-tree-dce
 @item -ftree-dce
 Perform dead code elimination (DCE) on trees.  This flag is enabled by
 default at @option{-O1} and higher.
 
 @opindex ftree-builtin-call-dce
+@opindex fno-tree-builtin-call-dce
 @item -ftree-builtin-call-dce
 Perform conditional dead code elimination (DCE) for calls to built-in functions
 that may set @code{errno} but are otherwise free of side effects.  This flag is
@@ -14764,6 +14933,7 @@ This option is enabled by default at @option{-O2} for 
C++ with -std=c++11
 or higher.
 
 @opindex ftree-dominator-opts
+@opindex fno-tree-dominator-opts
 @item -ftree-dominator-opts
 Perform a variety of simple scalar cleanups (constant/copy
 propagation, redundancy elimination, range propagation and expression
@@ -14772,6 +14942,7 @@ performs jump threading (to reduce jumps to jumps). 
This flag is
 enabled by default at @option{-O1} and higher.
 
 @opindex ftree-dse
+@opindex fno-tree-dse
 @item -ftree-dse
 Perform dead store elimination (DSE) on trees.  A dead store is a store into
 a memory location that is later overwritten by another store without
@@ -14779,6 +14950,7 @@ any intervening loads.  In this case the earlier store 
can be deleted.  This
 flag is enabled by default at @option{-O1} and higher.
 
 @opindex ftree-ch
+@opindex fno-tree-ch
 @item -ftree-ch
 Perform loop header copying on trees.  This is beneficial since it increases
 effectiveness of code motion optimizations.  It also saves one jump.  This flag
@@ -14786,13 +14958,17 @@ is enabled by default at @option{-O1} and higher.  It 
is not enabled
 for @option{-Os}, since it usually increases code size.
 
 @opindex ftree-loop-optimize
+@opindex fno-tree-loop-optimize
 @item -ftree-loop-optimize
 Perform loop optimizations on trees.  This flag is enabled by default
 at @option{-O1} and higher.
 
 @opindex ftree-loop-linear
+@opindex fno-tree-loop-linear
 @opindex floop-strip-mine
+@opindex fno-loop-strip-mine
 @opindex floop-block
+@opindex fno-loop-block
 @item -ftree-loop-linear
 @itemx -floop-strip-mine
 @itemx -floop-block
@@ -14802,6 +14978,7 @@ to be configured with @option{--with-isl} to enable the 
Graphite loop
 transformation infrastructure.
 
 @opindex fgraphite-identity
+@opindex fno-graphite-identity
 @item -fgraphite-identity
 Enable the identity transformation for graphite.  For every SCoP we generate
 the polyhedral representation and transform it back to gimple.  Using
@@ -14811,6 +14988,7 @@ are also performed by the code generator isl, like 
index splitting and
 dead code elimination in loops.
 
 @opindex floop-nest-optimize
+@opindex fno-loop-nest-optimize
 @item -floop-nest-optimize
 Enable the isl based loop nest optimizer.  This is a generic loop nest
 optimizer based on the Pluto optimization algorithms.  It calculates a loop
@@ -14818,6 +14996,7 @@ structure optimized for data-locality and parallelism.  
This option
 is experimental.
 
 @opindex floop-parallelize-all
+@opindex fno-loop-parallelize-all
 @item -floop-parallelize-all
 Use the Graphite data dependence analysis to identify loops that can
 be parallelized.  Parallelize all the loops that can be analyzed to
@@ -14825,6 +15004,7 @@ not contain loop carried dependences without checking 
that it is
 profitable to parallelize the loops.
 
 @opindex ftree-coalesce-vars
+@opindex fno-tree-coalesce-vars
 @item -ftree-coalesce-vars
 While transforming the program out of the SSA representation, attempt to
 reduce copying by coalescing versions of different user-defined
@@ -14835,6 +15015,7 @@ prevents SSA coalescing of user variables.  This option 
is enabled by
 default if optimization is enabled, and it does very little otherwise.
 
 @opindex ftree-loop-if-convert
+@opindex fno-tree-loop-if-convert
 @item -ftree-loop-if-convert
 Attempt to transform conditional jumps in the innermost loops to
 branch-less equivalents.  The intent is to remove control-flow from
@@ -14843,6 +15024,7 @@ vectorization pass to handle these loops.  This is 
enabled by default
 if vectorization is enabled.
 
 @opindex ftree-loop-distribution
+@opindex fno-tree-loop-distribution
 @item -ftree-loop-distribution
 Perform loop distribution.  This flag can improve cache performance on
 big loop bodies and allow further loop optimizations, like
@@ -14866,6 +15048,7 @@ This flag is enabled by default at @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex ftree-loop-distribute-patterns
+@opindex fno-tree-loop-distribute-patterns
 @item -ftree-loop-distribute-patterns
 Perform loop distribution of patterns that can be code generated with
 calls to a library.  This flag is enabled by default at @option{-O2} and
@@ -14891,6 +15074,7 @@ ENDDO
 and the initialization loop is transformed into a call to memset zero.
 
 @opindex floop-interchange
+@opindex fno-loop-interchange
 @item -floop-interchange
 Perform loop interchange outside of graphite.  This flag can improve cache
 performance on loop nest and allow further loop optimizations, like
@@ -14912,6 +15096,7 @@ This flag is enabled by default at @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex floop-unroll-and-jam
+@opindex fno-loop-unroll-and-jam
 @item -floop-unroll-and-jam
 Apply unroll and jam transformations on feasible loops.  In a loop
 nest this unrolls the outer loop by some factor and fuses the resulting
@@ -14919,6 +15104,7 @@ multiple inner loops.  This flag is enabled by default 
at @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex ftree-loop-im
+@opindex fno-tree-loop-im
 @item -ftree-loop-im
 Perform loop invariant motion on trees.  This pass moves only invariants that
 are hard to handle at RTL level (function calls, operations that expand to
@@ -14928,6 +15114,7 @@ just trivial invariantness analysis in loop 
unswitching.  The pass also includes
 store motion.
 
 @opindex ftree-loop-ivcanon
+@opindex fno-tree-loop-ivcanon
 @item -ftree-loop-ivcanon
 Create a canonical counter for number of iterations in loops for which
 determining number of iterations requires complicated analysis.  Later
@@ -14935,6 +15122,7 @@ optimizations then may determine the number easily.  
Useful especially
 in connection with unrolling.
 
 @opindex ftree-scev-cprop
+@opindex fno-tree-scev-cprop
 @item -ftree-scev-cprop
 Perform final value replacement.  If a variable is modified in a loop
 in such a way that its value when exiting the loop can be determined using
@@ -14944,12 +15132,14 @@ This reduces data dependencies and may allow further 
simplifications.
 Enabled by default at @option{-O1} and higher.
 
 @opindex fivopts
+@opindex fno-ivopts
 @item -fivopts
 Perform induction variable optimizations (strength reduction, induction
 variable merging and induction variable elimination) on trees.
 Enabled by default at @option{-O1} and higher.
 
 @opindex ftree-parallelize-loops
+@opindex fno-tree-parallelize-loops
 @item -ftree-parallelize-loops
 @itemx -ftree-parallelize-loops=@var{n}
 Parallelize loops, i.e., split their iteration space to run in multiple 
threads.
@@ -14972,11 +15162,13 @@ processors and uses that value. This enables creating 
binaries that
 adapt to different hardware configurations without recompilation.
 
 @opindex ftree-pta
+@opindex fno-tree-pta
 @item -ftree-pta
 Perform function-local points-to analysis on trees.  This flag is
 enabled by default at @option{-O1} and higher, except for @option{-Og}.
 
 @opindex ftree-sra
+@opindex fno-tree-sra
 @item -ftree-sra
 Perform scalar replacement of aggregates.  This pass replaces structure
 references with scalars to prevent committing structures to memory too
@@ -14984,6 +15176,7 @@ early.  This flag is enabled by default at @option{-O1} 
and higher,
 except for @option{-Og}.
 
 @opindex fstore-merging
+@opindex fno-store-merging
 @item -fstore-merging
 Perform merging of narrow stores to consecutive memory addresses.  This pass
 merges contiguous stores of immediate values narrower than a word into fewer
@@ -14991,6 +15184,7 @@ wider stores to reduce the number of instructions.  
This is enabled by default
 at @option{-O2} and higher as well as @option{-Os}.
 
 @opindex ftree-ter
+@opindex fno-tree-ter
 @item -ftree-ter
 Perform temporary expression replacement during the SSA->normal phase.  Single
 use/single def temporaries are replaced at their use location with their
@@ -14999,6 +15193,7 @@ much more complex trees to work on resulting in better 
RTL generation.  This is
 enabled by default at @option{-O1} and higher.
 
 @opindex ftree-slsr
+@opindex fno-tree-slsr
 @item -ftree-slsr
 Perform straight-line strength reduction on trees.  This recognizes related
 expressions involving multiplications and replaces them by less expensive
@@ -15006,17 +15201,20 @@ calculations when possible.  This is enabled by 
default at @option{-O1} and
 higher.
 
 @opindex ftree-vectorize
+@opindex fno-tree-vectorize
 @item -ftree-vectorize
 Perform vectorization on trees. This flag enables 
@option{-ftree-loop-vectorize}
 and @option{-ftree-slp-vectorize} if not explicitly specified.
 
 @opindex ftree-loop-vectorize
+@opindex fno-tree-loop-vectorize
 @item -ftree-loop-vectorize
 Perform loop vectorization on trees. This flag is enabled by default at
 @option{-O2} and by @option{-ftree-vectorize}, @option{-fprofile-use},
 and @option{-fauto-profile}.
 
 @opindex ftree-slp-vectorize
+@opindex fno-tree-slp-vectorize
 @item -ftree-slp-vectorize
 Perform basic block vectorization on trees. This flag is enabled by default at
 @option{-O2} and by @option{-ftree-vectorize}, @option{-fprofile-use},
@@ -15087,6 +15285,7 @@ attribute @code{uninitialized} standard attribute 
(@pxref{Variable Attributes})
 or the C++26 @code{[[indeterminate]]}.
 
 @opindex fvect-cost-model
+@opindex fno-vect-cost-model
 @item -fvect-cost-model=@var{model}
 Alter the cost model used for vectorization.  The @var{model} argument
 should be one of @samp{unlimited}, @samp{dynamic}, @samp{cheap} or
@@ -15115,6 +15314,7 @@ have the same meaning as described in 
@option{-fvect-cost-model} and by
 default a cost model defined with @option{-fvect-cost-model} is used.
 
 @opindex ftree-vrp
+@opindex fno-tree-vrp
 @item -ftree-vrp
 Perform Value Range Propagation on trees.  This is similar to the
 constant propagation pass, but instead of values, ranges of values are
@@ -15125,12 +15325,14 @@ elimination is only done if 
@option{-fdelete-null-pointer-checks} is
 enabled.
 
 @opindex fsplit-paths
+@opindex fno-split-paths
 @item -fsplit-paths
 Split paths leading to loop backedges.  This can improve dead code
 elimination and common subexpression elimination.  This is enabled by
 default at @option{-O3} and above.
 
 @opindex fsplit-ivs-in-unroller
+@opindex fno-split-ivs-in-unroller
 @item -fsplit-ivs-in-unroller
 Enables expression of values of induction variables in later iterations
 of the unrolled loop using the value in the first iteration.  This breaks
@@ -15144,6 +15346,7 @@ on some architectures due to restrictions in the CSE 
pass.
 This optimization is enabled by default.
 
 @opindex fvariable-expansion-in-unroller
+@opindex fno-variable-expansion-in-unroller
 @item -fvariable-expansion-in-unroller
 With this option, the compiler creates multiple copies of some
 local variables when unrolling a loop, which can result in superior code.
@@ -15152,6 +15355,7 @@ This optimization is enabled by default for PowerPC 
targets, but disabled
 by default otherwise.
 
 @opindex fpartial-inlining
+@opindex fno-partial-inlining
 @item -fpartial-inlining
 Inline parts of functions.  This option has any effect only
 when inlining itself is turned on by the @option{-finline-functions}
@@ -15160,6 +15364,7 @@ or @option{-finline-small-functions} options.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fpredictive-commoning
+@opindex fno-predictive-commoning
 @item -fpredictive-commoning
 Perform predictive commoning optimization, i.e., reusing computations
 (especially memory loads and stores) performed in previous
@@ -15169,6 +15374,7 @@ This option is enabled at level @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex fprefetch-loop-arrays
+@opindex fno-prefetch-loop-arrays
 @item -fprefetch-loop-arrays
 If supported by the target machine, generate instructions to prefetch
 memory to improve the performance of loops that access large arrays.
@@ -15240,6 +15446,7 @@ The default is @option{-fguess-branch-probability} at 
levels
 @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex freorder-blocks
+@opindex fno-reorder-blocks
 @item -freorder-blocks
 Reorder basic blocks in the compiled function in order to reduce number of
 taken branches and improve code locality.
@@ -15247,6 +15454,7 @@ taken branches and improve code locality.
 Enabled at levels @option{-O1}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex freorder-blocks-algorithm
+@opindex fno-reorder-blocks-algorithm
 @item -freorder-blocks-algorithm=@var{algorithm}
 Use the specified algorithm for basic block reordering.  The
 @var{algorithm} argument can be @samp{simple}, which does not increase
@@ -15259,6 +15467,7 @@ The default is @samp{simple} at levels @option{-O1}, 
@option{-Os}, and
 @samp{stc} at levels @option{-O2}, @option{-O3}.
 
 @opindex freorder-blocks-and-partition
+@opindex fno-reorder-blocks-and-partition
 @item -freorder-blocks-and-partition
 In addition to reordering basic blocks in the compiled function, in order
 to reduce number of taken branches, partitions hot and cold basic blocks
@@ -15275,6 +15484,7 @@ explicitly (if using a working linker).
 Enabled for x86 at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex freorder-functions
+@opindex fno-reorder-functions
 @item -freorder-functions
 Reorder functions in the object file in order to
 improve code locality.  Unlike @option{-fipa-reorder-for-locality} this option
@@ -15292,6 +15502,7 @@ This option isn't effective unless you either provide 
profile feedback
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fstrict-aliasing
+@opindex fno-strict-aliasing
 @item -fstrict-aliasing
 Allow the compiler to assume the strictest aliasing rules applicable to
 the language being compiled.  For C (and C++), this activates
@@ -15348,6 +15559,7 @@ The @option{-fstrict-aliasing} option is enabled at 
levels
 @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fipa-strict-aliasing
+@opindex fno-ipa-strict-aliasing
 @item -fipa-strict-aliasing
 Controls whether rules of @option{-fstrict-aliasing} are applied across
 function boundaries.  Note that if multiple functions gets inlined into a
@@ -15358,6 +15570,7 @@ The @option{-fipa-strict-aliasing} option is enabled by 
default and is
 effective only in combination with @option{-fstrict-aliasing}.
 
 @opindex falign-functions
+@opindex fno-align-functions
 @item -falign-functions
 @itemx -falign-functions=@var{n}
 @itemx -falign-functions=@var{n}:@var{m}
@@ -15406,6 +15619,7 @@ by the amount specified by @option{-falign-functions}, 
but not to
 skip more bytes than the size of the function.
 
 @opindex falign-labels
+@opindex fno-align-labels
 @item -falign-labels
 @itemx -falign-labels=@var{n}
 @itemx -falign-labels=@var{n}:@var{m}
@@ -15427,6 +15641,7 @@ The maximum allowed @var{n} option value is 65536.
 Enabled at levels @option{-O2}, @option{-O3}.
 
 @opindex falign-loops
+@opindex fno-align-loops
 @item -falign-loops
 @itemx -falign-loops=@var{n}
 @itemx -falign-loops=@var{n}:@var{m}
@@ -15451,6 +15666,7 @@ If @var{n} is not specified or is zero, use a 
machine-dependent default.
 Enabled at levels @option{-O2}, @option{-O3}.
 
 @opindex falign-jumps
+@opindex fno-align-jumps
 @item -falign-jumps
 @itemx -falign-jumps=@var{n}
 @itemx -falign-jumps=@var{n}:@var{m}
@@ -15491,6 +15707,7 @@ in dead code elimination.
 See also @option{-fmalloc-dce}.
 
 @opindex fallow-store-data-races
+@opindex fno-allow-store-data-races
 @item -fallow-store-data-races
 Allow the compiler to perform optimizations that may introduce new data races
 on stores, without proving that the variable cannot be concurrently accessed
@@ -15508,6 +15725,7 @@ vectorization.
 Enabled at level @option{-Ofast}.
 
 @opindex funit-at-a-time
+@opindex fno-unit-at-a-time
 @item -funit-at-a-time
 This option is left for compatibility reasons. @option{-funit-at-a-time}
 has no effect, while @option{-fno-unit-at-a-time} implies
@@ -15531,6 +15749,7 @@ Additionally @option{-fno-toplevel-reorder} implies
 @option{-fno-section-anchors}.
 
 @opindex funreachable-traps
+@opindex fno-unreachable-traps
 @item -funreachable-traps
 With this option, the compiler turns calls to
 @code{__builtin_unreachable} into traps, instead of using them for
@@ -15545,6 +15764,7 @@ takes priority over this one.
 This option is enabled by default at @option{-O0} and @option{-Og}.
 
 @opindex fweb
+@opindex fno-web
 @item -fweb
 Constructs webs as commonly used for register allocation purposes and assign
 each web individual pseudo register.  This allows the register allocation pass
@@ -15556,6 +15776,7 @@ however, make debugging impossible, since variables no 
longer stay in a
 Enabled by default with @option{-funroll-loops}.
 
 @opindex fwhole-program
+@opindex fno-whole-program
 @item -fwhole-program
 Assume that the current compilation unit represents the whole program being
 compiled.  All public functions and variables with the exception of @code{main}
@@ -15570,6 +15791,7 @@ final code is produced (with @option{-flto}
 @option{-flinker-output=nolto-rel}).
 
 @opindex flto
+@opindex fno-lto
 @item -flto[=@var{n}]
 This option runs the standard link-time optimizer.  When invoked
 with source code, it generates GIMPLE (one of GCC's internal
@@ -15800,6 +16022,7 @@ or otherwise fall back to autodetection of the number 
of CPU threads
 present in your system.
 
 @opindex flto-partition
+@opindex fno-lto-partition
 @item -flto-partition=@var{alg}
 Specify the partitioning algorithm used by the link-time optimizer.
 The value is either @samp{1to1} to specify a partitioning mirroring
@@ -15817,6 +16040,7 @@ used while the value @samp{none} bypasses partitioning 
and executes
 the link-time optimization step directly from the WPA phase.
 
 @opindex flto-incremental
+@opindex fno-lto-incremental
 @item -flto-incremental=@var{path}
 Enable incremental LTO, with its cache in given existing directory.
 Can significantly shorten edit-compile cycles with LTO.
@@ -15829,6 +16053,7 @@ recompile time reduction.
 Multiple GCC instances can use the same cache in parallel.
 
 @opindex flto-incremental-cache-size
+@opindex fno-lto-incremental-cache-size
 @item -flto-incremental-cache-size=@var{n}
 Specifies number of cache entries in incremental LTO after which to prune
 old entries. This is a soft limit, temporarily there may be more entries.
@@ -15870,6 +16095,7 @@ and GCC was configured for use with
 a linker supporting plugins (GNU ld 2.21 or newer or gold).
 
 @opindex ffat-lto-objects
+@opindex fno-fat-lto-objects
 @item -ffat-lto-objects
 Fat LTO objects are object files that contain both the intermediate language
 and the object code. This makes them usable for both LTO linking and normal
@@ -15894,6 +16120,7 @@ The default is @option{-fno-fat-lto-objects} on targets 
with linker plugin
 support.
 
 @opindex fcompare-elim
+@opindex fno-compare-elim
 @item -fcompare-elim
 After register allocation and post-register allocation instruction splitting,
 identify arithmetic instructions that compute processor flags similar to a
@@ -15906,6 +16133,7 @@ the comparison operation before register allocation is 
complete.
 Enabled at levels @option{-O1}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex ffold-mem-offsets
+@opindex fno-fold-mem-offsets
 @item -ffold-mem-offsets
 @itemx -fno-fold-mem-offsets
 Try to eliminate add instructions by folding them in memory loads/stores.
@@ -15913,6 +16141,7 @@ Try to eliminate add instructions by folding them in 
memory loads/stores.
 Enabled at levels @option{-O2}, @option{-O3}.
 
 @opindex fcprop-registers
+@opindex fno-cprop-registers
 @item -fcprop-registers
 After register allocation and post-register allocation instruction splitting,
 perform a copy-propagation pass to try to reduce scheduling dependencies
@@ -15921,6 +16150,7 @@ and occasionally eliminate the copy.
 Enabled at levels @option{-O1}, @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fprofile-correction
+@opindex fno-profile-correction
 @item -fprofile-correction
 Profiles collected using an instrumented binary for multi-threaded programs may
 be inconsistent due to missed counter updates. When this option is specified,
@@ -15930,6 +16160,7 @@ default, GCC emits an error message when an 
inconsistent profile is detected.
 This option is enabled by @option{-fauto-profile}.
 
 @opindex fprofile-partial-training
+@opindex fno-profile-partial-training
 @item -fprofile-partial-training
 With @code{-fprofile-use} all portions of programs not executed during
 training runs are optimized aggressively for size rather than speed.
@@ -15943,6 +16174,7 @@ without profile feedback. This leads to better 
performance when the
 training is not representative at the cost of significantly bigger code.
 
 @opindex fprofile-use
+@opindex fno-profile-use
 @item -fprofile-use
 @itemx -fprofile-use=@var{path}
 Enable profile feedback-directed optimizations,
@@ -15971,6 +16203,7 @@ If @var{path} is specified, GCC looks at the @var{path} 
to find
 the profile feedback data files. See @option{-fprofile-dir}.
 
 @opindex fauto-profile
+@opindex fno-auto-profile
 @item -fauto-profile
 @itemx -fauto-profile=@var{path}
 Enable sampling-based feedback-directed optimizations,
@@ -16010,6 +16243,7 @@ create_gcov --binary=your_program.unstripped 
--profile=perf.data \
 @end smallexample
 
 @opindex fauto-profile-inlining
+@opindex fno-auto-profile-inlining
 @item -fauto-profile-inlining
 When auto-profile is available inline all relevant functions which was
 inlined in the tran run before reading the profile feedback.  This improves
@@ -16057,6 +16291,7 @@ semantics apply without excess precision, and in the 
latter, rounding
 is unpredictable.
 
 @opindex ffloat-store
+@opindex fno-float-store
 @item -ffloat-store
 Do not store floating-point variables in registers, and inhibit other
 options that might change whether a floating-point value is taken from a
@@ -16069,6 +16304,7 @@ only on assignments and not casts as 
@option{-fexcess-precision=standard}
 does.
 
 @opindex ffast-math
+@opindex fno-fast-math
 @item -ffast-math
 Sets the options @option{-fno-math-errno}, 
@option{-funsafe-math-optimizations},
 @option{-ffinite-math-only}, @option{-fno-rounding-math},
@@ -16105,6 +16341,7 @@ therefore no reason for the compiler to consider the 
possibility that
 it might, and @option{-fno-math-errno} is the default.
 
 @opindex funsafe-math-optimizations
+@opindex fno-unsafe-math-optimizations
 @item -funsafe-math-optimizations
 
 Allow optimizations for floating-point arithmetic that (a) assume
@@ -16125,6 +16362,7 @@ Enables @option{-fno-signed-zeros}, 
@option{-fno-trapping-math},
 The default is @option{-fno-unsafe-math-optimizations}.
 
 @opindex fassociative-math
+@opindex fno-associative-math
 @item -fassociative-math
 
 Allow re-association of operands in series of floating-point operations.
@@ -16143,6 +16381,7 @@ is automatically enabled when both 
@option{-fno-signed-zeros} and
 The default is @option{-fno-associative-math}.
 
 @opindex freciprocal-math
+@opindex fno-reciprocal-math
 @item -freciprocal-math
 
 Allow the reciprocal of a value to be used instead of dividing by
@@ -16154,6 +16393,7 @@ precision and increases the number of flops operating 
on the value.
 The default is @option{-fno-reciprocal-math}.
 
 @opindex ffinite-math-only
+@opindex fno-finite-math-only
 @item -ffinite-math-only
 Allow optimizations for floating-point arithmetic that assume
 that arguments and results are not NaNs or +-Infs.
@@ -16200,6 +16440,7 @@ will be used along with @option{-frounding-math} to 
specify the
 default state for @code{FENV_ACCESS}.
 
 @opindex frounding-math
+@opindex fno-rounding-math
 @item -frounding-math
 Disable transformations and optimizations that assume default floating-point
 rounding behavior (round-to-nearest).
@@ -16220,6 +16461,7 @@ will be used along with @option{-ftrapping-math} to 
specify the
 default state for @code{FENV_ACCESS}.
 
 @opindex fsignaling-nans
+@opindex fno-signaling-nans
 @item -fsignaling-nans
 Compile code assuming that IEEE signaling NaNs may generate user-visible
 traps during floating-point operations.  Setting this option disables
@@ -16235,11 +16477,13 @@ This option is experimental and does not currently 
guarantee to
 disable all GCC optimizations that affect signaling NaN behavior.
 
 @opindex fsingle-precision-constant
+@opindex fno-single-precision-constant
 @item -fsingle-precision-constant
 Treat floating-point constants as single precision instead of
 implicitly converting them to double-precision constants.
 
 @opindex fcx-limited-range
+@opindex fno-cx-limited-range
 @item -fcx-limited-range
 When enabled, this option states that a range reduction step is not
 needed when performing complex division.  Also, there is no checking
@@ -16252,6 +16496,7 @@ This option controls the default setting of the ISO C99
 all languages.
 
 @opindex fcx-fortran-rules
+@opindex fno-cx-fortran-rules
 @item -fcx-fortran-rules
 Complex multiplication and division follow Fortran rules.  Range
 reduction is done as part of complex division, but there is no checking
@@ -16275,6 +16520,7 @@ section includes experimental options that may produce 
broken code.
 
 @table @gcctabopt
 @opindex fbranch-probabilities
+@opindex fno-branch-probabilities
 @item -fbranch-probabilities
 After running a program compiled with @option{-fprofile-arcs}
 (@pxref{Instrumentation Options}),
@@ -16298,6 +16544,7 @@ exactly determine which path is taken more often.
 Enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex fprofile-values
+@opindex fno-profile-values
 @item -fprofile-values
 If combined with @option{-fprofile-arcs}, it adds code so that some
 data about values of expressions in the program is gathered.
@@ -16309,6 +16556,7 @@ Enabled by @option{-fprofile-generate}, 
@option{-fprofile-use}, and
 @option{-fauto-profile}.
 
 @opindex fprofile-reorder-functions
+@opindex fno-profile-reorder-functions
 @item -fprofile-reorder-functions
 Function reordering based on profile instrumentation collects
 first time of execution of a function and orders these functions
@@ -16318,6 +16566,7 @@ efficient loading of text segments.
 Enabled with @option{-fprofile-use}.
 
 @opindex fvpt
+@opindex fno-vpt
 @item -fvpt
 If combined with @option{-fprofile-arcs}, this option instructs the compiler
 to add code to gather information about values of expressions.
@@ -16330,6 +16579,7 @@ using the knowledge about the value of the denominator.
 Enabled with @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex frename-registers
+@opindex fno-rename-registers
 @item -frename-registers
 Attempt to avoid false dependencies in scheduled code by making use
 of registers left over after register allocation.  This optimization
@@ -16341,6 +16591,7 @@ a ``home register''.
 Enabled by default with @option{-funroll-loops}.
 
 @opindex fschedule-fusion
+@opindex fno-schedule-fusion
 @item -fschedule-fusion
 Performs a target dependent pass over the instruction stream to schedule
 instructions of same type together because target machine can execute them
@@ -16349,6 +16600,7 @@ more efficiently if they are adjacent to each other in 
the instruction flow.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex fdep-fusion
+@opindex fno-dep-fusion
 @item -fdep-fusion
 Detect macro-op fusible pairs consisting of single-use instructions and their
 uses, and place such pairs together in the instruction stream to increase
@@ -16358,6 +16610,7 @@ allocation, and another time before register renaming.
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
 @opindex ftracer
+@opindex fno-tracer
 @item -ftracer
 Perform tail duplication to enlarge superblock size.  This transformation
 simplifies the control flow of the function allowing other optimizations to do
@@ -16366,6 +16619,7 @@ a better job.
 Enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex funroll-loops
+@opindex fno-unroll-loops
 @item -funroll-loops
 Unroll loops whose number of iterations can be determined at compile time or
 upon entry to the loop.  @option{-funroll-loops} implies
@@ -16377,6 +16631,7 @@ or may not make it run faster.
 Enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex funroll-all-loops
+@opindex fno-unroll-all-loops
 @item -funroll-all-loops
 Unroll all loops, even if their number of iterations is uncertain when
 the loop is entered.  This usually makes programs run more slowly.
@@ -16384,6 +16639,7 @@ the loop is entered.  This usually makes programs run 
more slowly.
 @option{-funroll-loops}.
 
 @opindex fpeel-loops
+@opindex fno-peel-loops
 @item -fpeel-loops
 Peels loops for which there is enough information that they do not
 roll much (from profile feedback or static analysis).  It also turns on
@@ -16405,11 +16661,13 @@ considered safe to remove.
 The default is @option{-fmalloc-dce=2}.  See also @option{-fallocation-dce}.
 
 @opindex fmove-loop-invariants
+@opindex fno-move-loop-invariants
 @item -fmove-loop-invariants
 Enables the loop invariant motion pass in the RTL loop optimizer.  Enabled
 at level @option{-O1} and higher, except for @option{-Og}.
 
 @opindex fmove-loop-stores
+@opindex fno-move-loop-stores
 @item -fmove-loop-stores
 Enables the loop store motion pass in the GIMPLE loop optimizer.  This
 moves invariant stores to after the end of the loop in exchange for
@@ -16419,6 +16677,7 @@ be enabled as well.  Enabled at level @option{-O1} and 
higher, except
 for @option{-Og}.
 
 @opindex fsplit-loops
+@opindex fno-split-loops
 @item -fsplit-loops
 Split a loop into two if it contains a condition that's always true
 for one side of the iteration space and false for the other.
@@ -16426,6 +16685,7 @@ for one side of the iteration space and false for the 
other.
 Enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex funswitch-loops
+@opindex fno-unswitch-loops
 @item -funswitch-loops
 Move branches with loop invariant conditions out of the loop, with duplicates
 of the loop on both branches (modified according to result of the condition).
@@ -16433,6 +16693,7 @@ of the loop on both branches (modified according to 
result of the condition).
 Enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex fversion-loops-for-strides
+@opindex fno-version-loops-for-strides
 @item -fversion-loops-for-strides
 If a loop iterates over an array with a variable stride, create another
 version of the loop that assumes the stride is always one.  For example:
@@ -16459,7 +16720,9 @@ This flag is enabled by default at @option{-O3}.
 It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}.
 
 @opindex ffunction-sections
+@opindex fno-function-sections
 @opindex fdata-sections
+@opindex fno-data-sections
 @item -ffunction-sections
 @itemx -fdata-sections
 Place each function or data item into its own section in the output
@@ -16489,11 +16752,13 @@ link time.  An example of such an optimization is 
relaxing calls to short call
 instructions.
 
 @opindex fstdarg-opt
+@opindex fno-stdarg-opt
 @item -fstdarg-opt
 Optimize the prologue of variadic argument functions with respect to usage of
 those arguments.
 
 @opindex fsection-anchors
+@opindex fno-section-anchors
 @item -fsection-anchors
 Try to reduce the number of symbolic address calculations by using
 shared ``anchor'' symbols to address nearby objects.  This transformation
@@ -18275,6 +18540,7 @@ program analysis purposes.
 @opindex p
 @opindex profile
 @opindex fprofile
+@opindex fno-profile
 @opindex pg
 @item -p
 @itemx --profile
@@ -18293,6 +18559,7 @@ suppress profiling of individual functions when 
compiling with these options.
 @xref{Common Function Attributes}.
 
 @opindex fprofile-arcs
+@opindex fno-profile-arcs
 @item -fprofile-arcs
 Add code so that program flow @dfn{arcs} are instrumented.  During
 execution the program records how many times each branch and call is
@@ -18319,6 +18586,7 @@ E.g. @code{gcc a.c b.c -o binary} would generate 
@file{binary-a.gcda} and
 
 @item -fcondition-coverage
 @opindex fcondition-coverage
+@opindex fno-condition-coverage
 Add code so that program conditions are instrumented.  During execution the
 program records what terms in a conditional contributes to a decision, which
 can be used to verify that all terms in a Boolean function are tested and have
@@ -18327,6 +18595,7 @@ with @code{gcov --conditions}.
 
 @item -fpath-coverage
 @opindex fpath-coverage
+@opindex fno-path-coverage
 Add code so that the paths taken are tracked.  During execution the
 program records the prime paths taken.  The number of paths grows very
 fast with complexity, and to avoid exploding compile times GCC will give
@@ -18424,6 +18693,7 @@ not a subpath of any other path.
 
 @need 2000
 @opindex ftest-coverage
+@opindex fno-test-coverage
 @item -ftest-coverage
 Produce a notes file that the @command{gcov} code-coverage utility
 (@pxref{Gcov,, @command{gcov}---a Test Coverage Program}) can use to
@@ -18434,6 +18704,7 @@ generate test coverage data.  Coverage data matches the 
source files
 more closely if you do not optimize.
 
 @opindex fprofile-abs-path
+@opindex fno-profile-abs-path
 @item -fprofile-abs-path
 Automatically convert relative source file names to absolute path names
 in the @file{.gcno} files.  This allows @command{gcov} to find the correct
@@ -18471,6 +18742,7 @@ value of environment variable @var{VAR}
 @end table
 
 @opindex fprofile-generate
+@opindex fno-profile-generate
 @item -fprofile-generate
 @itemx -fprofile-generate=@var{path}
 
@@ -19086,6 +19358,7 @@ 
undefined,float-cast-overflow,float-divide-by-zero,bounds-strict
 @end smallexample
 
 @opindex fsanitize-address-use-after-scope
+@opindex fno-sanitize-address-use-after-scope
 @item -fsanitize-address-use-after-scope
 Enable sanitization of local variables to detect use-after-scope bugs.
 The option sets @option{-fstack-reuse} to @samp{none}.
@@ -19118,16 +19391,19 @@ instrumentation is silently ignored as the 
instrumentation always needs
 @code{libubsan} support, @option{-fsanitize-trap=vptr} is not allowed.
 
 @opindex fsanitize-undefined-trap-on-error
+@opindex fno-sanitize-undefined-trap-on-error
 @item -fsanitize-undefined-trap-on-error
 The @option{-fsanitize-undefined-trap-on-error} option is deprecated
 equivalent of @option{-fsanitize-trap=all}.
 
 @opindex fsanitize-coverage=trace-pc
+@opindex fno-sanitize-coverage=trace-pc
 @item -fsanitize-coverage=trace-pc
 Enable coverage-guided fuzzing code instrumentation.
 Inserts a call to @code{__sanitizer_cov_trace_pc} into every basic block.
 
 @opindex fsanitize-coverage=trace-cmp
+@opindex fno-sanitize-coverage=trace-cmp
 @item -fsanitize-coverage=trace-cmp
 Enable dataflow guided fuzzing code instrumentation.
 Inserts a call to @code{__sanitizer_cov_trace_cmp1},
@@ -19190,6 +19466,7 @@ on Intel Control-flow Enforcement Technology (CET) 
which works for
 i686 processor or newer.
 
 @opindex fharden-compares
+@opindex fno-harden-compares
 @item -fharden-compares
 For every logical test that survives gimple optimizations and is
 @emph{not} the condition in a conditional branch (for example,
@@ -19200,6 +19477,7 @@ match.  Use with @samp{-fharden-conditional-branches} 
to cover all
 conditionals.
 
 @opindex fharden-conditional-branches
+@opindex fno-harden-conditional-branches
 @item -fharden-conditional-branches
 For every non-vectorized conditional branch that survives gimple
 optimizations, emit extra code to compute and verify the reversed
@@ -19208,6 +19486,7 @@ unexpected.  Use with @samp{-fharden-compares} to cover 
all
 conditionals.
 
 @opindex fharden-control-flow-redundancy
+@opindex fno-harden-control-flow-redundancy
 @item -fharden-control-flow-redundancy
 Emit extra code to set booleans when entering basic blocks, and to
 verify and trap, at function exits, when the booleans do not form an
@@ -19229,6 +19508,7 @@ possibilities are merely theoretical, as these 
conditions can only be
 met when using custom compiler plugins.
 
 @opindex fhardcfr-skip-leaf
+@opindex fno-hardcfr-skip-leaf
 @item -fhardcfr-skip-leaf
 Disable @option{-fharden-control-flow-redundancy} in leaf functions.
 
@@ -19288,6 +19568,7 @@ from the @code{noreturn} treatment only internal 
functions used to
 (re)raise exceptions, that are not affected by these optimizations.
 
 @opindex fhardened
+@opindex fno-hardened
 @item -fhardened
 Enable a set of flags for C and C++ that improve the security of the
 generated code without affecting its ABI.  The precise flags enabled
@@ -19321,6 +19602,7 @@ already specified anywhere on the command line.  For 
instance,
 @option{-fstack-protector}, but not @option{-fstack-protector-strong}.
 
 @opindex fstack-protector
+@opindex fno-stack-protector
 @item -fstack-protector
 Emit extra code to check for buffer overflows, such as stack smashing
 attacks.  This is done by adding a guard variable to functions with
@@ -19350,6 +19632,7 @@ Like @option{-fstack-protector} but only protects those 
functions which
 have the @code{stack_protect} attribute.
 
 @opindex fstack-check
+@opindex fno-stack-check
 @item -fstack-check
 Generate code to verify that you do not go beyond the boundary of the
 stack.  You should specify this flag if you are running in an
@@ -19394,6 +19677,7 @@ Ada code.  It is not generally sufficient to protect 
against stack-clash
 attacks.  To protect against those you want @samp{-fstack-clash-protection}.
 
 @opindex fstack-clash-protection
+@opindex fno-stack-clash-protection
 @item -fstack-clash-protection
 Generate code to prevent stack clash style attacks.  When this option is
 enabled, the compiler will only allocate one page of stack space at a time
@@ -19429,6 +19713,7 @@ You can locally override stack limit checking by using 
the
 @code{no_stack_limit} function attribute (@pxref{Function Attributes}).
 
 @opindex fsplit-stack
+@opindex fno-split-stack
 @item -fsplit-stack
 Generate code to automatically split the stack before it overflows.
 The resulting program has a discontiguous stack which can only
@@ -19522,6 +19807,7 @@ values specified, @samp{none} takes highest priority 
over both @samp{std} and
 @samp{preinit}; @samp{preinit} takes priority over @samp{std}.
 
 @opindex fvtv-debug
+@opindex fno-vtv-debug
 @item -fvtv-debug
 When used in conjunction with @option{-fvtable-verify=std} or
 @option{-fvtable-verify=preinit}, causes debug versions of the
@@ -19536,6 +19822,7 @@ Note:  This feature @emph{appends} data to the log 
file. If you want a fresh log
 file, be sure to delete any existing one.
 
 @opindex fvtv-counts
+@opindex fno-vtv-counts
 @item -fvtv-counts
 This is a debugging flag.  When used in conjunction with
 @option{-fvtable-verify=std} or @option{-fvtable-verify=preinit}, this
@@ -19554,6 +19841,7 @@ Note:  This feature @emph{appends} data to the log 
files.  To get fresh log
 files, be sure to delete any existing ones.
 
 @opindex finstrument-functions
+@opindex fno-instrument-functions
 @item -finstrument-functions
 Generate instrumentation calls for entry and exit to functions.  Just
 after function entry and just before function exit, the following
@@ -19593,6 +19881,7 @@ routines generate output or allocate memory).
 @xref{Common Function Attributes}.
 
 @opindex finstrument-functions-once
+@opindex fno-instrument-functions-once
 @item -finstrument-functions-once
 This is similar to @option{-finstrument-functions}, but the profiling
 functions are called only once per instrumented function, i.e. the first
@@ -19799,6 +20088,7 @@ object file names should not be used as arguments.  
@xref{Overall
 Options}.
 
 @opindex flink-libatomic
+@opindex fno-link-libatomic
 @item -flink-libatomic
 Enable linking of libatomic if it's supported by target, and is enabled by
 default. The negative form @option{-fno-link-libatomic} can be used to
@@ -19852,22 +20142,27 @@ To maintain whole-program optimization, link such 
objects into a static
 library instead.
 
 @opindex fuse-ld=bfd
+@opindex fno-use-ld=bfd
 @item -fuse-ld=bfd
 Use the @command{bfd} linker instead of the default linker.
 
 @opindex fuse-ld=gold
+@opindex fno-use-ld=gold
 @item -fuse-ld=gold
 Use the @command{gold} linker instead of the default linker.
 
 @opindex fuse-ld=lld
+@opindex fno-use-ld=lld
 @item -fuse-ld=lld
 Use the LLVM @command{lld} linker instead of the default linker.
 
 @opindex fuse-ld=mold
+@opindex fno-use-ld=mold
 @item -fuse-ld=mold
 Use the Modern Linker (@command{mold}) instead of the default linker.
 
 @opindex fuse-ld=wild
+@opindex fno-use-ld=wild
 @item -fuse-ld=wild
 Use the Wild linker (@command{wild}) instead of the default linker.
 
@@ -20490,6 +20785,7 @@ not reused, the aggressive stack reuse can lead to 
runtime errors. This
 option is used to control the temporary stack reuse optimization.
 
 @opindex ftrapv
+@opindex fno-trapv
 @item -ftrapv
 This option generates traps for signed overflow on addition, subtraction,
 multiplication operations.
@@ -20500,6 +20796,7 @@ using @option{-ftrapv} @option{-fwrapv} 
@option{-fno-wrapv} on the command-line
 results in @option{-ftrapv} being effective.
 
 @opindex fwrapv
+@opindex fno-wrapv
 @item -fwrapv
 This option instructs the compiler to assume that signed arithmetic
 overflow of addition, subtraction and multiplication wraps around
@@ -20512,6 +20809,7 @@ using @option{-ftrapv} @option{-fwrapv} 
@option{-fno-wrapv} on the command-line
 results in @option{-ftrapv} being effective.
 
 @opindex fwrapv-pointer
+@opindex fno-wrapv-pointer
 @item -fwrapv-pointer
 This option instructs the compiler to assume that pointer arithmetic
 overflow on addition and subtraction wraps around using twos-complement
@@ -20519,11 +20817,13 @@ representation.  This flag disables some 
optimizations which assume
 pointer overflow is invalid.
 
 @opindex fstrict-overflow
+@opindex fno-strict-overflow
 @item -fstrict-overflow
 This option implies @option{-fno-wrapv} @option{-fno-wrapv-pointer} and when
 negated implies @option{-fwrapv} @option{-fwrapv-pointer}.
 
 @opindex fexceptions
+@opindex fno-exceptions
 @item -fexceptions
 Enable exception handling.  Generates extra code needed to propagate
 exceptions.  For some targets, this implies GCC generates frame
@@ -20538,6 +20838,7 @@ disable this option if you are compiling older C++ 
programs that don't
 use exception handling.
 
 @opindex fnon-call-exceptions
+@opindex fno-non-call-exceptions
 @item -fnon-call-exceptions
 Generate code that allows trapping instructions to throw exceptions.
 Note that this requires platform-specific runtime support that does
@@ -20548,6 +20849,7 @@ arbitrary signal handlers such as @code{SIGALRM}.  This 
enables
 @option{-fexceptions}.
 
 @opindex fdelete-dead-exceptions
+@opindex fno-delete-dead-exceptions
 @item -fdelete-dead-exceptions
 Consider that instructions that may throw exceptions but don't otherwise
 contribute to the execution of the program can be optimized away.
@@ -20558,6 +20860,7 @@ the language specifications.
 Optimization passes that cause dead exceptions to be removed are enabled 
independently at different optimization levels.
 
 @opindex funwind-tables
+@opindex fno-unwind-tables
 @item -funwind-tables
 Similar to @option{-fexceptions}, except that it just generates any needed
 static data, but does not affect the generated code in any other way.
@@ -20565,6 +20868,7 @@ You normally do not need to enable this option; 
instead, a language processor
 that needs this handling enables it on your behalf.
 
 @opindex fasynchronous-unwind-tables
+@opindex fno-asynchronous-unwind-tables
 @item -fasynchronous-unwind-tables
 Generate unwind table in DWARF format, if supported by target machine.  The
 table is exact at each instruction boundary, so it can be used for stack
@@ -20586,6 +20890,7 @@ DSOs; if your program relies on reinitialization of a 
DSO via
 @option{-fno-gnu-unique}.
 
 @opindex fpcc-struct-return
+@opindex fno-pcc-struct-return
 @item -fpcc-struct-return
 Return ``short'' @code{struct} and @code{union} values in memory like
 longer ones, rather than in registers.  This convention is less
@@ -20605,6 +20910,7 @@ switch is not binary compatible with code compiled with 
the
 Use it to conform to a non-default application binary interface.
 
 @opindex freg-struct-return
+@opindex fno-reg-struct-return
 @item -freg-struct-return
 Return @code{struct} and @code{union} values in registers when possible.
 This is more efficient for small structures than
@@ -20623,6 +20929,7 @@ switch is not binary compatible with code compiled with 
the
 Use it to conform to a non-default application binary interface.
 
 @opindex fshort-enums
+@opindex fno-short-enums
 @item -fshort-enums
 Allocate to an @code{enum} type only as many bytes as it needs for the
 declared range of possible values.  Specifically, the @code{enum} type
@@ -20635,6 +20942,7 @@ code that is not binary compatible with code generated 
without that switch.
 Use it to conform to a non-default application binary interface.
 
 @opindex fshort-wchar
+@opindex fno-short-wchar
 @item -fshort-wchar
 Override the underlying type for @code{wchar_t} to be @code{short
 unsigned int} instead of the default for the target.  This option is
@@ -20679,6 +20987,7 @@ directives and causes the @code{#ident} preprocessor 
directive to be ignored.
 and @option{-fno-ident}, respectively.
 
 @opindex finhibit-size-directive
+@opindex fno-inhibit-size-directive
 @item -finhibit-size-directive
 Don't output a @code{.size} assembler directive, or anything else that
 would cause trouble if the function is split in the middle, and the
@@ -20687,6 +20996,7 @@ used when compiling @file{crtstuff.c}; you should not 
need to use it
 for anything else.
 
 @opindex fverbose-asm
+@opindex fno-verbose-asm
 @item -fverbose-asm
 Put extra commentary information in the generated assembly code to
 make it more readable.  This option is generally only of use to those
@@ -20781,6 +21091,7 @@ The comments are intended for humans rather than 
machines and hence the
 precise format of the comments is subject to change.
 
 @opindex frecord-gcc-switches
+@opindex fno-record-gcc-switches
 @item -frecord-gcc-switches
 This switch causes the command line used to invoke the
 compiler to be recorded into the object file that is being created.
@@ -20794,6 +21105,7 @@ See also @option{-grecord-gcc-switches} for another
 way of storing compiler options into the object file.
 
 @opindex fpic
+@opindex fno-pic
 @cindex global offset table
 @cindex PIC
 @item -fpic
@@ -20817,6 +21129,7 @@ When this flag is set, the macros @code{__pic__} and 
@code{__PIC__}
 are defined to 1.
 
 @opindex fPIC
+@opindex fno-PIC
 @item -fPIC
 If supported for the target machine, emit position-independent code,
 suitable for dynamic linking and avoiding any limit on the size of the
@@ -20830,7 +21143,9 @@ When this flag is set, the macros @code{__pic__} and 
@code{__PIC__}
 are defined to 2.
 
 @opindex fpie
+@opindex fno-pie
 @opindex fPIE
+@opindex fno-PIE
 @item -fpie
 @itemx -fPIE
 These options are similar to @option{-fpic} and @option{-fPIC}, but the
@@ -20921,6 +21236,7 @@ This flag does not have a negative form, because it 
specifies a
 three-way choice.
 
 @opindex fpack-struct
+@opindex fno-pack-struct
 @item -fpack-struct[=@var{n}]
 Without a value specified, pack all structure members together without
 holes.  When a value is specified (which must be a small power of two), pack
@@ -20934,6 +21250,7 @@ Additionally, it makes the code suboptimal.
 Use it to conform to a non-default application binary interface.
 
 @opindex fleading-underscore
+@opindex fno-leading-underscore
 @item -fleading-underscore
 This option and its counterpart, @option{-fno-leading-underscore}, forcibly
 change the way C symbols are represented in the object file.  One use
@@ -20957,6 +21274,7 @@ The default without @option{-fpic} is 
@samp{initial-exec}; with
 @option{-fpic} the default is @samp{global-dynamic}.
 
 @opindex ftrampolines
+@opindex fno-trampolines
 @item -ftrampolines
 For targets that normally need trampolines for nested functions, always
 generate them instead of using descriptors.  Otherwise, for targets that
@@ -21064,6 +21382,7 @@ An overview of these techniques, their benefits and how 
to use them
 is at @uref{https://gcc.gnu.org/@/wiki/@/Visibility}.
 
 @opindex fstrict-volatile-bitfields
+@opindex fno-strict-volatile-bitfields
 @item -fstrict-volatile-bitfields
 This option should be used if accesses to volatile bit-fields (or other
 structure fields, although the compiler usually honors those types
@@ -21095,6 +21414,7 @@ The default value of this option is determined by the 
application binary
 interface for the target processor.
 
 @opindex fsync-libcalls
+@opindex fno-sync-libcalls
 @item -fsync-libcalls
 This option controls whether any out-of-line instance of the @code{__sync}
 family of functions may be used to implement the C++11 @code{__atomic}
@@ -21519,6 +21839,7 @@ Dump debugging information generated during the early 
debug
 generation phase.
 
 @opindex fdump-noaddr
+@opindex fno-dump-noaddr
 @item -fdump-noaddr
 When doing debugging dumps, suppress address output.  This makes it more
 feasible to use diff on debugging dumps for compiler invocations with
@@ -21526,11 +21847,13 @@ different compiler binaries and/or different
 text / bss / data / heap / stack / dso start locations.
 
 @opindex freport-bug
+@opindex fno-report-bug
 @item -freport-bug
 Collect and dump debug information into a temporary file if an
 internal compiler error (ICE) occurs.
 
 @opindex fdump-unnumbered
+@opindex fno-dump-unnumbered
 @item -fdump-unnumbered
 When doing debugging dumps, suppress instruction numbers and address output.
 This makes it more feasible to use diff on debugging dumps for compiler
@@ -21538,12 +21861,14 @@ invocations with different options, in particular 
with and without
 @option{-g}.
 
 @opindex fdump-unnumbered-links
+@opindex fno-dump-unnumbered-links
 @item -fdump-unnumbered-links
 When doing debugging dumps (see @option{-d} option above), suppress
 instruction numbers for the links to the previous and next instructions
 in a sequence.
 
 @opindex fdump-internal-locations
+@opindex fno-dump-internal-locations
 @item -fdump-internal-locations
 Dump detailed information about GCC's internal representation of source code
 locations.
@@ -21696,6 +22021,7 @@ instance, see @xref{C++ Dialect Options} for the 
@option{-fdump-lang}
 flags supported by the C++ front-end.
 
 @opindex fdump-passes
+@opindex fno-dump-passes
 @item -fdump-passes
 Print on @file{stderr} the list of optimization passes that are turned
 on and off by the current command-line options.
@@ -21824,6 +22150,7 @@ from one version of GCC to another.
 @end enumerate
 
 @opindex fopt-info
+@opindex fno-opt-info
 @item -fopt-info
 @itemx -fopt-info-@var{options}
 @itemx -fopt-info-@var{options}=@var{filename}
@@ -21961,6 +22288,7 @@ ignored. Thus only @file{vec.miss} is produced which 
contains
 dumps from the vectorizer about missed opportunities.
 
 @opindex fsave-optimization-record
+@opindex fno-save-optimization-record
 @item -fsave-optimization-record
 Write a SRCFILE.opt-record.json.gz file detailing what optimizations
 were performed, for those optimizations that support @option{-fopt-info}.
@@ -22102,6 +22430,7 @@ the compiler configuration.  @option{-fchecking=2} 
enables further
 internal consistency checking that might affect code generation.
 
 @opindex frandom-seed
+@opindex fno-random-seed
 @item -frandom-seed=@var{string}
 This option provides a seed that GCC uses in place of
 random numbers in generating certain symbol names
@@ -22246,6 +22575,7 @@ as it is compiled, and print some statistics about each 
pass when it
 finishes.
 
 @opindex ftime-report
+@opindex fno-time-report
 @item -ftime-report
 Makes the compiler print some statistics to stderr about the time consumed
 by each pass when it finishes.
@@ -22259,6 +22589,7 @@ not exactly match those emitted to stderr due to being 
written out at a
 slightly different place within the compiler.
 
 @opindex ftime-report-details
+@opindex fno-time-report-details
 @item -ftime-report-details
 Record the time consumed by infrastructure parts separately for each pass.
 
@@ -22269,6 +22600,7 @@ The default value is 5.  If the value @var{n} is 
greater or equal to 10,
 the dump output is sent to stderr using the same format as @var{n} minus 10.
 
 @opindex flto-report
+@opindex fno-lto-report
 @item -flto-report
 Prints a report with internal details on the workings of the link-time
 optimizer.  The contents of this report vary from version to version.
@@ -22278,22 +22610,27 @@ files in LTO mode (via @option{-flto}).
 Disabled by default.
 
 @opindex flto-report-wpa
+@opindex fno-lto-report-wpa
 @item -flto-report-wpa
 Like @option{-flto-report}, but only print for the WPA phase of link-time
 optimization.
 
 @opindex fmem-report
+@opindex fno-mem-report
 @item -fmem-report
 Makes the compiler print some statistics about permanent memory
 allocation when it finishes.
 
 @opindex fmem-report-wpa
+@opindex fno-mem-report-wpa
 @item -fmem-report-wpa
 Makes the compiler print some statistics about permanent memory
 allocation for the WPA phase only.
 
 @opindex fpre-ipa-mem-report
+@opindex fno-pre-ipa-mem-report
 @opindex fpost-ipa-mem-report
+@opindex fno-post-ipa-mem-report
 @item -fpre-ipa-mem-report
 @item -fpost-ipa-mem-report
 Makes the compiler print some statistics about permanent memory
@@ -22328,6 +22665,7 @@ all target libraries, by configuring a non-bootstrap 
compiler
 the compiler and target libraries.
 
 @opindex fprofile-report
+@opindex fno-profile-report
 @item -fprofile-report
 Makes the compiler print some statistics about consistency of the
 (estimated) profile and effect of individual passes.
@@ -22366,12 +22704,14 @@ not bounded at compile time and the second field only 
represents the
 bounded part.
 
 @opindex fstats
+@opindex fno-stats
 @item -fstats
 Emit statistics about front-end processing at the end of the compilation.
 This option is supported only by the C++ front end, and
 the information is generally only useful to the G++ development team.
 
 @opindex fdbg-cnt-list
+@opindex fno-dbg-cnt-list
 @item -fdbg-cnt-list
 Print the name and the counter upper bound for all debug counters.
 
@@ -27049,6 +27389,7 @@ the target architecture (currently x86 only).
 @opindex mconstant-cfstrings
 @opindex mno-constant-cfstrings
 @opindex fconstant-cfstrings
+@opindex fno-constant-cfstrings
 @item -mconstant-cfstrings
 @itemx -fconstant-cfstrings
 When the NeXT runtime is being used (the default on these systems), override

Reply via email to