OS Manuals

/usr/bin/gcc-11

the GNU compiler collection - version 11

From gcc-11 11.5.0-r11 (os), captured 2026-11-05 by running gcc-11 --help (exit 0). permalink

Usage: gcc-11 [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase.
  --help                   Display this information.
  --target-help            Display target specific command line options.
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
                           Display specific types of command line options.
  (Use '-v --help' to display command line options of sub-processes).
  --version                Display compiler version information.
  -dumpspecs               Display all of the built in spec strings.
  -dumpversion             Display the version of the compiler.
  -dumpmachine             Display the compiler's target processor.
  -print-search-dirs       Display the directories in the compiler's search path.
  -print-libgcc-file-name  Display the name of the compiler's companion library.
  -print-file-name=<lib>   Display the full path to library <lib>.
  -print-prog-name=<prog>  Display the full path to compiler component <prog>.
  -print-multiarch         Display the target's normalized GNU triplet, used as
                           a component in the library path.
  -print-multi-directory   Display the root directory for versions of libgcc.
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories.
  -print-multi-os-directory Display the relative path to OS libraries.
  -print-sysroot           Display the target libraries directory.
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
  -Wa,<options>            Pass comma-separated <options> on to the assembler.
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.
  -Wl,<options>            Pass comma-separated <options> on to the linker.
  -Xassembler <arg>        Pass <arg> on to the assembler.
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.
  -Xlinker <arg>           Pass <arg> on to the linker.
  -save-temps              Do not delete intermediate files.
  -save-temps=<arg>        Do not delete intermediate files.
  -no-canonical-prefixes   Do not canonicalize paths when building relative
                           prefixes to other gcc components.
  -pipe                    Use pipes rather than intermediate files.
  -time                    Time the execution of each subprocess.
  -specs=<file>            Override built-in specs with the contents of <file>.
  -std=<standard>          Assume that the input sources are for <standard>.
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries.
  -B <directory>           Add <directory> to the compiler's search paths.
  -v                       Display the programs invoked by the compiler.
  -###                     Like -v but options quoted and commands not executed.
  -E                       Preprocess only; do not compile, assemble or link.
  -S                       Compile only; do not assemble or link.
  -c                       Compile and assemble, but do not link.
  -o <file>                Place the output into <file>.
  -pie                     Create a dynamically linked position independent
                           executable.
  -shared                  Create a shared library.
  -x <language>            Specify the language of the following input files.
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension.

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by gcc-11.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<https://gcc.gnu.org/bugs/>.
Options (623)
OptionDescriptionSource
-pass-exit-codesNormally the gcc program exits with the code of 1 if any phase of the compiler returns a non-success return code.help + man
--helpPrint (on the standard output) a description of the command-line options understood by gcc.help + man
--target-helpPrint (on the standard output) a description of target-specific command-line options for each tool.help + man
--versionDisplay the version number and copyrights of the invoked GCC.help + man
-dumpspecsDisplay all of the built in spec strings.help
-dumpversionDisplay the version of the compiler.help
-dumpmachineDisplay the compiler's target processor.help
-print-search-dirsDisplay the directories in the compiler's search path.help
-print-libgcc-file-nameDisplay the name of the compiler's companion library.help
-print-file-name libDisplay the full path to library <lib>.help
-print-prog-name progDisplay the full path to compiler component <prog>.help
-print-multiarchDisplay the target's normalized GNU triplet, used as a component in the library path.help
-print-multi-directoryDisplay the root directory for versions of libgcc.help
-print-multi-libDisplay the mapping between command line options and multiple library search directories.help
-print-sysrootDisplay the target libraries directory.help
-WaPass comma-separated <options> on to the assembler.help + man
-WpPass comma-separated <options> on to the preprocessor.help
-WlPass comma-separated <options> on to the linker.help
-Xassembler argPass <arg> on to the assembler.help
-Xpreprocessor argPass <arg> on to the preprocessor.help
-Xlinker argPass <arg> on to the linker.help
-save-tempsDo not delete intermediate files.help
-no-canonical-prefixesDo not canonicalize paths when building relative prefixes to other gcc components.help
-pipeUse pipes rather than temporary files for communication between the various stages of compilation.help + man
-timeTime the execution of each subprocess.help
-specs fileProcess file after the compiler reads in the standard specs file, in order to override the defaults which the gcc driver program uses when determining what switches to pass to cc1, cc1plus, as, ld,…help + man
-std standardAssume that the input sources are for <standard>.help + man
--sysroot directoryUse <directory> as the root directory for headers and libraries.help
-B directoryAdd <directory> to the compiler's search paths.help
-vPrint (on standard error output) the commands executed to run the stages of compilation.help + man
-###Like -v except the commands are not executed and arguments are quoted unless they contain only alphanumeric characters or "./-_".help + man
-EStop after the preprocessing stage;help + man
-SStop after the stage of compilation proper;help + man
-cCompile or assemble the source files, but do not link.help + man
-o filePlace the primary output in file file.help + man
-pieCreate a dynamically linked position independent executable.help
-sharedCreate a shared library.help
-x languageSpecify explicitly the language for the following input files (rather than letting the compiler choose a default based on the file name suffix).help + man
-dumpbase dumpbaseThis option sets the base name for auxiliary and dump output files. (in the manual page but not in --help)man
-dumpbase-ext auxdropsufWhen forming the name of an auxiliary (but not a dump) output file, drop trailing auxdropsuf from dumpbase before appending any suffixes. (in the manual page but not in --help)man
-dumpdir dumppfxWhen forming the name of an auxiliary or dump output file, use dumppfx as a prefix: (in the manual page but not in --help)man
-wrapperInvoke all subcommands under a wrapper program. (in the manual page but not in --help)man
-ffile-prefix-map old=newWhen compiling files residing in directory old, record any references to them in the result of the compilation as if the files resided in directory new instead. (in the manual page but not in --help)man
-fplugin name.soLoad the plugin code in file name.so, assumed to be a shared object to be dlopen'd by the compiler. (in the manual page but not in --help)man
-fplugin-arg-name-key valueDefine an argument called key with a value of value for the plugin called name. (in the manual page but not in --help)man
-fada-spec-parent unitIn conjunction with -fdump-ada-spec[-slim] above, generate Ada specs as child units of parent unit. (in the manual page but not in --help)man
-fdump-go-spec fileFor input files in any language, generate corresponding Go declarations in file. (in the manual page but not in --help)man
-ansiIn C mode, this is equivalent to -std=c90. (in the manual page but not in --help)man
-fgnu89-inlineThe option -fgnu89-inline tells GCC to use the traditional GNU semantics for "inline" functions when in C99 mode. (in the manual page but not in --help)man
-fpermitted-flt-eval-methods styleISO/IEC TS 18661-3 defines new permissible values for "FLT_EVAL_METHOD" that indicate that operations and constants with a semantic type that is an interchange or extended format should be evaluated… (in the manual page but not in --help)man
-aux-info filenameOutput to the given filename prototyped declarations for all functions declared and/or defined in a translation unit, including those in header files. (in the manual page but not in --help)man
-fallow-parameterless-variadic-functionsAccept variadic functions without named parameters. (in the manual page but not in --help)man
-fno-asmDo not recognize "asm", "inline" or "typeof" as a keyword, so that code can use these words as identifiers. (in the manual page but not in --help)man
-fno-builtin (in the manual page but not in --help)man
-fno-builtin-functionDon't recognize built-in functions that do not begin with __builtin_ as prefix. (in the manual page but not in --help)man
-fgimpleEnable parsing of function definitions marked with "__GIMPLE". (in the manual page but not in --help)man
-fhostedAssert that compilation targets a hosted environment. (in the manual page but not in --help)man
-ffreestandingAssert that compilation targets a freestanding environment. (in the manual page but not in --help)man
-fopenaccEnable handling of OpenACC directives "#pragma acc" in C/C++ and "!$acc" in Fortran. (in the manual page but not in --help)man
-fopenacc-dim geomSpecify default compute dimensions for parallel offload regions that do not explicitly specify. (in the manual page but not in --help)man
-fopenmpEnable handling of OpenMP directives "#pragma omp" in C/C++ and "!$omp" in Fortran. (in the manual page but not in --help)man
-fopenmp-simdEnable handling of OpenMP's SIMD directives with "#pragma omp" in C/C++ and "!$omp" in Fortran. (in the manual page but not in --help)man
-fgnu-tmWhen the option -fgnu-tm is specified, the compiler generates code for the Linux variant of Intel's current Transactional Memory ABI specification document (Revision 1.1, May 6 2009). (in the manual page but not in --help)man
-fms-extensionsAccept some non-standard constructs used in Microsoft header files. (in the manual page but not in --help)man
-fplan9-extensionsAccept some non-standard constructs used in Plan 9 code. (in the manual page but not in --help)man
-fcond-mismatchAllow conditional expressions with mismatched types in the second and third arguments. (in the manual page but not in --help)man
-flax-vector-conversionsAllow implicit conversions between vectors with differing numbers of elements and/or incompatible element types. (in the manual page but not in --help)man
-funsigned-charLet the type "char" be unsigned, like "unsigned char". (in the manual page but not in --help)man
-fsigned-charLet the type "char" be signed, like "signed char". (in the manual page but not in --help)man
-fsigned-bitfields (in the manual page but not in --help)man
-funsigned-bitfields (in the manual page but not in --help)man
-fno-signed-bitfields (in the manual page but not in --help)man
-fno-unsigned-bitfieldsThese options control whether a bit-field is signed or unsigned, when the declaration does not use either "signed" or "unsigned". (in the manual page but not in --help)man
-fsso-struct endiannessSet the default scalar storage order of structures and unions to the specified endianness. (in the manual page but not in --help)man
-fabi-version nUse version n of the C++ ABI. (in the manual page but not in --help)man
-fabi-compat-version nOn targets that support strong aliases, G++ works around mangling changes by creating an alias with the correct mangled name when defining a symbol with an incorrect mangled name. (in the manual page but not in --help)man
-fno-access-controlTurn off all access checking. (in the manual page but not in --help)man
-faligned-newEnable support for C++17 "new" of types that require more alignment than "void ::operator new(std::size_t)" provides. (in the manual page but not in --help)man
-fchar8_t (in the manual page but not in --help)man
-fno-char8_tEnable support for "char8_t" as adopted for C++20. (in the manual page but not in --help)man
-fcheck-newCheck that the pointer returned by "operator new" is non-null before attempting to modify the storage allocated. (in the manual page but not in --help)man
-fconcepts (in the manual page but not in --help)man
-fconcepts-tsBelow -std=c++20, -fconcepts enables support for the C++ Extensions for Concepts Technical Specification, ISO 19217 (2015). (in the manual page but not in --help)man
-fconstexpr-depth nSet the maximum nested evaluation depth for C++11 constexpr functions to n. (in the manual page but not in --help)man
-fconstexpr-cache-depth nSet the maximum level of nested evaluation depth for C++11 constexpr functions that will be cached to n. (in the manual page but not in --help)man
-fconstexpr-loop-limit nSet the maximum number of iterations for a loop in C++14 constexpr functions to n. (in the manual page but not in --help)man
-fconstexpr-ops-limit nSet the maximum number of operations during a single constexpr evaluation. (in the manual page but not in --help)man
-fcoroutinesEnable support for the C++ coroutines extension (experimental). (in the manual page but not in --help)man
-fno-elide-constructorsThe C++ standard allows an implementation to omit creating a temporary that is only used to initialize another object of the same type. (in the manual page but not in --help)man
-fno-enforce-eh-specsDon't generate code to check for violation of exception specifications at run time. (in the manual page but not in --help)man
-fextern-tls-init (in the manual page but not in --help)man
-fno-extern-tls-initThe C++11 and OpenMP standards allow "thread_local" and "threadprivate" variables to have dynamic (runtime) initialization. (in the manual page but not in --help)man
-fno-gnu-keywordsDo not recognize "typeof" as a keyword, so that code can use this word as an identifier. (in the manual page but not in --help)man
-fno-implicit-templatesNever emit code for non-inline templates that are instantiated implicitly (i.e. by use); (in the manual page but not in --help)man
-fno-implicit-inline-templatesDon't emit code for implicit instantiations of inline templates, either. (in the manual page but not in --help)man
-fno-implement-inlinesTo save space, do not emit out-of-line copies of inline functions controlled by "#pragma implementation". (in the manual page but not in --help)man
-fmodules-ts (in the manual page but not in --help)man
-fno-modules-tsEnable support for C++20 modules The -fno-modules-ts is usually not needed, as that is the default. (in the manual page but not in --help)man
-fmodule-header (in the manual page but not in --help)man
-fmodule-implicit-inlineMember functions defined in their class definitions are not implicitly inline for modular code. (in the manual page but not in --help)man
-fno-module-lazyDisable lazy module importing and module mapper creation. (in the manual page but not in --help)man
-fmodule-onlyOnly emit the Compiled Module Interface, inhibiting any object file. (in the manual page but not in --help)man
-fnew-inheriting-ctorsEnable the P0136 adjustment to the semantics of C++11 constructor inheritance. (in the manual page but not in --help)man
-fnew-ttp-matchingEnable the P0522 resolution to Core issue 150, template template parameters and default arguments: this allows a template with default template arguments as an argument for a template template… (in the manual page but not in --help)man
-fno-nonansi-builtinsDisable built-in declarations of functions that are not mandated by ANSI/ISO C. (in the manual page but not in --help)man
-fnothrow-optTreat a throw() exception specification as if it were a "noexcept" specification to reduce or eliminate the text size overhead relative to a function with no exception specification. (in the manual page but not in --help)man
-fno-operator-namesDo not treat the operator name keywords "and", "bitand", "bitor", "compl", "not", "or" and "xor" as synonyms as keywords. (in the manual page but not in --help)man
-fno-optional-diagsDisable diagnostics that the standard says a compiler does not need to issue. (in the manual page but not in --help)man
-fpermissiveDowngrade some diagnostics about nonconformant code from errors to warnings. (in the manual page but not in --help)man
-fno-pretty-templatesWhen an error message refers to a specialization of a function template, the compiler normally prints the signature of the template followed by the template arguments and any typedefs or typenames in… (in the manual page but not in --help)man
-fno-rttiDisable generation of information about every class with virtual functions for use by the C++ run-time type identification features ("dynamic_cast" and "typeid"). (in the manual page but not in --help)man
-fsized-deallocationEnable the built-in global declarations (in the manual page but not in --help)man
-fstrict-enumsAllow the compiler to optimize using the assumption that a value of enumerated type can only be one of the values of the enumeration (as defined in the C++ standard; (in the manual page but not in --help)man
-fstrong-eval-orderEvaluate member access, array subscripting, and shift expressions in left-to-right order, and evaluate assignment in right-to-left order, as adopted for C++17. (in the manual page but not in --help)man
-ftemplate-backtrace-limit nSet the maximum number of template instantiation notes for a single warning or error to n. (in the manual page but not in --help)man
-ftemplate-depth nSet the maximum instantiation depth for template classes to n. (in the manual page but not in --help)man
-fno-threadsafe-staticsDo not emit the extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics. (in the manual page but not in --help)man
-fuse-cxa-atexitRegister destructors for objects with static storage duration with the "__cxa_atexit" function rather than the "atexit" function. (in the manual page but not in --help)man
-fno-use-cxa-get-exception-ptrDon't use the "__cxa_get_exception_ptr" runtime routine. (in the manual page but not in --help)man
-fvisibility-inlines-hiddenThis switch declares that the user does not attempt to compare pointers to inline functions or methods where the addresses of the two functions are taken in different shared objects. (in the manual page but not in --help)man
-fvisibility-ms-compatThis flag attempts to use visibility settings to make GCC's C++ linkage model compatible with that of Microsoft Visual Studio. (in the manual page but not in --help)man
-fno-weakDo not use weak symbol support, even if it is provided by the linker. (in the manual page but not in --help)man
-fext-numeric-literals (C++Accept imaginary, fixed-point, or machine-defined literal number suffixes as GNU extensions. (in the manual page but not in --help)man
-nostdinc++Do not search for header files in the standard directories specific to C++, but do still search the other standard directories. (in the manual page but not in --help)man
-flang-info-include-translate (in the manual page but not in --help)man
-flang-info-include-translate-not (in the manual page but not in --help)man
-flang-info-module-cmi (in the manual page but not in --help)man
-stdlib libstdc++When G++ is configured to support this option, it allows specification of alternate C++ runtime libraries. (in the manual page but not in --help)man
-Wabi-tag (C++Warn when a type with an ABI tag is used in a context that does not have that ABI tag. (in the manual page but not in --help)man
-Wcomma-subscript (C++Warn about uses of a comma expression within a subscripting expression. (in the manual page but not in --help)man
-Wctad-maybe-unsupported (C++Warn when performing class template argument deduction (CTAD) on a type with no explicitly written deduction guides. (in the manual page but not in --help)man
-Wctor-dtor-privacy (C++Warn when a class seems unusable because all the constructors or destructors in that class are private, and it has neither friends nor public static member functions. (in the manual page but not in --help)man
-Wdelete-non-virtual-dtor (C++Warn when "delete" is used to destroy an instance of a class that has virtual functions and non-virtual destructor. (in the manual page but not in --help)man
-Wdeprecated-copy (C++Warn that the implicit declaration of a copy constructor or copy assignment operator is deprecated if the class has a user-provided copy constructor or copy assignment operator, in C++11 and up. (in the manual page but not in --help)man
-Wno-deprecated-enum-enum-conversion (C++Disable the warning about the case when the usual arithmetic conversions are applied on operands where one is of enumeration type and the other is of a different enumeration type. (in the manual page but not in --help)man
-Wdeprecated-enum-enum-conversion is (in the manual page but not in --help)man
-Wno-deprecated-enum-float-conversion (C++Disable the warning about the case when the usual arithmetic conversions are applied on operands where one is of enumeration type and the other is of a floating-point type. (in the manual page but not in --help)man
-Wdeprecated-enum-float-conversion is (in the manual page but not in --help)man
-Wno-init-list-lifetime (C++Do not warn about uses of "std::initializer_list" that are likely to result in dangling pointers. (in the manual page but not in --help)man
-Winvalid-imported-macrosVerify all imported macro definitions are valid at the end of compilation. (in the manual page but not in --help)man
-Wno-literal-suffix (C++Do not warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore. (in the manual page but not in --help)man
-Wno-narrowing (C++For C++11 and later standards, narrowing conversions are diagnosed by default, as required by the standard. (in the manual page but not in --help)man
-Wnoexcept (C++Warn when a noexcept-expression evaluates to false because of a call to a function that does not have a non-throwing exception specification (i.e. throw() or "noexcept") but is known by the compiler… (in the manual page but not in --help)man
-Wnoexcept-type (C++Warn if the C++17 feature making "noexcept" part of a function type changes the mangled name of a symbol relative to C++14. (in the manual page but not in --help)man
-Wclass-memaccess (C++Warn when the destination of a call to a raw memory function such as "memset" or "memcpy" is an object of class type, and when writing into such an object might bypass the class non-trivial or… (in the manual page but not in --help)man
-Wnon-virtual-dtor (C++Warn when a class has virtual functions and an accessible non-virtual destructor itself or in an accessible polymorphic base class, in which case it is possible but unsafe to delete an instance of a… (in the manual page but not in --help)man
-Wregister (C++Warn on uses of the "register" storage class specifier, except when it is part of the GNU Explicit Register Variables extension. (in the manual page but not in --help)man
-Wreorder (C++Warn when the order of member initializers given in the code does not match the order in which they must be executed. (in the manual page but not in --help)man
-Wno-pessimizing-move (C++This warning warns when a call to "std::move" prevents copy elision. (in the manual page but not in --help)man
-Wno-redundant-move (C++This warning warns about redundant calls to "std::move"; (in the manual page but not in --help)man
-Wrange-loop-construct (C++This warning warns when a C++ range-based for-loop is creating an unnecessary copy. (in the manual page but not in --help)man
-Wredundant-tags (C++Warn about redundant class-key and enum-key in references to class types and enumerated types in contexts where the key can be eliminated without causing an ambiguity. (in the manual page but not in --help)man
-Wno-subobject-linkage (C++Do not warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage. (in the manual page but not in --help)man
-Weffc++ (C++Warn about violations of the following style guidelines from Scott Meyers' Effective C++ series of books: (in the manual page but not in --help)man
-Wno-exceptions (C++Disable the warning about the case when an exception handler is shadowed by another handler, which can point out a wrong ordering of exception handlers. (in the manual page but not in --help)man
-Wstrict-null-sentinel (C++Warn about the use of an uncasted "NULL" as sentinel. (in the manual page but not in --help)man
-Wno-non-template-friend (C++Disable warnings when non-template friend functions are declared within a template. (in the manual page but not in --help)man
-Wold-style-cast (C++Warn if an old-style (C-style) cast to a non-void type is used within a C++ program. (in the manual page but not in --help)man
-Woverloaded-virtual (C++Warn when a function declaration hides virtual functions from a base class. (in the manual page but not in --help)man
-Wno-pmf-conversions (C++Disable the diagnostic for converting a bound pointer to member function to a plain pointer. (in the manual page but not in --help)man
-Wsign-promo (C++Warn when overload resolution chooses a promotion from unsigned or enumerated type to a signed type, over a conversion to an unsigned type of the same size. (in the manual page but not in --help)man
-Wtemplates (C++Warn when a primary template declaration is encountered. (in the manual page but not in --help)man
-Wno-mismatched-new-delete (C++Warn for mismatches between calls to "operator new" or "operator delete" and the corresponding call to the allocation or deallocation function. (in the manual page but not in --help)man
-Wmismatched-new-delete is (in the manual page but not in --help)man
-Wmismatched-tags (C++Warn for declarations of structs, classes, and class templates and their specializations with a class-key that does not match either the definition or the first declaration if no definition is… (in the manual page but not in --help)man
-Wmultiple-inheritance (C++Warn when a class is defined with multiple direct base classes. (in the manual page but not in --help)man
-Wvirtual-inheritanceWarn when a class is defined with a virtual direct base class. (in the manual page but not in --help)man
-Wno-virtual-move-assignSuppress warnings about inheriting from a virtual base with a non-trivial C++11 move assignment operator. (in the manual page but not in --help)man
-WnamespacesWarn when a namespace definition is opened. (in the manual page but not in --help)man
-Wno-terminate (C++Disable the warning about a throw-expression that will immediately result in a call to "terminate". (in the manual page but not in --help)man
-Wno-vexing-parse (C++Warn about the most vexing parse syntactic ambiguity. (in the manual page but not in --help)man
-Wno-class-conversion (C++Do not warn when a conversion function converts an object to the same type, to a base class of that type, or to void; (in the manual page but not in --help)man
-Wvolatile (C++Warn about deprecated uses of the "volatile" qualifier. (in the manual page but not in --help)man
-Wzero-as-null-pointer-constant (C++Warn when a literal 0 is used as null pointer constant. (in the manual page but not in --help)man
-Waligned-newWarn about a new-expression of a type that requires greater alignment than the alignof(std::max_align_t) but uses an allocation function without an explicit alignment parameter. (in the manual page but not in --help)man
-Wno-placement-new (in the manual page but not in --help)man
-Wplacement-new nWarn about placement new expressions with undefined behavior, such as constructing an object in a buffer that is smaller than the type of the object. (in the manual page but not in --help)man
-Wcatch-value (in the manual page but not in --help)man
-Wconditionally-supported (C++Warn for conditionally-supported (C++11 [intro.defs]) constructs. (in the manual page but not in --help)man
-Wno-delete-incomplete (C++Do not warn when deleting a pointer to incomplete type, which may cause undefined behavior at runtime. (in the manual page but not in --help)man
-Wextra-semi (C++Warn about redundant semicolons after in-class function definitions. (in the manual page but not in --help)man
-Wno-inaccessible-base (C++This option controls warnings when a base class is inaccessible in a class derived from it due to ambiguity. (in the manual page but not in --help)man
-Wno-inherited-variadic-ctorSuppress warnings about use of C++11 inheriting constructors when the base class inherited from has a C variadic constructor; (in the manual page but not in --help)man
-Wno-invalid-offsetof (C++Suppress warnings from applying the "offsetof" macro to a non-POD type. (in the manual page but not in --help)man
-Wsized-deallocation (C++Warn about a definition of an unsized deallocation function (in the manual page but not in --help)man
-Wsuggest-final-typesWarn about types with virtual methods where code quality would be improved if the type were declared with the C++11 "final" specifier, or, if possible, declared in an anonymous namespace. (in the manual page but not in --help)man
-Wsuggest-final-methodsWarn about virtual methods where code quality would be improved if the method were declared with the C++11 "final" specifier, or, if possible, its type were declared in an anonymous namespace or with… (in the manual page but not in --help)man
-Wsuggest-overrideWarn about overriding virtual functions that are not marked with the "override" keyword. (in the manual page but not in --help)man
-Wuseless-cast (C++Warn when an expression is casted to its own type. (in the manual page but not in --help)man
-Wno-conversion-null (C++Do not warn for conversions between "NULL" and non-pointer types. (in the manual page but not in --help)man
-fconstant-string-class class-nameUse class-name as the name of the class to instantiate for each literal string specified with the syntax "@"..."". (in the manual page but not in --help)man
-fgnu-runtimeGenerate object code compatible with the standard GNU Objective-C runtime. (in the manual page but not in --help)man
-fnext-runtimeGenerate output compatible with the NeXT runtime. (in the manual page but not in --help)man
-fno-nil-receiversAssume that all Objective-C message dispatches ("[receiver message:arg]") in this translation unit ensure that the receiver is not "nil". (in the manual page but not in --help)man
-fobjc-abi-version nUse version n of the Objective-C ABI for the selected runtime. (in the manual page but not in --help)man
-fobjc-call-cxx-cdtorsFor each Objective-C class, check if any of its instance variables is a C++ object with a non-trivial default constructor. (in the manual page but not in --help)man
-fobjc-direct-dispatchAllow fast jumps to the message dispatcher. (in the manual page but not in --help)man
-fobjc-exceptionsEnable syntactic support for structured exception handling in Objective-C, similar to what is offered by C++. (in the manual page but not in --help)man
-fobjc-gcEnable garbage collection (GC) in Objective-C and Objective-C++ programs. (in the manual page but not in --help)man
-fobjc-nilcheckFor the NeXT runtime with version 2 of the ABI, check for a nil receiver in method invocations before doing the actual method call. (in the manual page but not in --help)man
-fobjc-std objc1Conform to the language syntax of Objective-C 1.0, the language recognized by GCC 4.0. (in the manual page but not in --help)man
-freplace-objc-classesEmit a special marker instructing ld(1) not to statically link in the resulting object file, and allow dyld(1) to load it in at run time instead. (in the manual page but not in --help)man
-fzero-linkWhen compiling for the NeXT runtime, the compiler ordinarily replaces calls to objc_getClass("...") (when the name of the class is known at compile time) with static class references that get… (in the manual page but not in --help)man
-fno-local-ivarsBy default instance variables in Objective-C can be accessed as if they were local variables from within the methods of the class they're declared in. (in the manual page but not in --help)man
-gen-declsDump interface declarations for all classes seen in the source file to a file named sourcename.decl. (in the manual page but not in --help)man
-Wassign-intercept (Objective-CWarn whenever an Objective-C assignment is being intercepted by the garbage collector. (in the manual page but not in --help)man
-Wno-property-assign-default (Objective-CDo not warn if a property for an Objective-C object has no assign semantics specified. (in the manual page but not in --help)man
-Wno-protocol (Objective-CIf a class is declared to implement a protocol, a warning is issued for every method in the protocol that is not implemented by the class. (in the manual page but not in --help)man
-Wobjc-root-class (Objective-CWarn if a class interface lacks a superclass. (in the manual page but not in --help)man
-Wselector (Objective-CWarn if multiple methods of different types for the same selector are found during compilation. (in the manual page but not in --help)man
-Wstrict-selector-match (Objective-CWarn if multiple methods with differing argument and/or return types are found for a given selector when attempting to send a message using this selector to a receiver of type "id" or "Class". (in the manual page but not in --help)man
-Wundeclared-selector (Objective-CWarn if a @selector(...) expression referring to an undeclared selector is found. (in the manual page but not in --help)man
-print-objc-runtime-infoGenerate C header describing the largest structure that is passed by value, if any. (in the manual page but not in --help)man
-fmessage-length nTry to format error messages so that they fit on lines of about n characters. (in the manual page but not in --help)man
-fdiagnostics-plain-outputThis option requests that diagnostic output look as plain as possible, which may be useful when running dejagnu or other utilities that need to parse diagnostics output and prefer that it remain more… (in the manual page but not in --help)man
-fdiagnostics-show-location onceOnly meaningful in line-wrapping mode. (in the manual page but not in --help)man
-fno-diagnostics-colorUse color in diagnostics. (in the manual page but not in --help)man
-fno-diagnostics-show-optionBy default, each diagnostic emitted includes text indicating the command-line option that directly controls the diagnostic (if such an option is known to the diagnostic machinery). (in the manual page but not in --help)man
-fno-diagnostics-show-caretBy default, each diagnostic emitted includes the original source line and a caret ^ indicating the column. (in the manual page but not in --help)man
-fno-diagnostics-show-labelsBy default, when printing source code (via -fdiagnostics-show-caret), diagnostics can label ranges of source code with pertinent information, such as the types of expressions: (in the manual page but not in --help)man
-fno-diagnostics-show-cweDiagnostic messages can optionally have an associated @url{https://cwe.mitre.org/index.html, CWE} identifier. (in the manual page but not in --help)man
-fno-diagnostics-show-line-numbersBy default, when printing source code (via -fdiagnostics-show-caret), a left margin is printed, showing line numbers. (in the manual page but not in --help)man
-fdiagnostics-minimum-margin-width widthThis option controls the minimum width of the left margin printed by -fdiagnostics-show-line-numbers. (in the manual page but not in --help)man
-fdiagnostics-parseable-fixitsEmit fix-it hints in a machine-parseable format, suitable for consumption by IDEs. (in the manual page but not in --help)man
-fdiagnostics-generate-patchPrint fix-it hints to stderr in unified diff format, after any diagnostics are printed. (in the manual page but not in --help)man
-fdiagnostics-show-template-treeIn the C++ frontend, when printing diagnostics showing mismatching template types, such as: (in the manual page but not in --help)man
-fno-elide-typeBy default when the C++ frontend prints diagnostics showing mismatching template types, common parts of the types are printed as "[...]" to simplify the error message. (in the manual page but not in --help)man
-fdiagnostics-path-format KINDSpecify how to print paths of control-flow events for diagnostics that have such a path associated with them. (in the manual page but not in --help)man
-fdiagnostics-show-path-depthsThis option provides additional information when printing control-flow paths associated with a diagnostic. (in the manual page but not in --help)man
-fno-show-columnDo not print column numbers in diagnostics. (in the manual page but not in --help)man
-fdiagnostics-column-unit UNITSelect the units for the column number. (in the manual page but not in --help)man
-fdiagnostics-column-origin ORIGINSelect the origin for column numbers, i.e. the column number assigned to the first column. (in the manual page but not in --help)man
-fdiagnostics-format FORMATSelect a different format for printing diagnostics. (in the manual page but not in --help)man
-fsyntax-onlyCheck the code for syntax errors, but don't do anything beyond that. (in the manual page but not in --help)man
-fmax-errors nLimits the maximum number of error messages to n, at which point GCC bails out rather than attempting to continue processing the source code. (in the manual page but not in --help)man
-wInhibit all warning messages. (in the manual page but not in --help)man
-WerrorMake all warnings into errors. (in the manual page but not in --help)man
-Wfatal-errorsThis option causes the compiler to abort compilation on the first error occurred rather than trying to keep going and printing further error messages. (in the manual page but not in --help)man
-Wpedantic (in the manual page but not in --help)man
-pedanticIssue all the warnings demanded by strict ISO C and ISO C++; (in the manual page but not in --help)man
-pedantic-errorsGive an error whenever the base standard (see -Wpedantic) requires a diagnostic, in some cases where there is undefined behavior at compile-time and in some other cases that do not prevent… (in the manual page but not in --help)man
-WallThis enables all the warnings about constructions that some users consider questionable, and that are easy to avoid (or modify to prevent the warning), even in conjunction with macros. (in the manual page but not in --help)man
-WextraThis enables some extra warning flags that are not enabled by -Wall. (in the manual page but not in --help)man
-Wabi (CWarn about code affected by ABI changes. (in the manual page but not in --help)man
-Wchar-subscriptsWarn if an array subscript has type "char". (in the manual page but not in --help)man
-Wno-coverage-mismatchWarn if feedback profiles do not match when using the -fprofile-use option. (in the manual page but not in --help)man
-Wno-cpp(C, Objective-C, C++, Objective-C++ and Fortran only) Suppress warning messages emitted by "#warning" directives. (in the manual page but not in --help)man
-Wdouble-promotion (CGive a warning when a value of type "float" is implicitly promoted to "double". (in the manual page but not in --help)man
-Wduplicate-decl-specifier (CWarn if a declaration has duplicate "const", "volatile", "restrict" or "_Atomic" specifier. (in the manual page but not in --help)man
-Wformat (in the manual page but not in --help)man
-Wno-format-contains-nulIf -Wformat is specified, do not warn about format strings that contain NUL bytes. (in the manual page but not in --help)man
-Wno-format-extra-argsIf -Wformat is specified, do not warn about excess arguments to a "printf" or "scanf" format function. (in the manual page but not in --help)man
-Wformat-overflow (in the manual page but not in --help)man
-Wno-format-zero-lengthIf -Wformat is specified, do not warn about zero-length formats. (in the manual page but not in --help)man
-Wformat-nonliteralIf -Wformat is specified, also warn if the format string is not a string literal and so cannot be checked, unless the format function takes its format arguments as a "va_list". (in the manual page but not in --help)man
-Wformat-securityIf -Wformat is specified, also warn about uses of format functions that represent possible security problems. (in the manual page but not in --help)man
-Wformat-signednessIf -Wformat is specified, also warn if the format string requires an unsigned argument and the argument is signed and vice versa. (in the manual page but not in --help)man
-Wformat-truncation (in the manual page but not in --help)man
-Wformat-y2kIf -Wformat is specified, also warn about "strftime" formats that may yield only a two-digit year. (in the manual page but not in --help)man
-WnonnullWarn about passing a null pointer for arguments marked as requiring a non-null value by the "nonnull" function attribute. (in the manual page but not in --help)man
-Wnonnull-compareWarn when comparing an argument marked with the "nonnull" function attribute against null inside the function. (in the manual page but not in --help)man
-Wnull-dereferenceWarn if the compiler detects paths that trigger erroneous or undefined behavior due to dereferencing a null pointer. (in the manual page but not in --help)man
-Winit-self (CWarn about uninitialized variables that are initialized with themselves. (in the manual page but not in --help)man
-Wno-implicit-int (CThis option controls warnings when a declaration does not specify a type. (in the manual page but not in --help)man
-Wno-implicit-function-declaration (CThis option controls warnings when a function is used before being declared. (in the manual page but not in --help)man
-Wimplicit (CSame as -Wimplicit-int and -Wimplicit-function-declaration. (in the manual page but not in --help)man
-Wimplicit-fallthrough (in the manual page but not in --help)man
-Wno-if-not-aligned (CControl if warnings triggered by the "warn_if_not_aligned" attribute should be issued. (in the manual page but not in --help)man
-Wignored-qualifiers (CWarn if the return type of a function has a type qualifier such as "const". (in the manual page but not in --help)man
-Wno-ignored-attributes (CThis option controls warnings when an attribute is ignored. (in the manual page but not in --help)man
-WmainWarn if the type of "main" is suspicious. (in the manual page but not in --help)man
-Wmisleading-indentation (CWarn when the indentation of the code does not reflect the block structure. (in the manual page but not in --help)man
-Wmissing-attributesWarn when a declaration of a function is missing one or more attributes that a related function is declared with and whose absence may adversely affect the correctness or efficiency of generated code. (in the manual page but not in --help)man
-Wmissing-bracesWarn if an aggregate or union initializer is not fully bracketed. (in the manual page but not in --help)man
-Wmissing-include-dirs (CWarn if a user-supplied include directory does not exist. (in the manual page but not in --help)man
-Wno-missing-profileThis option controls warnings if feedback profiles are missing when using the -fprofile-use option. (in the manual page but not in --help)man
-Wno-mismatched-deallocWarn for calls to deallocation functions with pointer arguments returned from from allocations functions for which the former isn't a suitable deallocator. (in the manual page but not in --help)man
-Wmultistatement-macrosWarn about unsafe multiple statement macros that appear to be guarded by a clause such as "if", "else", "for", "switch", or "while", in which only the first statement is actually guarded after the… (in the manual page but not in --help)man
-WparenthesesWarn if parentheses are omitted in certain contexts, such as when there is an assignment in a context where a truth value is expected, or when operators are nested whose precedence people often get… (in the manual page but not in --help)man
-Wsequence-pointWarn about code that may have undefined semantics because of violations of sequence point rules in the C and C++ standards. (in the manual page but not in --help)man
-Wno-return-local-addrDo not warn about returning a pointer (or in C++, a reference) to a variable that goes out of scope after the function returns. (in the manual page but not in --help)man
-Wreturn-typeWarn whenever a function is defined with a return type that defaults to "int". (in the manual page but not in --help)man
-Wno-shift-count-negativeControls warnings if a shift count is negative. (in the manual page but not in --help)man
-Wno-shift-count-overflowControls warnings if a shift count is greater than or equal to the bit width of the type. (in the manual page but not in --help)man
-Wshift-negative-valueWarn if left shifting a negative value. (in the manual page but not in --help)man
-Wno-shift-overflow (in the manual page but not in --help)man
-Wshift-overflow nThese options control warnings about left shift overflows. (in the manual page but not in --help)man
-WswitchWarn whenever a "switch" statement has an index of enumerated type and lacks a "case" for one or more of the named codes of that enumeration. (in the manual page but not in --help)man
-Wswitch-defaultWarn whenever a "switch" statement does not have a "default" case. (in the manual page but not in --help)man
-Wswitch-enumWarn whenever a "switch" statement has an index of enumerated type and lacks a "case" for one or more of the named codes of that enumeration. (in the manual page but not in --help)man
-Wno-switch-boolDo not warn when a "switch" statement has an index of boolean type and the case values are outside the range of a boolean type. (in the manual page but not in --help)man
-Wno-switch-outside-rangeThis option controls warnings when a "switch" case has a value that is outside of its respective type range. (in the manual page but not in --help)man
-Wno-switch-unreachableDo not warn when a "switch" statement contains statements between the controlling expression and the first case label, which will never be executed. (in the manual page but not in --help)man
-Wswitch-unreachable does (in the manual page but not in --help)man
-Wsync-nand (CWarn when "__sync_fetch_and_nand" and "__sync_nand_and_fetch" built-in functions are used. (in the manual page but not in --help)man
-Wunused-but-set-parameterWarn whenever a function parameter is assigned to, but otherwise unused (aside from its declaration). (in the manual page but not in --help)man
-Wunused-but-set-variableWarn whenever a local variable is assigned to, but otherwise unused (aside from its declaration). (in the manual page but not in --help)man
-Wunused-functionWarn whenever a static function is declared but not defined or a non-inline static function is unused. (in the manual page but not in --help)man
-Wunused-labelWarn whenever a label is declared but not used. (in the manual page but not in --help)man
-Wunused-local-typedefs (CWarn when a typedef locally defined in a function is not used. (in the manual page but not in --help)man
-Wunused-parameterWarn whenever a function parameter is unused aside from its declaration. (in the manual page but not in --help)man
-Wno-unused-resultDo not warn if a caller of a function marked with attribute "warn_unused_result" does not use its return value. (in the manual page but not in --help)man
-Wunused-variableWarn whenever a local or static variable is unused aside from its declaration. (in the manual page but not in --help)man
-Wunused-const-variable (in the manual page but not in --help)man
-Wunused-valueWarn whenever a statement computes a result that is explicitly not used. (in the manual page but not in --help)man
-WunusedAll the above -Wunused options combined. (in the manual page but not in --help)man
-WuninitializedWarn if an object with automatic or allocated storage duration is used without having been initialized. (in the manual page but not in --help)man
-Wno-invalid-memory-modelThis option controls warnings for invocations of __atomic Builtins, __sync Builtins, and the C11 atomic generic functions with a memory consistency argument that is either invalid for the operation… (in the manual page but not in --help)man
-Winvalid-memory-model is (in the manual page but not in --help)man
-Wmaybe-uninitializedFor an object with automatic or allocated storage duration, if there exists a path from the function entry to a use of the object that is initialized, but there exist some other paths for which the… (in the manual page but not in --help)man
-Wunknown-pragmasWarn when a "#pragma" directive is encountered that is not understood by GCC. (in the manual page but not in --help)man
-Wno-pragmasDo not warn about misuses of pragmas, such as incorrect parameters, invalid syntax, or conflicts between pragmas. (in the manual page but not in --help)man
-Wno-prio-ctor-dtorDo not warn if a priority from 0 to 100 is used for constructor or destructor. (in the manual page but not in --help)man
-Wstrict-aliasingThis option is only active when -fstrict-aliasing is active. (in the manual page but not in --help)man
-Wstrict-overflow (in the manual page but not in --help)man
-Wstring-compareWarn for calls to "strcmp" and "strncmp" whose result is determined to be either zero or non-zero in tests for such equality owing to the length of one argument being greater than the size of the… (in the manual page but not in --help)man
-Wno-stringop-overflow (in the manual page but not in --help)man
-Wstringop-overflow (in the manual page but not in --help)man
-Wno-stringop-overreadWarn for calls to string manipulation functions such as "memchr", or "strcpy" that are determined to read past the end of the source sequence. (in the manual page but not in --help)man
-Wno-stringop-truncationDo not warn for calls to bounded string manipulation functions such as "strncat", "strncpy", and "stpncpy" that may either truncate the copied string or leave the destination unchanged. (in the manual page but not in --help)man
-Wsuggest-attribute pure (in the manual page but not in --help)man
-Wmissing-noreturn (in the manual page but not in --help)man
-Wmissing-format-attributeWarn about function pointers that might be candidates for "format" attributes. (in the manual page but not in --help)man
-Walloc-zeroWarn about calls to allocation functions decorated with attribute "alloc_size" that specify zero bytes, including those to the built-in forms of the functions "aligned_alloc", "alloca", "calloc",… (in the manual page but not in --help)man
-Walloc-size-larger-than byte-sizeWarn about calls to functions decorated with attribute "alloc_size" that attempt to allocate objects larger than the specified number of bytes, or where the result of the size computation in an… (in the manual page but not in --help)man
-Wno-alloc-size-larger-thanDisable -Walloc-size-larger-than= warnings. (in the manual page but not in --help)man
-WallocaThis option warns on all uses of "alloca" in the source. (in the manual page but not in --help)man
-Walloca-larger-than byte-sizeThis option warns on calls to "alloca" with an integer argument whose value is either zero, or that is not bounded by a controlling predicate that limits its value to at most byte-size. (in the manual page but not in --help)man
-Wno-alloca-larger-thanDisable -Walloca-larger-than= warnings. (in the manual page but not in --help)man
-Warith-conversionDo warn about implicit conversions from arithmetic operations even when conversion of the operands to the same type cannot change their values. (in the manual page but not in --help)man
-Warray-bounds (in the manual page but not in --help)man
-Warray-parameter (in the manual page but not in --help)man
-Wattribute-alias n (in the manual page but not in --help)man
-Wno-attribute-aliasWarn about declarations using the "alias" and similar attributes whose target is incompatible with the type of the alias. (in the manual page but not in --help)man
-Wbool-compareWarn about boolean expression compared with an integer value different from "true"/"false". (in the manual page but not in --help)man
-Wbool-operationWarn about suspicious operations on expressions of a boolean type. (in the manual page but not in --help)man
-Wduplicated-branchesWarn when an if-else has identical branches. (in the manual page but not in --help)man
-Wduplicated-condWarn about duplicated conditions in an if-else-if chain. (in the manual page but not in --help)man
-Wframe-addressWarn when the __builtin_frame_address or __builtin_return_address is called with an argument greater than 0. (in the manual page but not in --help)man
-Wno-discarded-qualifiers (CDo not warn if type qualifiers on pointers are being discarded. (in the manual page but not in --help)man
-Wno-discarded-array-qualifiers (CDo not warn if type qualifiers on arrays which are pointer targets are being discarded. (in the manual page but not in --help)man
-Wno-incompatible-pointer-types (CDo not warn when there is a conversion between pointers that have incompatible types. (in the manual page but not in --help)man
-Wno-int-conversion (CDo not warn about incompatible integer to pointer and pointer to integer conversions. (in the manual page but not in --help)man
-Wzero-length-boundsWarn about accesses to elements of zero-length array members that might overlap other members of the same object. (in the manual page but not in --help)man
-Wno-div-by-zeroDo not warn about compile-time integer division by zero. (in the manual page but not in --help)man
-Wsystem-headersPrint warning messages for constructs found in system header files. (in the manual page but not in --help)man
-Wtautological-compareWarn if a self-comparison always evaluates to true or false. (in the manual page but not in --help)man
-WtrampolinesWarn about trampolines generated for pointers to nested functions. (in the manual page but not in --help)man
-Wfloat-equalWarn if floating-point values are used in equality comparisons. (in the manual page but not in --help)man
-Wtraditional (CWarn about certain constructs that behave differently in traditional and ISO C. (in the manual page but not in --help)man
-Wtraditional-conversion (CWarn if a prototype causes a type conversion that is different from what would happen to the same argument in the absence of a prototype. (in the manual page but not in --help)man
-Wdeclaration-after-statement (CWarn when a declaration is found after a statement in a block. (in the manual page but not in --help)man
-WshadowWarn whenever a local variable or type declaration shadows another variable, parameter, type, class member (in C++), or instance variable (in Objective-C) or whenever a built-in function is shadowed. (in the manual page but not in --help)man
-Wno-shadow-ivar (Objective-CDo not warn whenever a local variable shadows an instance variable in an Objective-C method. (in the manual page but not in --help)man
-Wlarger-than byte-sizeWarn whenever an object is defined whose size exceeds byte-size. (in the manual page but not in --help)man
-Wno-larger-thanDisable -Wlarger-than= warnings. (in the manual page but not in --help)man
-Wframe-larger-than byte-sizeWarn if the size of a function frame exceeds byte-size. (in the manual page but not in --help)man
-Wno-frame-larger-thanDisable -Wframe-larger-than= warnings. (in the manual page but not in --help)man
-Wno-free-nonheap-objectWarn when attempting to deallocate an object that was either not allocated on the heap, or by using a pointer that was not returned from a prior call to the corresponding allocation function. (in the manual page but not in --help)man
-Wfree-nonheap-object is (in the manual page but not in --help)man
-Wstack-usage byte-sizeWarn if the stack usage of a function might exceed byte-size. (in the manual page but not in --help)man
-Wno-stack-usageDisable -Wstack-usage= warnings. (in the manual page but not in --help)man
-Wunsafe-loop-optimizationsWarn if the loop cannot be optimized because the compiler cannot assume anything on the bounds of the loop indices. (in the manual page but not in --help)man
-Wno-pedantic-ms-format (MinGWWhen used in combination with -Wformat and -pedantic without GNU extensions, this option disables the warnings about non-ISO "printf" / "scanf" format width specifiers "I32", "I64", and "I" used on… (in the manual page but not in --help)man
-Wpointer-arithWarn about anything that depends on the "size of" a function type or of "void". (in the manual page but not in --help)man
-Wno-pointer-compareDo not warn if a pointer is compared with a zero character constant. (in the manual page but not in --help)man
-WtsanWarn about unsupported features in ThreadSanitizer. (in the manual page but not in --help)man
-Wtype-limitsWarn if a comparison is always true or always false due to the limited range of the data type, but do not warn for constant expressions. (in the manual page but not in --help)man
-Wabsolute-value (CWarn for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. (in the manual page but not in --help)man
-Wcomment (in the manual page but not in --help)man
-WcommentsWarn whenever a comment-start sequence / appears in a / comment, or whenever a backslash-newline appears in a // comment. (in the manual page but not in --help)man
-WtrigraphsWarn if any trigraphs are encountered that might change the meaning of the program. (in the manual page but not in --help)man
-WundefWarn if an undefined identifier is evaluated in an "#if" directive. (in the manual page but not in --help)man
-Wexpansion-to-definedWarn whenever defined is encountered in the expansion of a macro (including the case where the macro is expanded by an #if directive). (in the manual page but not in --help)man
-Wunused-macrosWarn about macros defined in the main file that are unused. (in the manual page but not in --help)man
-Wno-endif-labelsDo not warn whenever an "#else" or an "#endif" are followed by text. (in the manual page but not in --help)man
-Wbad-function-cast (CWarn when a function call is cast to a non-matching type. (in the manual page but not in --help)man
-Wc90-c99-compat (CWarn about features not present in ISO C90, but present in ISO C99. (in the manual page but not in --help)man
-Wc99-c11-compat (CWarn about features not present in ISO C99, but present in ISO C11. (in the manual page but not in --help)man
-Wc11-c2x-compat (CWarn about features not present in ISO C11, but present in ISO C2X. (in the manual page but not in --help)man
-Wc++-compat (CWarn about ISO C constructs that are outside of the common subset of ISO C and ISO C++, e.g. request for implicit conversion from "void " to a pointer to non-"void" type. (in the manual page but not in --help)man
-Wc++11-compat (C++Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011, e.g., identifiers in ISO C++ 1998 that are keywords in ISO C++ 2011. (in the manual page but not in --help)man
-Wc++14-compat (C++Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014. (in the manual page but not in --help)man
-Wc++17-compat (C++Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017. (in the manual page but not in --help)man
-Wc++20-compat (C++Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020. (in the manual page but not in --help)man
-Wcast-qualWarn whenever a pointer is cast so as to remove a type qualifier from the target type. (in the manual page but not in --help)man
-Wcast-alignWarn whenever a pointer is cast such that the required alignment of the target is increased. (in the manual page but not in --help)man
-Wcast-function-typeWarn when a function pointer is cast to an incompatible function pointer. (in the manual page but not in --help)man
-Wwrite-stringsWhen compiling C, give string constants the type "const char[length]" so that copying the address of one into a non-"const" "char " pointer produces a warning. (in the manual page but not in --help)man
-WclobberedWarn for variables that might be changed by "longjmp" or "vfork". (in the manual page but not in --help)man
-WconversionWarn for implicit conversions that may alter a value. (in the manual page but not in --help)man
-Wdangling-elseWarn about constructions where there may be confusion to which "if" statement an "else" branch belongs. (in the manual page but not in --help)man
-Wdate-timeWarn when macros "__TIME__", "__DATE__" or "__TIMESTAMP__" are encountered as they might prevent bit-wise-identical reproducible compilations. (in the manual page but not in --help)man
-Wempty-bodyWarn if an empty body occurs in an "if", "else" or "do while" statement. (in the manual page but not in --help)man
-Wenum-compareWarn about a comparison between values of different enumerated types. (in the manual page but not in --help)man
-Wenum-conversionWarn when a value of enumerated type is implicitly converted to a different enumerated type. (in the manual page but not in --help)man
-Wjump-misses-init (CWarn if a "goto" statement or a "switch" statement jumps forward across the initialization of a variable, or jumps backward to a label after the variable has been initialized. (in the manual page but not in --help)man
-Wsign-compareWarn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned. (in the manual page but not in --help)man
-Wsign-conversionWarn for implicit conversions that may change the sign of an integer value, like assigning a signed integer expression to an unsigned integer variable. (in the manual page but not in --help)man
-Wfloat-conversionWarn for implicit conversions that reduce the precision of a real value. (in the manual page but not in --help)man
-Wno-scalar-storage-orderDo not warn on suspicious constructs involving reverse scalar storage order. (in the manual page but not in --help)man
-Wsizeof-array-divWarn about divisions of two sizeof operators when the first one is applied to an array and the divisor does not equal the size of the array element. (in the manual page but not in --help)man
-Wsizeof-pointer-divWarn for suspicious divisions of two sizeof expressions that divide the pointer size by the element size, which is the usual way to compute the array size but won't work out correctly with pointers. (in the manual page but not in --help)man
-Wsizeof-pointer-memaccessWarn for suspicious length parameters to certain string and memory built-in functions if the argument uses "sizeof". (in the manual page but not in --help)man
-Wno-sizeof-array-argumentDo not warn when the "sizeof" operator is applied to a parameter that is declared as an array in a function definition. (in the manual page but not in --help)man
-Wmemset-elt-sizeWarn for suspicious calls to the "memset" built-in function, if the first argument references an array, and the third argument is a number equal to the number of elements, but not equal to the size… (in the manual page but not in --help)man
-Wmemset-transposed-argsWarn for suspicious calls to the "memset" built-in function where the second argument is not zero and the third argument is zero. (in the manual page but not in --help)man
-WaddressWarn about suspicious uses of memory addresses. (in the manual page but not in --help)man
-Wno-address-of-packed-memberDo not warn when the address of packed member of struct or union is taken, which usually results in an unaligned pointer value. (in the manual page but not in --help)man
-Wlogical-opWarn about suspicious uses of logical operators in expressions. (in the manual page but not in --help)man
-Wlogical-not-parenthesesWarn about logical not used on the left hand side operand of a comparison. (in the manual page but not in --help)man
-Waggregate-returnWarn if any functions that return structures or unions are defined or called. (in the manual page but not in --help)man
-Wno-aggressive-loop-optimizationsWarn if in a loop with constant number of iterations the compiler detects undefined behavior in some statement during one or more of the iterations. (in the manual page but not in --help)man
-Wno-attributesDo not warn if an unexpected "__attribute__" is used, such as unrecognized attributes, function attributes applied to variables, etc. (in the manual page but not in --help)man
-Wno-builtin-declaration-mismatchWarn if a built-in function is declared with an incompatible signature or as a non-function, or when a built-in function declared with a type that does not include a prototype is called with… (in the manual page but not in --help)man
-Wno-builtin-macro-redefinedDo not warn if certain built-in macros are redefined. (in the manual page but not in --help)man
-Wstrict-prototypes (CWarn if a function is declared or defined without specifying the argument types. (in the manual page but not in --help)man
-Wold-style-declaration (CWarn for obsolescent usages, according to the C Standard, in a declaration. (in the manual page but not in --help)man
-Wold-style-definition (CWarn if an old-style function definition is used. (in the manual page but not in --help)man
-Wmissing-parameter-type (CA function parameter is declared without a type specifier in K&R-style functions: (in the manual page but not in --help)man
-Wmissing-prototypes (CWarn if a global function is defined without a previous prototype declaration. (in the manual page but not in --help)man
-Wmissing-declarationsWarn if a global function is defined without a previous declaration. (in the manual page but not in --help)man
-Wmissing-field-initializersWarn if a structure's initializer has some fields missing. (in the manual page but not in --help)man
-Wno-multicharDo not warn if a multicharacter constant ('FOOF') is used. (in the manual page but not in --help)man
-Wno-attribute-warningDo not warn about usage of functions declared with "warning" attribute. (in the manual page but not in --help)man
-Wno-deprecatedDo not warn about usage of deprecated features. (in the manual page but not in --help)man
-Wno-deprecated-declarationsDo not warn about uses of functions, variables, and types marked as deprecated by using the "deprecated" attribute. (in the manual page but not in --help)man
-Wno-overflowDo not warn about compile-time overflow in constant expressions. (in the manual page but not in --help)man
-Wno-odrWarn about One Definition Rule violations during link-time optimization. (in the manual page but not in --help)man
-Wopenmp-simdWarn if the vectorizer cost model overrides the OpenMP simd directive set by user. (in the manual page but not in --help)man
-Woverride-init (CWarn if an initialized field without side effects is overridden when using designated initializers. (in the manual page but not in --help)man
-Wno-override-init-side-effects (CDo not warn if an initialized field with side effects is overridden when using designated initializers. (in the manual page but not in --help)man
-WpackedWarn if a structure is given the packed attribute, but the packed attribute has no effect on the layout or size of the structure. (in the manual page but not in --help)man
-Wnopacked-bitfield-compatThe 4.1, 4.2 and 4.3 series of GCC ignore the "packed" attribute on bit-fields of type "char". (in the manual page but not in --help)man
-Wpacked-not-aligned (CWarn if a structure field with explicitly specified alignment in a packed struct or union is misaligned. (in the manual page but not in --help)man
-WpaddedWarn if padding is included in a structure, either to align an element of the structure or to align the whole structure. (in the manual page but not in --help)man
-Wredundant-declsWarn if anything is declared more than once in the same scope, even in cases where multiple declaration is valid and changes nothing. (in the manual page but not in --help)man
-WrestrictWarn when an object referenced by a "restrict"-qualified parameter (or, in C++, a "__restrict"-qualified parameter) is aliased by another argument, or when copies between such objects overlap. (in the manual page but not in --help)man
-Wnested-externs (CWarn if an "extern" declaration is encountered within a function. (in the manual page but not in --help)man
-WinlineWarn if a function that is declared as inline cannot be inlined. (in the manual page but not in --help)man
-Wint-in-bool-contextWarn for suspicious use of integer values where boolean values are expected, such as conditional expressions (?:) using non-boolean integer constants in boolean context, like "if (a <= b ? 2 : 3)". (in the manual page but not in --help)man
-Wno-int-to-pointer-castSuppress warnings from casts to pointer type of an integer of a different size. (in the manual page but not in --help)man
-Wno-pointer-to-int-cast (CSuppress warnings from casts from a pointer to an integer type of a different size. (in the manual page but not in --help)man
-Winvalid-pchWarn if a precompiled header is found in the search path but cannot be used. (in the manual page but not in --help)man
-Wlong-longWarn if "long long" type is used. (in the manual page but not in --help)man
-Wvariadic-macrosWarn if variadic macros are used in ISO C90 mode, or if the GNU alternate syntax is used in ISO C99 mode. (in the manual page but not in --help)man
-Wno-varargsDo not warn upon questionable usage of the macros used to handle variable arguments like "va_start". (in the manual page but not in --help)man
-Wvector-operation-performanceWarn if vector operation is not implemented via SIMD capabilities of the architecture. (in the manual page but not in --help)man
-WvlaWarn if a variable-length array is used in the code. (in the manual page but not in --help)man
-Wvla-larger-than byte-sizeIf this option is used, the compiler warns for declarations of variable-length arrays whose size is either unbounded, or bounded by an argument that allows the array size to exceed byte-size bytes. (in the manual page but not in --help)man
-Wno-vla-larger-thanDisable -Wvla-larger-than= warnings. (in the manual page but not in --help)man
-Wvla-parameterWarn about redeclarations of functions involving arguments of Variable Length Array types of inconsistent kinds or forms, and enable the detection of out-of-bounds accesses to such parameters by… (in the manual page but not in --help)man
-Wvolatile-register-varWarn if a register variable is declared volatile. (in the manual page but not in --help)man
-Wdisabled-optimizationWarn if a requested optimization pass is disabled. (in the manual page but not in --help)man
-Wpointer-sign (CWarn for pointer argument passing or assignment with different signedness. (in the manual page but not in --help)man
-Wstack-protectorThis option is only active when -fstack-protector is active. (in the manual page but not in --help)man
-Woverlength-stringsWarn about string constants that are longer than the "minimum maximum" length specified in the C standard. (in the manual page but not in --help)man
-Wunsuffixed-float-constants (CIssue a warning for any floating constant that does not have a suffix. (in the manual page but not in --help)man
-Wno-lto-type-mismatchDuring the link-time optimization, do not warn about type mismatches in global declarations from different compilation units. (in the manual page but not in --help)man
-Wno-designated-init (CSuppress warnings when a positional initializer is used to initialize a structure that has been marked with the "designated_init" attribute. (in the manual page but not in --help)man
-fanalyzerThis option enables an static analysis of program flow which looks for "interesting" interprocedural paths through the code, and issues warnings for problems found on them. (in the manual page but not in --help)man
-Wanalyzer-too-complexIf -fanalyzer is enabled, the analyzer uses various heuristics to attempt to explore the control flow and data flow in the program, but these can be defeated by sufficiently complicated code. (in the manual page but not in --help)man
-Wno-analyzer-double-fcloseThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-double-freeThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-exposure-through-output-fileThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-file-leakThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-free-of-non-heapThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-malloc-leakThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-mismatching-deallocationThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-possible-null-argumentThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-possible-null-dereferenceThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-null-argumentThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-null-dereferenceThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-shift-count-negativeThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-shift-count-overflowThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-stale-setjmp-bufferThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-tainted-array-indexThis warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help)man
-Wno-analyzer-unsafe-call-within-signal-handlerThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-use-after-freeThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-use-of-pointer-in-stale-stack-frameThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-write-to-constThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-Wno-analyzer-write-to-string-literalThis warning requires -fanalyzer, which enables it; (in the manual page but not in --help)man
-fanalyzer-call-summariesSimplify interprocedural analysis by computing the effect of certain calls, rather than exploring all paths through the function from callsite to each possible return. (in the manual page but not in --help)man
-fanalyzer-checker nameRestrict the analyzer to run just the named checker, and enable it. (in the manual page but not in --help)man
-fno-analyzer-feasibilityThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fanalyzer-fine-grainedThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fanalyzer-show-duplicate-countThis option is intended for analyzer developers: if multiple diagnostics have been detected as being duplicates of each other, it emits a note when reporting the best diagnostic, giving the number of… (in the manual page but not in --help)man
-fno-analyzer-state-mergeThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fno-analyzer-state-purgeThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fanalyzer-transitivityThis option enables transitivity of constraints within the analyzer. (in the manual page but not in --help)man
-fanalyzer-verbose-edgesThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fanalyzer-verbose-state-changesThis option is intended for analyzer developers. (in the manual page but not in --help)man
-fanalyzer-verbosity levelThis option controls the complexity of the control flow paths that are emitted for analyzer diagnostics. (in the manual page but not in --help)man
-fdump-analyzerDump internal details about what the analyzer is doing to file.analyzer.txt. (in the manual page but not in --help)man
-fdump-analyzer-stderrDump internal details about what the analyzer is doing to stderr. (in the manual page but not in --help)man
-fdump-analyzer-callgraphDump a representation of the call graph suitable for viewing with GraphViz to file.callgraph.dot. (in the manual page but not in --help)man
-fdump-analyzer-exploded-graphDump a representation of the "exploded graph" suitable for viewing with GraphViz to file.eg.dot. (in the manual page but not in --help)man
-fdump-analyzer-exploded-nodesEmit diagnostics showing where nodes in the "exploded graph" are in relation to the program source. (in the manual page but not in --help)man
-fdump-analyzer-exploded-nodes-2Dump a textual representation of the "exploded graph" to file.eg.txt. (in the manual page but not in --help)man
-fdump-analyzer-exploded-nodes-3Dump a textual representation of the "exploded graph" to one dump file per node, to file.eg-id.txt. (in the manual page but not in --help)man
-fdump-analyzer-feasibilityDump internal details about the analyzer's search for feasible paths. (in the manual page but not in --help)man
-fdump-analyzer-jsonDump a compressed JSON representation of analyzer internals to file.analyzer.json.gz. (in the manual page but not in --help)man
-fdump-analyzer-state-purgeAs per -fdump-analyzer-supergraph, dump a representation of the "supergraph" suitable for viewing with GraphViz, but annotate the graph with information on what state will be purged at each node. (in the manual page but not in --help)man
-fdump-analyzer-supergraphDump representations of the "supergraph" suitable for viewing with GraphViz to file.supergraph.dot and to file.supergraph-eg.dot. (in the manual page but not in --help)man
-gProduce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF). (in the manual page but not in --help)man
-ggdbProduce debugging information for use by GDB. (in the manual page but not in --help)man
-gdwarf (in the manual page but not in --help)man
-gdwarf-versionProduce debugging information in DWARF format (if that is supported). (in the manual page but not in --help)man
-gstabsProduce debugging information in stabs format (if that is supported), without GDB extensions. (in the manual page but not in --help)man
-gstabs+Produce debugging information in stabs format (if that is supported), using GNU extensions understood only by the GNU debugger (GDB). (in the manual page but not in --help)man
-gxcoffProduce debugging information in XCOFF format (if that is supported). (in the manual page but not in --help)man
-gxcoff+Produce debugging information in XCOFF format (if that is supported), using GNU extensions understood only by the GNU debugger (GDB). (in the manual page but not in --help)man
-gvmsProduce debugging information in Alpha/VMS debug format (if that is supported). (in the manual page but not in --help)man
-glevel (in the manual page but not in --help)man
-ggdblevel (in the manual page but not in --help)man
-gstabslevel (in the manual page but not in --help)man
-gxcofflevel (in the manual page but not in --help)man
-gvmslevelRequest debugging information and also use level to specify how much information. (in the manual page but not in --help)man
-fno-eliminate-unused-debug-symbolsBy default, no debug information is produced for symbols that are not actually used. (in the manual page but not in --help)man
-femit-class-debug-alwaysInstead of emitting debugging information for a C++ class in only one object file, emit it in all object files using the class. (in the manual page but not in --help)man
-fno-merge-debug-stringsDirect the linker to not merge together strings in the debugging information that are identical in different object files. (in the manual page but not in --help)man
-fdebug-prefix-map old=newWhen compiling files residing in directory old, record debugging information describing them as if the files resided in directory new instead. (in the manual page but not in --help)man
-fvar-trackingRun variable tracking pass. (in the manual page but not in --help)man
-fvar-tracking-assignmentsAnnotate assignments to user variables early in the compilation and attempt to carry the annotations over throughout the compilation all the way to the end, in an attempt to improve debug information… (in the manual page but not in --help)man
-gsplit-dwarfIf DWARF debugging information is enabled, separate as much debugging information as possible into a separate output file with the extension .dwo. (in the manual page but not in --help)man
-gdwarf32 (in the manual page but not in --help)man
-gdwarf64If DWARF debugging information is enabled, the -gdwarf32 selects the 32-bit DWARF format and the -gdwarf64 selects the 64-bit DWARF format. (in the manual page but not in --help)man
-gdescribe-diesAdd description attributes to some DWARF DIEs that have no name attribute, such as artificial variables, external references and call site parameter DIEs. (in the manual page but not in --help)man
-gpubnamesGenerate DWARF ".debug_pubnames" and ".debug_pubtypes" sections. (in the manual page but not in --help)man
-ggnu-pubnamesGenerate ".debug_pubnames" and ".debug_pubtypes" sections in a format suitable for conversion into a GDB index. (in the manual page but not in --help)man
-fdebug-types-sectionWhen using DWARF Version 4 or higher, type DIEs can be put into their own ".debug_types" section instead of making them part of the ".debug_info" section. (in the manual page but not in --help)man
-grecord-gcc-switches (in the manual page but not in --help)man
-gno-record-gcc-switchesThis switch causes the command-line options used to invoke the compiler that may affect code generation to be appended to the DW_AT_producer attribute in DWARF debugging information. (in the manual page but not in --help)man
-gstrict-dwarfDisallow using extensions of later DWARF standard version than selected with -gdwarf-version. (in the manual page but not in --help)man
-gno-strict-dwarfAllow using extensions of later DWARF standard version than selected with -gdwarf-version. (in the manual page but not in --help)man
-gas-loc-supportInform the compiler that the assembler supports ".loc" directives. (in the manual page but not in --help)man
-gno-as-loc-supportForce GCC to generate DWARF2+ line number tables internally, if DWARF2+ line number tables are to be generated. (in the manual page but not in --help)man
-gas-locview-supportInform the compiler that the assembler supports "view" assignment and reset assertion checking in ".loc" directives. (in the manual page but not in --help)man
-gno-as-locview-supportForce GCC to assign view numbers internally, if -gvariable-location-views are explicitly requested. (in the manual page but not in --help)man
-gcolumn-info (in the manual page but not in --help)man
-gno-column-infoEmit location column information into DWARF debugging information, rather than just file and line. (in the manual page but not in --help)man
-gstatement-frontiers (in the manual page but not in --help)man
-gno-statement-frontiersThis option causes GCC to create markers in the internal representation at the beginning of statements, and to keep them roughly in place throughout compilation, using them to guide the output of… (in the manual page but not in --help)man
-gvariable-location-views (in the manual page but not in --help)man
-gno-variable-location-viewsAugment variable location lists with progressive view numbers implied from the line number table. (in the manual page but not in --help)man
-ginternal-reset-location-views (in the manual page but not in --help)man
-gno-internal-reset-location-viewsAttempt to determine location views that can be omitted from location view lists. (in the manual page but not in --help)man
-ginline-points (in the manual page but not in --help)man
-gno-inline-pointsGenerate extended debug information for inlined functions. (in the manual page but not in --help)man
-femit-struct-debug-baseonlyEmit debug information for struct-like types only when the base name of the compilation source file matches the base name of file in which the struct is defined. (in the manual page but not in --help)man
-femit-struct-debug-reducedEmit debug information for struct-like types only when the base name of the compilation source file matches the base name of file in which the type is defined, unless the struct is a template or… (in the manual page but not in --help)man
-fno-dwarf2-cfi-asmEmit DWARF unwind info as compiler generated ".eh_frame" section instead of using GAS ".cfi_" directives. (in the manual page but not in --help)man
-fno-eliminate-unused-debug-typesNormally, when producing DWARF output, GCC avoids producing debug symbol output for types that are nowhere used in the source file being compiled. (in the manual page but not in --help)man
-O (in the manual page but not in --help)man
-O1Optimize. (in the manual page but not in --help)man
-O2Optimize even more. (in the manual page but not in --help)man
-O3Optimize yet more. (in the manual page but not in --help)man
-O0Reduce compilation time and make debugging produce the expected results. (in the manual page but not in --help)man
-OsOptimize for size. (in the manual page but not in --help)man
-falign-functions -falign-jumpsIt also enables -finline-functions, causes the compiler to tune for code size rather than execution speed, and performs further optimizations designed to reduce code size. (in the manual page but not in --help)man
-OfastDisregard strict standards compliance. (in the manual page but not in --help)man
-OgOptimize debugging experience. (in the manual page but not in --help)man
-fno-defer-popFor machines that must pop arguments after a function call, always pop the arguments as soon as each function returns. (in the manual page but not in --help)man
-fforward-propagatePerform a forward propagation pass on RTL. (in the manual page but not in --help)man
-ffp-contract style (in the manual page but not in --help)man
-fomit-frame-pointerOmit the frame pointer in functions that don't need one. (in the manual page but not in --help)man
-foptimize-sibling-callsOptimize sibling and tail recursive calls. (in the manual page but not in --help)man
-foptimize-strlenOptimize various standard C string functions (e.g. "strlen", "strchr" or "strcpy") and their "_FORTIFY_SOURCE" counterparts into faster alternatives. (in the manual page but not in --help)man
-fno-inlineDo not expand any functions inline apart from those marked with the "always_inline" attribute. (in the manual page but not in --help)man
-finline-small-functionsIntegrate functions into their callers when their body is smaller than expected function call code (so overall size of program gets smaller). (in the manual page but not in --help)man
-findirect-inliningInline also indirect calls that are discovered to be known at compile time thanks to previous inlining. (in the manual page but not in --help)man
-finline-functionsConsider all functions for inlining, even if they are not declared inline. (in the manual page but not in --help)man
-finline-functions-called-onceConsider all "static" functions called once for inlining into their caller even if they are not marked "inline". (in the manual page but not in --help)man
-fearly-inliningInline functions marked by "always_inline" and functions whose body seems smaller than the function call overhead early before doing -fprofile-generate instrumentation and real inlining pass. (in the manual page but not in --help)man
-fipa-sraPerform interprocedural scalar replacement of aggregates, removal of unused parameters and replacement of parameters passed by reference by parameters passed by value. (in the manual page but not in --help)man
-finline-limit nBy default, GCC limits the size of functions that can be inlined. (in the manual page but not in --help)man
-fno-keep-inline-dllexportThis is a more fine-grained version of -fkeep-inline-functions, which applies only to functions that are declared using the "dllexport" attribute or declspec. (in the manual page but not in --help)man
-fkeep-inline-functionsIn C, emit "static" functions that are declared "inline" into the object file, even if the function has been inlined into all of its callers. (in the manual page but not in --help)man
-fkeep-static-functionsEmit "static" functions into the object file, even if the function is never used. (in the manual page but not in --help)man
-fkeep-static-constsEmit variables declared "static const" when optimization isn't turned on, even if the variables aren't referenced. (in the manual page but not in --help)man
-fmerge-constantsAttempt to merge identical constants (string constants and floating-point constants) across compilation units. (in the manual page but not in --help)man
-fmerge-all-constantsAttempt to merge identical constants and identical variables. (in the manual page but not in --help)man
-fmodulo-schedPerform swing modulo scheduling immediately before the first scheduling pass. (in the manual page but not in --help)man
-fmodulo-sched-allow-regmovesPerform more aggressive SMS-based modulo scheduling with register moves allowed. (in the manual page but not in --help)man
-fno-branch-count-regDisable the optimization pass that scans for opportunities to use "decrement and branch" instructions on a count register instead of instruction sequences that decrement a register, compare it… (in the manual page but not in --help)man
-fno-function-cseDo not put function addresses in registers; (in the manual page but not in --help)man
-fno-zero-initialized-in-bssIf the target supports a BSS section, GCC by default puts variables that are initialized to zero into BSS. (in the manual page but not in --help)man
-fthread-jumpsPerform optimizations that check to see if a jump branches to a location where another comparison subsumed by the first is found. (in the manual page but not in --help)man
-fsplit-wide-typesWhen using a type that occupies multiple registers, such as "long long" on a 32-bit system, split the registers apart and allocate them independently. (in the manual page but not in --help)man
-fsplit-wide-types-earlyFully split wide types early, instead of very late. (in the manual page but not in --help)man
-fcse-follow-jumpsIn common subexpression elimination (CSE), scan through jump instructions when the target of the jump is not reached by any other path. (in the manual page but not in --help)man
-fcse-skip-blocksThis is similar to -fcse-follow-jumps, but causes CSE to follow jumps that conditionally skip over blocks. (in the manual page but not in --help)man
-frerun-cse-after-loopRe-run common subexpression elimination after loop optimizations are performed. (in the manual page but not in --help)man
-fgcsePerform a global common subexpression elimination pass. (in the manual page but not in --help)man
-fgcse-lmWhen -fgcse-lm is enabled, global common subexpression elimination attempts to move loads that are only killed by stores into themselves. (in the manual page but not in --help)man
-fgcse-smWhen -fgcse-sm is enabled, a store motion pass is run after global common subexpression elimination. (in the manual page but not in --help)man
-fgcse-lasWhen -fgcse-las is enabled, the global common subexpression elimination pass eliminates redundant loads that come after stores to the same memory location (both partial and full redundancies). (in the manual page but not in --help)man
-fgcse-after-reloadWhen -fgcse-after-reload is enabled, a redundant load elimination pass is performed after reload. (in the manual page but not in --help)man
-faggressive-loop-optimizationsThis option tells the loop optimizer to use language constraints to derive bounds for the number of iterations of a loop. (in the manual page but not in --help)man
-funconstrained-commonsThis option tells the compiler that variables declared in common blocks (e.g. Fortran) may later be overridden with longer trailing arrays. (in the manual page but not in --help)man
-fcrossjumpingPerform cross-jumping transformation. (in the manual page but not in --help)man
-fauto-inc-decCombine increments or decrements of addresses with memory accesses. (in the manual page but not in --help)man
-fdcePerform dead code elimination (DCE) on RTL. (in the manual page but not in --help)man
-fdsePerform dead store elimination (DSE) on RTL. (in the manual page but not in --help)man
-fif-conversionAttempt to transform conditional jumps into branch-less equivalents. (in the manual page but not in --help)man
-fif-conversion2Use conditional execution (where available) to transform conditional jumps into branch-less equivalents. (in the manual page but not in --help)man
-fdeclone-ctor-dtorThe C++ ABI requires multiple entry points for constructors and destructors: one for a base subobject, one for a complete object, and one for a virtual destructor that calls operator delete… (in the manual page but not in --help)man
-fdelete-null-pointer-checksAssume that programs cannot safely dereference null pointers, and that no code or data element resides at address zero. (in the manual page but not in --help)man
-fdevirtualizeAttempt to convert calls to virtual functions to direct calls. (in the manual page but not in --help)man
-fdevirtualize-speculativelyAttempt to convert calls to virtual functions to speculative direct calls. (in the manual page but not in --help)man
-fdevirtualize-at-ltransStream extra information needed for aggressive devirtualization when running the link-time optimizer in local transformation mode. (in the manual page but not in --help)man
-fexpensive-optimizationsPerform a number of minor optimizations that are relatively expensive. (in the manual page but not in --help)man
-freeAttempt to remove redundant extension instructions. (in the manual page but not in --help)man
-fno-lifetime-dseIn C++ the value of an object is only affected by changes within its lifetime: when the constructor begins, the object has an indeterminate value, and any changes during the lifetime of the object… (in the manual page but not in --help)man
-flive-range-shrinkageAttempt to decrease register pressure through register live range shrinkage. (in the manual page but not in --help)man
-fira-algorithm algorithmUse the specified coloring algorithm for the integrated register allocator. (in the manual page but not in --help)man
-fira-region regionUse specified regions for the integrated register allocator. (in the manual page but not in --help)man
-fira-hoist-pressureUse IRA to evaluate register pressure in the code hoisting pass for decisions to hoist expressions. (in the manual page but not in --help)man
-fira-loop-pressureUse IRA to evaluate register pressure in loops for decisions to move loop invariants. (in the manual page but not in --help)man
-fno-ira-share-save-slotsDisable sharing of stack slots used for saving call-used hard registers living through a call. (in the manual page but not in --help)man
-fno-ira-share-spill-slotsDisable sharing of stack slots allocated for pseudo-registers. (in the manual page but not in --help)man
-flra-rematEnable CFG-sensitive rematerialization in LRA. (in the manual page but not in --help)man
-fdelayed-branchIf supported for the target machine, attempt to reorder instructions to exploit instruction slots available after delayed branch instructions. (in the manual page but not in --help)man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.