代码编织梦想

使用g++ -v --help可以列出g++的所有可选项
当然脚本最香了

g++ -v --help >> lionel.txt
Usage: g++ [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.
  --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 g++.  In order to pass
 other options on to these processes the -W<letter> options must be used.

The following options are specific to just the language Ada:
  -fbuiltin-printf            Ignored.

The following options are specific to just the language AdaSCIL:
 None found.  Use --help=AdaSCIL to show *all* the options supported by the AdaSCIL front-end.

The following options are specific to just the language AdaWhy:
 None found.  Use --help=AdaWhy to show *all* the options supported by the AdaWhy front-end.

The following options are specific to just the language BRIG:
  -fassume-phsa               Assume we are finalizing for phsa and its libhsail-rt.  Enables additional phsa-specific optimizations (default).

The following options are specific to just the language C:
  -fgimple                    Enable parsing GIMPLE.

The following options are specific to just the language C++:
  -Wplacement-new             Warn for placement new expressions with undefined behavior.  Same as -Wplacement-new=.
  -Wplacement-new=<0,2>       Warn for placement new expressions with undefined behavior.

The following options are specific to just the language D:
  -Hd <dir>                   Write D interface files to directory <dir>.
  -Hf <file>                  Write D interface to <file>.
  -Wcast-result               Warn about casts that will produce a null result.
  -Wspeculative               Warn from speculative compiles such as __traits(compiles).
  -X                          Generate JSON file.
  -Xf <file>                  Write JSON output to the given <file>.
  -fall-instantiations        Generate code for all template instantiations.
  -fassert                    Generate code for assert contracts.
  -fbounds-check              Generate code to check bounds before indexing arrays.
  -fbounds-check=[on|safeonly|off] Turn array bounds checks on, in @safe code only, or off.
  -fbuilding-libphobos-tests  This option lacks documentation.
  -fdebug                     Compile in debug code.
  -fdebug=<level|ident>       Compile in debug code, code <= <level>, or code identified by <ident>.
  -fdoc                       Generate documentation.
  -fdoc-dir=<dir>             Write documentation file to directory <dir>.
  -fdoc-file=<file>           Write documentation to <file>.
  -fdoc-inc=<file>            Include a Ddoc macro <file>.
  -fdruntime                  Assume that standard D runtime libraries and "D main" exist.
  -fdump-d-original           Display the frontend AST after parsing and semantic passes.
  -fignore-unknown-pragmas    Ignore unsupported pragmas.
  -finvariants                Generate code for class invariant contracts.
  -fmain                      Generate a default D main() function when compiling.
  -fmodule-file=<package.module>=<filespec> use <filespec> as source file for <package.module>.
  -fmoduleinfo                Generate ModuleInfo struct for output module.
  -fonly=                     Process all modules specified on the command line, but only generate code for the module specified by the argument.
  -fpostconditions            Generate code for postcondition contracts.
  -fpreconditions             Generate code for precondition contracts.
  -frelease                   Compile release version.
  -fswitch-errors             Generate code for switches without a default case.
  -ftransition=all            List information on all language changes.
  -ftransition=checkimports   Give deprecation messages about -ftransition=import anomalies.
  -ftransition=complex        List all usages of complex or imaginary types.
  -ftransition=dip1000        Implement DIP1000: Scoped pointers (experimental).
  -ftransition=dip25          Implement DIP25: Sealed references (experimental).
  -ftransition=field          List all non-mutable fields which occupy an object instance.
  -ftransition=import         Revert to single phase name lookup.
  -ftransition=nogc           List all hidden GC allocations.
  -ftransition=tls            List all variables going into thread local storage.
  -funittest                  Compile in unittest code.
  -fversion=<level|ident>     Compile in version code >= <level> or identified by <ident>.

The following options are specific to just the language Fortran:
  -Waliasing                  Warn about possible aliasing of dummy arguments.
  -Walign-commons             Warn about alignment of COMMON blocks.
  -Wampersand                 Warn about missing ampersand in continued character constants.
  -Wargument-mismatch         Warn about type and rank mismatches between arguments and parameters.
  -Warray-temporaries         Warn about creation of array temporaries.
  -Wc-binding-type            Warn if the type of a variable might be not interoperable with C.
  -Wcharacter-truncation      Warn about truncated character expressions.
  -Wcompare-reals             Warn about equality comparisons involving REAL or COMPLEX expressions.
  -Wconversion-extra          Warn about most implicit conversions.
  -Wdo-subscript              Warn about possibly incorrect subscripts in do loops.
  -Wfrontend-loop-interchange Warn if loops have been interchanged.
  -Wfunction-elimination      Warn about function call elimination.
  -Wimplicit-interface        Warn about calls with implicit interface.
  -Wimplicit-procedure        Warn about called procedures not explicitly declared.
  -Winteger-division          Warn about constant integer divisions with truncated results.
  -Wintrinsic-shadow          Warn if a user-procedure has the same name as an intrinsic.
  -Wintrinsics-std            Warn on intrinsics not part of the selected standard.
  -Wline-truncation           Warn about truncated source lines.
  -Wreal-q-constant           Warn about real-literal-constants with 'q' exponent-letter.
  -Wrealloc-lhs               Warn when a left-hand-side array variable is reallocated.
  -Wrealloc-lhs-all           Warn when a left-hand-side variable is reallocated.
  -Wsurprising                Warn about "suspicious" constructs.
  -Wtabs                      Permit nonconforming uses of the tab character.
  -Wtarget-lifetime           Warn if the pointer in a pointer assignment might outlive its target.
  -Wundefined-do-loop         Warn about an invalid DO loop.
  -Wunderflow                 Warn about underflow of numerical constant expressions.
  -Wunused-dummy-argument     Warn about unused dummy arguments.
  -Wuse-without-only          Warn about USE statements that have no ONLY qualifier.
  -Wzerotrip                  Warn about zero-trip DO loops.
  -cpp                        Enable preprocessing.
  -cpp=                       This option lacks documentation.
  -faggressive-function-elimination Eliminate multiple function invocations also for impure functions.
  -falign-commons             Enable alignment of COMMON blocks.
  -fall-intrinsics            All intrinsics procedures are available regardless of selected standard.
  -fallow-leading-underscore  This option lacks documentation.
  -fautomatic                 Do not treat local variables and COMMON blocks as if they were named in SAVE statements.
  -fbackslash                 Specify that backslash in string introduces an escape character.
  -fbacktrace                 Produce a backtrace when a runtime error is encountered.
  -fblas-matmul-limit=<n>     Size of the smallest matrix for which matmul will use BLAS.
  -fc-prototypes              Generate C prototypes from BIND(C) declarations.
  -fc-prototypes-external     Generate C prototypes from non-BIND(C) external procedure definitions.
  -fcheck-array-temporaries   Produce a warning at runtime if a array temporary has been created for a procedure argument.
  -fcheck=[...]               Specify which runtime checks are to be performed.
  -fcoarray=<none|single|lib> Specify which coarray parallelization should be used.
  -fconvert=                  -fconvert=<big-endian|little-endian|native|swap> The endianness used for unformatted files.
  -fcray-pointer              Use the Cray Pointer extension.
  -fd-lines-as-code           Ignore 'D' in column one in fixed form.
  -fd-lines-as-comments       Treat lines with 'D' in column one as comments.
  -fdec                       Enable all DEC language extensions.
  -fdec-include               Enable legacy parsing of INCLUDE as statement.
  -fdec-intrinsic-ints        Enable kind-specific variants of integer intrinsic functions.
  -fdec-math                  Enable legacy math intrinsics for compatibility.
  -fdec-static                Enable DEC-style STATIC and AUTOMATIC attributes.
  -fdec-structure             Enable support for DEC STRUCTURE/RECORD.
  -fdefault-double-8          Set the default double precision kind to an 8 byte wide type.
  -fdefault-integer-8         Set the default integer kind to an 8 byte wide type.
  -fdefault-real-10           Set the default real kind to an 10 byte wide type.
  -fdefault-real-16           Set the default real kind to an 16 byte wide type.
  -fdefault-real-8            Set the default real kind to an 8 byte wide type.
  -fdollar-ok                 Allow dollar signs in entity names.
  -fdump-core                 Does nothing. Preserved for backward compatibility.
  -fdump-fortran-global       Display the global symbol table after parsing.
  -fdump-fortran-optimized    Display the code tree after front end optimization.
  -fdump-fortran-original     Display the code tree after parsing.
  -fdump-parse-tree           Display the code tree after parsing; deprecated option.  Same as -fdump-fortran-original.
  -fexternal-blas             Specify that an external BLAS library should be used for matmul calls on large-size arrays.
  -ff2c                       Use f2c calling convention.
  -ffixed-form                Assume that the source file is fixed form.
  -ffixed-line-length-<n>     Use n as character line width in fixed mode.
  -ffixed-line-length-none    Allow arbitrary character line width in fixed mode.
  -ffpe-summary=[...]         Print summary of floating point exceptions.
  -ffpe-trap=[...]            Stop on following floating point exceptions.
  -ffree-form                 Assume that the source file is free form.
  -ffree-line-length-<n>      Use n as character line width in free mode.
  -ffree-line-length-none     Allow arbitrary character line width in free mode.
  -ffrontend-loop-interchange Try to interchange loops if profitable.
  -ffrontend-optimize         Enable front end optimization.
  -fimplicit-none             Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements.
  -finit-character=<n>        Initialize local character variables to ASCII value n.
  -finit-derived              Initialize components of derived type variables according to other init flags.
  -finit-integer=<n>          Initialize local integer variables to n.
  -finit-local-zero           Initialize local variables to zero (from g77).
  -finit-logical=<true|false> Initialize local logical variables.
  -finit-real=<zero|snan|nan|inf|-inf> Initialize local real variables.
  -finline-matmul-limit=<n>   Specify the size of the largest matrix for which matmul will be inlined.
  -finteger-4-integer-8       Interpret any INTEGER(4) as an INTEGER(8).
  -fintrinsic-modules-path    Specify where to find the compiled intrinsic modules.
  -fintrinsic-modules-path=   Specify where to find the compiled intrinsic modules.
  -fmax-array-constructor=<n> Maximum number of objects in an array constructor.
  -fmax-identifier-length=<n> Maximum identifier length.
  -fmax-stack-var-size=<n>    Size in bytes of the largest array that will be put on the stack.
  -fmax-subrecord-length=<n>  Maximum length for subrecords.
  -fmodule-private            Set default accessibility of module entities to PRIVATE.
  -fpack-derived              Try to lay out derived types as compactly as possible.
  -fpad-source                Pad shorter fixed form lines to line width with spaces.
  -fpre-include=              Path to header file that should be pre-included before each compilation unit.
  -fprotect-parens            Protect parentheses in expressions.
  -frange-check               Enable range checking during compilation.
  -freal-4-real-10            Interpret any REAL(4) as a REAL(10).
  -freal-4-real-16            Interpret any REAL(4) as a REAL(16).
  -freal-4-real-8             Interpret any REAL(4) as a REAL(8).
  -freal-8-real-10            Interpret any REAL(8) as a REAL(10).
  -freal-8-real-16            Interpret any REAL(8) as a REAL(16).
  -freal-8-real-4             Interpret any REAL(8) as a REAL(4).
  -frealloc-lhs               Reallocate the LHS in assignments.
  -frecord-marker=4           Use a 4-byte record marker for unformatted files.
  -frecord-marker=8           Use an 8-byte record marker for unformatted files.
  -frecursive                 Allocate local variables on the stack to allow indirect recursion.
  -frepack-arrays             Copy array sections into a contiguous block on procedure entry.
  -fsecond-underscore         Append a second underscore if the name already contains an underscore.
  -fsign-zero                 Apply negative sign to zero values.
  -fstack-arrays              Put all local arrays on stack.
  -ftail-call-workaround      Same as -ftail-call-workaround=.  Use the latter option instead.
  -ftail-call-workaround=<0,2> Disallow tail call optimization when a calling routine may have omitted character lengths.
  -ftest-forall-temp          Force creation of temporary to test infrequently-executed forall code.
  -funderscoring              Append underscores to externally visible names.
  -fwhole-file                Does nothing.  Preserved for backward compatibility.
  -nocpp                      Disable preprocessing.
  -static-libgfortran         Statically link the GNU Fortran helper library (libgfortran).
  -std=f2003                  Conform to the ISO Fortran 2003 standard.
  -std=f2008                  Conform to the ISO Fortran 2008 standard.
  -std=f2008ts                Conform to the ISO Fortran 2008 standard including TS 29113.
  -std=f2018                  Conform to the ISO Fortran 2018 standard.
  -std=f95                    Conform to the ISO Fortran 95 standard.
  -std=gnu                    Conform to nothing in particular.
  -std=legacy                 Accept extensions to support legacy code.

The following options are specific to just the language Go:
  -fgo-c-header=<file>        Write Go struct definitions to file as C code.
  -fgo-check-divide-overflow  Add explicit checks for division overflow in INT_MIN / -1.
  -fgo-check-divide-zero      Add explicit checks for division by zero.
  -fgo-compiling-runtime      Apply special rules for compiling runtime package.
  -fgo-debug-escape           Emit debugging information related to the escape analysis pass when run with -fgo-optimize-allocs.
  -fgo-debug-escape-hash=<string> Hash value to debug escape analysis.
  -fgo-dump-<type>            Dump Go frontend internal information.
  -fgo-optimize-<type>        Turn on optimization passes in the frontend.
  -fgo-pkgpath=<string>       Set Go package path.
  -fgo-prefix=<string>        Set package-specific prefix for exported Go names.
  -fgo-relative-import-path=<path> Treat a relative import as relative to path.
  -frequire-return-statement  Functions which return values must end with return statements.

The following options are specific to just the language LTO:
  -flinker-output=            Set linker output type (used internally during LTO optimization).
  -fltrans                    Run the link-time optimizer in local transformation (LTRANS) mode.
  -fltrans-output-list=       Specify a file to which a list of files output by LTRANS is written.
  -fresolution=               The resolution file.
  -fwpa                       Run the link-time optimizer in whole program analysis (WPA) mode.
  -fwpa=                      Whole program analysis (WPA) mode with number of parallel jobs specified.

The following options are specific to just the language Modula-2:
  -O<number>                  Set optimization level to <number>.
  -Wpedantic-cast             compiler warns if a cast is being used on types of differing sizes
  -Wpedantic-param-names      compiler checks to force definition module procedure parameter names with their implementation module counterpart
  -Wstudents                  extra compile time semantic checking, typically tries to catch bad style
  -Wunused-parameter          Warn when a function parameter is unused.
  -Wverbose-unbounded         inform user which parameters will be passed by reference
  -fbounds                    turns on runtime subrange, array index and indirection via NIL pointer checking
  -fcase                      turns on runtime checking to check whether a CASE statement requires an ELSE clause when on was not specified
  -fclean                     cleans all the project objects in the current directory using make
  -fcpp                       use cpp to preprocess the module
  -fcppbegin                  passed to the preprocessor if -fcpp is used
  -fcppend                    passed to the preprocessor if -fcpp is used
  -fcppprog=                  passed to the preprocessor if -fcpp is used
  -fd                         turn on internal debugging of the compiler
  -fdebug-builtins            call a real function, rather than the builtin equivalent
  -fdebug-function-line-numbers turn on the Modula-2 function line number generation (internal switch)
  -fdebug-trace-api           turn on the Modula-2 api tracing (internal switch)
  -fdebug-trace-quad          turn on quadruple tracing (internal switch)
  -fdef=                      recognise the specified suffix as a definition module filename
  -fdump-system-exports       display all inbuilt system items
  -fexceptions                Enable exception handling.
  -fextended-opaque           allows opaque types to be implemented as any type (a GNU Modula-2 extension)
  -ffloatvalue                turns on runtime checking to check whether a floating point number is about to exceed range
  -fgm2-version               display the GNU Modula-2 version
  -findex                     turns on all range checking for numerical values
  -fiso                       use ISO dialect of Modula-2
  -flibs=                     specify the library order, currently legal entries include: logitech, min, pim-coroutine, ulm, iso
  -flocation=                 set all location values to a specific value (internal)
  -fm2-g                      generate extra nops to improve debugging, producing an instruction for every code related keyword
  -fm2-lower-case             generate error messages which render keywords in lower case
  -fm2-plugin                 insert plugin to identify runtime errors at compiletime
  -fm2-statistics             display statistics about the amount of source lines compiled and symbols used
  -fm2-whole-program          compile all implementation modules and program module at once
  -fmake-I=                   build project path (internal)
  -fmakeall                   build a project using make
  -fmakeall0                  do not build a project using make (internal)
  -fmakeinit                  generate the start up C code for the module, a file _m2_modulename.c is created
  -fmakelist                  created ordered list of modules
  -fmod=                      recognise the specified suffix as implementation and module filenames
  -fmodules                   display list of modules and location
  -fnil                       turns on runtime checking to detect accessing data through a NIL value pointer
  -fno-m2-plugin              do not insert plugin to identify runtime errors at compiletime
  -fno-pth                    do not link against the pth library
  -fobject-path=              set the object path
  -fonlylink                  only link the module and do not compile module
  -fpim                       use PIM [234] dialect of Modula-2
  -fpim2                      use PIM 2 dialect of Modula-2
  -fpim3                      use PIM 3 dialect of Modula-2
  -fpim4                      use PIM 4 dialect of Modula-2
  -fpositive-mod-floor-div    force positive result from MOD and DIV result floor
  -fq                         internal compiler debugging information, dump the list of quadruples
  -frange                     turns on all range checking for numerical values
  -freturn                    turns on runtime checking for functions which finish without executing a RETURN statement
  -fruntime-modules=          specify the list of runtime modules and their initialization order
  -fshared                    generate a shared library from the module
  -fsoft-check-all            turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholediv -ffloatvalue)
  -fsources                   display the location of module source files as they are compiled
  -fswig                      create a swig interface file for the module
  -ftarget-ar=                full path to target archiver
  -ftarget-ranlib=            full path to target ranlib
  -funbounded-by-reference    optimize non var unbounded parameters by passing it by reference, providing it is not written to within the callee procedure.
  -fuselist                   use ordered list of modules when linking
  -fversion                   display the GNU Modula-2 version
  -fwholediv                  turns on all division and modulus by zero checking for ordinal values
  -fwholevalue                turns on runtime checking to check whether a whole number is about to exceed range
  -fxcode                     issue all errors and warnings in the Xcode format
  -version                    Display the compiler's version.
  -x                          specify the language from the compiler driver

The following options are specific to just the language ObjC:
 None found.  Use --help=ObjC to show *all* the options supported by the ObjC front-end.

The following options are specific to just the language ObjC++:
  -fobjc-call-cxx-cdtors      Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.

The following options are language-related:
  --all-warnings              Same as -Wall.  Use the latter option instead.
  --ansi                      Same as -ansi.  Use the latter option instead.
  --assert                    Same as -A.  Use the latter option instead.
  --assert=                   Same as -A.  Use the latter option instead.
  --comments                  Same as -C.  Use the latter option instead.
  --comments-in-macros        Same as -CC.  Use the latter option instead.
  --define-macro              Same as -D.  Use the latter option instead.
  --define-macro=             Same as -D.  Use the latter option instead.
  --dependencies              Same as -M.  Use the latter option instead.
  --dump                      Same as -d.  Use the latter option instead.
  --dump=                     Same as -d.  Use the latter option instead.
  --imacros                   Same as -imacros.  Use the latter option instead.
  --imacros=                  Same as -imacros.  Use the latter option instead.
  --include                   Same as -include.  Use the latter option instead.
  --include-barrier           Same as -I.  Use the latter option instead.
  --include-directory         Same as -I.  Use the latter option instead.
  --include-directory-after   Same as -idirafter.  Use the latter option instead.
  --include-directory-after=  Same as -idirafter.  Use the latter option instead.
  --include-directory=        Same as -I.  Use the latter option instead.
  --include-prefix            Same as -iprefix.  Use the latter option instead.
  --include-prefix=           Same as -iprefix.  Use the latter option instead.
  --include-with-prefix       Same as -iwithprefix.  Use the latter option instead.
  --include-with-prefix-after Same as -iwithprefix.  Use the latter option instead.
  --include-with-prefix-after= Same as -iwithprefix.  Use the latter option instead.
  --include-with-prefix-before Same as -iwithprefixbefore.  Use the latter option instead.
  --include-with-prefix-before= Same as -iwithprefixbefore.  Use the latter option instead.
  --include-with-prefix=      Same as -iwithprefix.  Use the latter option instead.
  --include=                  Same as -include.  Use the latter option instead.
  --no-line-commands          Same as -P.  Use the latter option instead.
  --no-standard-includes      Same as -nostdinc.  Use the latter option instead.
  --no-standard-libraries     Same as -nostdlib.  Use the latter option instead.
  --no-warnings               Same as -w.  Use the latter option instead.
  --output                    Same as -o.  Use the latter option instead.
  --output-pch=               This option lacks documentation.
  --output=                   Same as -o.  Use the latter option instead.
  --pedantic                  Same as -Wpedantic.  Use the latter option instead.
  --preprocess                Same as -E.  Use the latter option instead.
  --print-missing-file-dependencies Same as -MG.  Use the latter option instead.
  --trace-includes            Same as -H.  Use the latter option instead.
  --traditional-cpp           Same as -traditional-cpp.  Use the latter option instead.
  --trigraphs                 Same as -trigraphs.  Use the latter option instead.
  --undefine-macro            Same as -U.  Use the latter option instead.
  --undefine-macro=           Same as -U.  Use the latter option instead.
  --user-dependencies         Same as -MM.  Use the latter option instead.
  --verbose                   Same as -v.  Use the latter option instead.
  --write-dependencies        Same as -MD.  Use the latter option instead.
  --write-user-dependencies   Same as -MMD.  Use the latter option instead.
  -A<question>=<answer>       Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>.
  -C                          Do not discard comments.
  -CC                         Do not discard comments in macro expansions.
  -D<macro>[=<val>]           Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1.
  -E                          passed to the preprocessor if -fcpp is used
  -F <dir>                    Add <dir> to the end of the main framework include path.
  -H                          Print the name of header files as they are used.
  -I <dir>                    Add <dir> to the end of the main include path.
  -J<directory>               Put MODULE files in 'directory'.
  -L                          This option lacks documentation.
  -M                          Generate make dependencies.
  -MD                         Generate make dependencies and compile.
  -MF <file>                  Write dependency output to the given file.
  -MG                         Treat missing header files as generated files.
  -MM                         Like -M but ignore system header files.
  -MMD                        Like -MD but ignore system header files.
  -MP                         Generate phony targets for all headers.
  -MQ <target>                Add a MAKE-quoted target.
  -MT <target>                Add an unquoted target.
  -P                          Do not generate #line directives.
  -U<macro>                   Undefine <macro>.
  -Wabi                       Warn about things that will change when compiling with an ABI-compliant compiler.
  -Wabi-tag                   Warn if a subobject has an abi_tag attribute that the complete object type does not have.
  -Wabi=                      Warn about things that change between the current -fabi-version and the specified version.
  -Wabsolute-value            Warn on suspicious calls of standard functions computing absolute values.
  -Waddress                   Warn about suspicious uses of memory addresses.
  -Waddress-of-packed-member  Warn when the address of packed member of struct or union is taken.
  -Waligned-new               Warn about 'new' of type with extended alignment without -faligned-new.  Same as -Waligned-new=.
  -Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
  -Wall                       Enable most warning messages.
  -Walloc-size-larger-than=   -Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that attempt to allocate objects larger than the specified number of bytes.
  -Walloc-zero                -Walloc-zero Warn for calls to allocation functions that specify zero bytes.
  -Walloca                    Warn on any use of alloca.
  -Walloca-larger-than=<number> Warn on unbounded uses of alloca, and on bounded uses of alloca whose bound can be larger than <number> bytes.
  -Wassign-intercept          Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
  -Wbad-function-cast         Warn about casting functions to incompatible types.
  -Wbool-compare              Warn about boolean expression compared with an integer value different from true/false.
  -Wbool-operation            Warn about certain operations on boolean expressions.
  -Wbuiltin-declaration-mismatch Warn when a built-in function is declared with the wrong signature.
  -Wbuiltin-macro-redefined   Warn when a built-in preprocessor macro is undefined or redefined.
  -Wc++-compat                Warn about C constructs that are not in the common subset of C and C++.
  -Wc++0x-compat              Same as -Wc++11-compat.  Use the latter option instead.
  -Wc++11-compat              Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
  -Wc++14-compat              Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
  -Wc++17-compat              Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
  -Wc++1z-compat              Same as -Wc++17-compat.  Use the latter option instead.
  -Wc11-c2x-compat            Warn about features not present in ISO C11, but present in ISO C2X.
  -Wc90-c99-compat            Warn about features not present in ISO C90, but present in ISO C99.
  -Wc99-c11-compat            Warn about features not present in ISO C99, but present in ISO C11.
  -Wcast-function-type        Warn about casts between incompatible function types.
  -Wcast-qual                 Warn about casts which discard qualifiers.
  -Wcatch-value               Warn about catch handlers of non-reference type.  Same as -Wcatch-value=.
  -Wcatch-value=<0,3>         Warn about catch handlers of non-reference type.
  -Wchar-subscripts           Warn about subscripts whose type is "char".
  -Wchkp                      Deprecated in GCC 9.  This switch has no effect.
  -Wclass-conversion          Warn when a conversion function will never be called due to the type it converts to.
  -Wclass-memaccess           Warn for unsafe raw memory writes to objects of class types.
  -Wclobbered                 Warn about variables that might be changed by "longjmp" or "vfork".
  -Wcomment                   Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
  -Wcomments                  Synonym for -Wcomment.  Same as -Wcomment.
  -Wconditionally-supported   Warn for conditionally-supported constructs.
  -Wconversion                Warn for implicit type conversions that may change a value.
  -Wconversion-null           Warn for converting NULL from/to a non-pointer type.
  -Wcpp                       Warn when a #warning directive is encountered.
  -Wctor-dtor-privacy         Warn when all constructors and destructors are private.
  -Wdangling-else             Warn about dangling else.
  -Wdate-time                 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
  -Wdeclaration-after-statement Warn when a declaration is found after a statement.
  -Wdelete-incomplete         Warn when deleting a pointer to incomplete type.
  -Wdelete-non-virtual-dtor   Warn about deleting polymorphic objects with non-virtual destructors.
  -Wdeprecated                Warn if a deprecated compiler feature, class, method, or field is used.
  -Wdeprecated-copy           Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation.
  -Wdeprecated-copy-dtor      Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation or destructor.
  -Wdesignated-init           Warn about positional initialization of structs requiring designated initializers.
  -Wdiscarded-array-qualifiers Warn if qualifiers on arrays which are pointer targets are discarded.
  -Wdiscarded-qualifiers      Warn if type qualifiers on pointers are discarded.
  -Wdiv-by-zero               Warn about compile-time integer division by zero.
  -Wdouble-promotion          Warn about implicit conversions from "float" to "double".
  -Wduplicate-decl-specifier  Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
  -Wduplicated-branches       Warn about duplicated branches in if-else statements.
  -Wduplicated-cond           Warn about duplicated conditions in an if-else-if chain.
  -Weffc++                    Warn about violations of Effective C++ style rules.
  -Wempty-body                Warn about an empty body in an if or else statement.
  -Wendif-labels              Warn about stray tokens after #else and #endif.
  -Wenum-compare              Warn about comparison of different enum types.
  -Werror                     Treat all warnings as errors.
  -Werror-implicit-function-declaration This switch is deprecated; use -Werror=implicit-function-declaration instead.  Same as -Werror=.
  -Wexpansion-to-defined      Warn if "defined" is used outside #if.
  -Wextra                     Print extra (possibly unwanted) warnings.
  -Wextra-semi                Warn about semicolon after in-class function definition.
  -Wfloat-conversion          Warn for implicit type conversions that cause loss of floating point precision.
  -Wfloat-equal               Warn if testing floating point numbers for equality.
  -Wformat                    Warn about printf/scanf/strftime/strfmon format string anomalies.  Same as -Wformat=.
  -Wformat-contains-nul       Warn about format strings that contain NUL bytes.
  -Wformat-extra-args         Warn if passing too many arguments to a function for its format string.
  -Wformat-nonliteral         Warn about format strings that are not literals.
  -Wformat-overflow<0,2>      Warn about function calls with format strings that write past the end of the destination region.  Same as -Wformat-overflow=1.  Same as -Wformat-overflow=.
  -Wformat-overflow=<0,2>     Warn about function calls with format strings that write past the end of the destination region.
  -Wformat-security           Warn about possible security problems with format functions.
  -Wformat-signedness         Warn about sign differences with format functions.
  -Wformat-truncation         Warn about calls to snprintf and similar functions that truncate output. Same as -Wformat-truncation=1.  Same as -Wformat-truncation=.
  -Wformat-truncation=<0,2>   Warn about calls to snprintf and similar functions that truncate output.
  -Wformat-y2k                Warn about strftime formats yielding 2-digit years.
  -Wformat-zero-length        Warn about zero-length formats.
  -Wformat=<0,2>              Warn about printf/scanf/strftime/strfmon format string anomalies.
  -Wframe-address             Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
  -Wif-not-aligned            Warn when the field in a struct is not aligned.
  -Wignored-attributes        Warn whenever attributes are ignored.
  -Wignored-qualifiers        Warn whenever type qualifiers are ignored.
  -Wimplicit                  Warn about implicit declarations.
  -Wimplicit-function-declaration Warn about implicit function declarations.
  -Wimplicit-int              Warn when a declaration does not specify a type.
  -Wimport                    This option lacks documentation.
  -Wincompatible-pointer-types Warn when there is a conversion between pointers that have incompatible types.
  -Winherited-variadic-ctor   Warn about C++11 inheriting constructors when the base has a variadic constructor.
  -Winit-list-lifetime        Warn about uses of std::initializer_list that can result in dangling pointers.
  -Winit-self                 Warn about variables which are initialized to themselves.
  -Wint-conversion            Warn about incompatible integer to pointer and pointer to integer conversions.
  -Wint-in-bool-context       Warn for suspicious integer expressions in boolean context.
  -Wint-to-pointer-cast       Warn when there is a cast to a pointer from an integer of a different size.
  -Winvalid-offsetof          Warn about invalid uses of the "offsetof" macro.
  -Winvalid-pch               Warn about PCH files that are found but not used.
  -Wjump-misses-init          Warn when a jump misses a variable initialization.
  -Wliteral-suffix            Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
  -Wlogical-not-parentheses   Warn when logical not is used on the left hand side operand of a comparison.
  -Wlogical-op                Warn when a logical operator is suspiciously always evaluating to true or false.
  -Wlong-long                 Do not warn about using "long long" when -pedantic.
  -Wmain                      Warn about suspicious declarations of "main".
  -Wmaybe-uninitialized       Warn about maybe uninitialized automatic variables.
  -Wmemset-elt-size           Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
  -Wmemset-transposed-args    Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
  -Wmisleading-indentation    Warn when the indentation of the code does not reflect the block structure.
  -Wmissing-attributes        Warn about declarations of entities that may be missing attributes that related entities have been declared with.
  -Wmissing-braces            Warn about possibly missing braces around initializers.
  -Wmissing-declarations      Warn about global functions without previous declarations.
  -Wmissing-field-initializers Warn about missing fields in struct initializers.
  -Wmissing-format-attribute  Same as -Wsuggest-attribute=format.  Use the latter option instead.
  -Wmissing-include-dirs      Warn about user-specified include directories that do not exist.
  -Wmissing-parameter-type    Warn about function parameters declared without a type specifier in K&R-style functions.
  -Wmissing-prototypes        Warn about global functions without prototypes.
  -Wmudflap                   This option lacks documentation.
  -Wmultichar                 Warn about use of multi-character character constants.
  -Wmultiple-inheritance      Warn on direct multiple inheritance.
  -Wmultistatement-macros     Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
  -Wnamespaces                Warn on namespace definition.
  -Wnarrowing                 Warn about narrowing conversions within { } that are ill-formed in C++11.
  -Wnested-externs            Warn about "extern" declarations not at file scope.
  -Wno-alloc-size-larger-than -Wno-alloc-size-larger-than Disable Walloc-size-larger-than= warning.  Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger.  Same as -Walloc-size-larger-than=.
  -Wno-alloca-larger-than     -Wno-alloca-larger-than Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.  Same as -Walloca-larger-than=.
  -Wno-vla-larger-than        -Wno-vla-larger-than Disable Wvla-larger-than= warning.  Equivalent to Wvla-larger-than=<SIZE_MAX> or larger.  Same as -Wvla-larger-than=.
  -Wnoexcept                  Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
  -Wnoexcept-type             Warn if C++17 noexcept function type will change the mangled name of a symbol.
  -Wnon-template-friend       Warn when non-templatized friend functions are declared within a template.
  -Wnon-virtual-dtor          Warn about non-virtual destructors.
  -Wnonnull                   Warn about NULL being passed to argument slots marked as requiring non-NULL.
  -Wnonnull-compare           Warn if comparing pointer parameter with nonnull attribute with NULL.
  -Wnormalized                Same as -Wnormalized=.  Use the latter option instead.
  -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
  -Wold-style-cast            Warn if a C-style cast is used in a program.
  -Wold-style-declaration     Warn for obsolescent usage in a declaration.
  -Wold-style-definition      Warn if an old-style parameter definition is used.
  -Wopenmp-simd               Warn if a simd directive is overridden by the vectorizer cost model.
  -Woverlength-strings        Warn if a string is longer than the maximum portable length specified by the standard.
  -Woverloaded-virtual        Warn about overloaded virtual function names.
  -Woverride-init             Warn about overriding initializers without side effects.
  -Woverride-init-side-effects Warn about overriding initializers with side effects.
  -Wpacked-bitfield-compat    Warn about packed bit-fields whose offset changed in GCC 4.4.
  -Wpacked-not-aligned        Warn when fields in a struct with the packed attribute are misaligned.
  -Wparentheses               Warn about possibly missing parentheses.
  -Wpedantic                  Issue warnings needed for strict compliance to the standard.
  -Wpessimizing-move          Warn about calling std::move on a local object in a return statement preventing copy elision.
  -Wpmf-conversions           Warn when converting the type of pointers to member functions.
  -Wpointer-arith             Warn about function pointer arithmetic.
  -Wpointer-compare           Warn when a pointer is compared with a zero character constant.
  -Wpointer-sign              Warn when a pointer differs in signedness in an assignment.
  -Wpointer-to-int-cast       Warn when a pointer is cast to an integer of a different size.
  -Wpragmas                   Warn about misuses of pragmas.
  -Wprio-ctor-dtor            Warn if constructor or destructors with priorities from 0 to 100 are used.
  -Wproperty-assign-default   Warn if a property for an Objective-C object has no assign semantics specified.
  -Wprotocol                  Warn if inherited methods are unimplemented.
  -Wpsabi                     This option lacks documentation.
  -Wredundant-decls           Warn about multiple declarations of the same object.
  -Wredundant-move            Warn about redundant calls to std::move.
  -Wregister                  Warn about uses of register storage specifier.
  -Wreorder                   Warn when the compiler reorders code.
  -Wrestrict                  Warn when an argument passed to a restrict-qualified parameter aliases with another argument.
  -Wreturn-type               Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++).
  -Wscalar-storage-order      Warn on suspicious constructs involving reverse scalar storage order.
  -Wselector                  Warn if a selector has multiple methods.
  -Wsequence-point            Warn about possible violations of sequence point rules.
  -Wshadow-ivar               Warn if a local declaration hides an instance variable.
  -Wshift-count-negative      Warn if shift count is negative.
  -Wshift-count-overflow      Warn if shift count >= width of type.
  -Wshift-negative-value      Warn if left shifting a negative value.
  -Wshift-overflow            Warn if left shift of a signed value overflows.  Same as -Wshift-overflow=.
  -Wshift-overflow=<0,2>      Warn if left shift of a signed value overflows.
  -Wsign-compare              Warn about signed-unsigned comparisons.
  -Wsign-conversion           Warn for implicit type conversions between signed and unsigned integers.
  -Wsign-promo                Warn when overload promotes from unsigned to signed.
  -Wsized-deallocation        Warn about missing sized deallocation functions.
  -Wsizeof-array-argument     Warn when sizeof is applied on a parameter declared as an array.
  -Wsizeof-pointer-div        Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
  -Wsizeof-pointer-memaccess  Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
  -Wstrict-aliasing=<0,3>     Warn about code which might break strict aliasing rules.
  -Wstrict-null-sentinel      Warn about uncasted NULL used as sentinel.
  -Wstrict-overflow=<0,5>     Warn about optimizations that assume that signed overflow is undefined.
  -Wstrict-prototypes         Warn about unprototyped function declarations.
  -Wstrict-selector-match     Warn if type signatures of candidate methods do not match exactly.
  -Wstringop-overflow         Warn about buffer overflow in string manipulation functions like memcpy and strcpy.  Same as -Wstringop-overflow=.
  -Wstringop-overflow=<0,4>   Under the control of Object Size type, warn about buffer overflow in string manipulation functions like memcpy and strcpy.
  -Wstringop-truncation       Warn about truncation in string manipulation functions like strncat and strncpy.
  -Wsubobject-linkage         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.
  -Wsuggest-attribute=format  Warn about functions which might be candidates for format attributes.
  -Wsuggest-override          Suggest that the override keyword be used when the declaration of a virtual function overrides another.
  -Wswitch                    Warn about enumerated switches, with no default, missing a case.
  -Wswitch-bool               Warn about switches with boolean controlling expression.
  -Wswitch-default            Warn about enumerated switches missing a "default:" statement.
  -Wswitch-enum               Warn about all enumerated switches missing a specific case.
  -Wsync-nand                 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
  -Wsynth                     Deprecated.  This switch has no effect.
  -Wsystem-headers            Do not suppress warnings from system headers.
  -Wtautological-compare      Warn if a comparison always evaluates to true or false.
  -Wtemplates                 Warn on primary template declaration.
  -Wterminate                 Warn if a throw expression will always result in a call to terminate().
  -Wtraditional               Warn about features not present in traditional C.
  -Wtraditional-conversion    Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
  -Wtrigraphs                 Warn if trigraphs are encountered that might affect the meaning of the program.
  -Wundeclared-selector       Warn about @selector()s without previously declared methods.
  -Wundef                     Warn if an undefined macro is used in an #if directive.
  -Wuninitialized             Warn about uninitialized automatic variables.
  -Wunknown-pragmas           Warn about unrecognized pragmas.
  -Wunsuffixed-float-constants Warn about unsuffixed float constants.
  -Wunused                    Enable all -Wunused- warnings.
  -Wunused-const-variable     Warn when a const variable is unused.  Same as -Wunused-const-variable=.
  -Wunused-const-variable=<0,2> Warn when a const variable is unused.
  -Wunused-local-typedefs     Warn when typedefs locally defined in a function are not used.
  -Wunused-macros             Warn about macros defined in the main file that are not used.
  -Wunused-result             Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
  -Wunused-variable           Warn when a variable is unused.
  -Wuseless-cast              Warn about useless casts.
  -Wvarargs                   Warn about questionable usage of the macros used to retrieve variable arguments.
  -Wvariadic-macros           Warn about using variadic macros.
  -Wvirtual-inheritance       Warn on direct virtual inheritance.
  -Wvirtual-move-assign       Warn if a virtual base has a non-trivial move assignment operator.
  -Wvla                       Warn if a variable length array is used.
  -Wvla-larger-than=<number>  Warn on unbounded uses of variable-length arrays, and on bounded uses of variable-length arrays whose bound can be larger than <number> bytes. <number> bytes.
  -Wvolatile-register-var     Warn when a register variable is declared volatile.
  -Wwrite-strings             In C++, nonzero means warn about deprecated conversion from string literals to 'char *'.  In C, similar warning, except that the conversion is of course not deprecated by the ISO C
                              standard.
  -Wzero-as-null-pointer-constant Warn when a literal '0' is used as null pointer.
  -ansi                       A synonym for -std=c89 (for C) or -std=c++98 (for C++).
  -d<letters>                 Enable dumps from specific passes of the compiler.
  -fRTS=                      Select the runtime.
  -fabi-compat-version=       The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
  -faccess-control            Enforce class member access control semantics.
  -fada-spec-parent=          -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
  -faligned-new               Support C++17 allocation of over-aligned types.  Same as -faligned-new=.
  -faligned-new=              -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
  -fall-virtual               This option lacks documentation.
  -fallow-parameterless-variadic-functions Allow variadic functions without named parameter.
  -falt-external-templates    No longer supported.
  -fasm                       Recognize the "asm" keyword.
  -fbuilding-libgcc           This option lacks documentation.
  -fbuiltin                   Recognize built-in functions.
  -fbuiltin-                  This option lacks documentation.
  -fcanonical-system-headers  Where shorter, use canonicalized paths to systems headers.
  -fchar8_t                   Enable the char8_t fundamental type and use it as the type for UTF-8 string and character literals.
  -fcheck-pointer-bounds      Deprecated in GCC 9.  This switch has no effect.
  -fchkp-check-incomplete-type Deprecated in GCC 9.  This switch has no effect.
  -fchkp-check-read           Deprecated in GCC 9.  This switch has no effect.
  -fchkp-check-write          Deprecated in GCC 9.  This switch has no effect.
  -fchkp-first-field-has-own-bounds Deprecated in GCC 9.  This switch has no effect.
  -fchkp-flexible-struct-trailing-arrays Deprecated in GCC 9.  This switch has no effect.
  -fchkp-instrument-calls     Deprecated in GCC 9.  This switch has no effect.
  -fchkp-instrument-marked-only Deprecated in GCC 9.  This switch has no effect.
  -fchkp-narrow-bounds        Deprecated in GCC 9.  This switch has no effect.
  -fchkp-narrow-to-innermost-array Deprecated in GCC 9.  This switch has no effect.
  -fchkp-optimize             This option lacks documentation.
  -fchkp-store-bounds         Deprecated in GCC 9.  This switch has no effect.
  -fchkp-treat-zero-dynamic-size-as-infinite Deprecated in GCC 9.  This switch has no effect.
  -fchkp-use-fast-string-functions Deprecated in GCC 9.  This switch has no effect.
  -fchkp-use-nochk-string-functions Deprecated in GCC 9.  This switch has no effect.
  -fchkp-use-static-bounds    Deprecated in GCC 9.  This switch has no effect.
  -fchkp-use-static-const-bounds Deprecated in GCC 9.  This switch has no effect.
  -fchkp-use-wrappers         Deprecated in GCC 9.  This switch has no effect.
  -fchkp-zero-input-bounds-for-main Deprecated in GCC 9.  This switch has no effect.
  -fcilkplus                  Deprecated in GCC 8.  This switch has no effect.
  -fconcepts                  Enable support for C++ concepts.
  -fcond-mismatch             Allow the arguments of the '?' operator to have different types.
  -fconserve-space            Does nothing.  Preserved for backward compatibility.
  -fconst-string-class=<name> Use class <name> for constant strings.
  -fconstexpr-depth=<number>  Specify maximum constexpr recursion depth.
  -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
  -fconstexpr-ops-limit=<number> Specify maximum number of constexpr operations during a single constexpr evaluation.
  -fdebug-cpp                 Emit debug annotations during preprocessing.
  -fdeclone-ctor-dtor         Factor complex constructors and destructors to favor space over speed.
  -fdeduce-init-list          enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
  -fdefault-inline            Does nothing.  Preserved for backward compatibility.
  -fdiagnostics-show-template-tree Print hierarchical comparisons when template types are mismatched.
  -fdirectives-only           Preprocess directives only.
  -fdollars-in-identifiers    Permit '$' as an identifier character.
  -fdump-ada-spec             Write all declarations as Ada code transitively.
  -fdump-ada-spec-slim        Write all declarations as Ada code for the given file only.
  -felide-constructors        This option lacks documentation.
  -felide-type                -fno-elide-type Do not elide common elements in template comparisons.
  -femit-struct-debug-baseonly Aggressive reduced debug info for structs.
  -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
  -femit-struct-debug-reduced Conservative reduced debug info for structs.
  -fenforce-eh-specs          Generate code to check exception specifications.
  -fenum-int-equiv            This option lacks documentation.
  -fexec-charset=<cset>       Convert all strings and character constants to character set <cset>.
  -fext-numeric-literals      Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.
  -fextended-identifiers      Permit universal character names (\u and \U) in identifiers.
  -fextern-tls-init           Support dynamic initialization of thread-local variables in a different translation unit.
  -fexternal-templates        This option lacks documentation.
  -ffor-scope                 This option lacks documentation.
  -ffreestanding              Do not assume that standard C libraries and "main" exist.
  -ffriend-injection          This option lacks documentation.
  -fgnu-keywords              Recognize GNU-defined keywords.
  -fgnu-runtime               Generate code for GNU runtime environment.
  -fgnu89-inline              Use traditional GNU semantics for inline functions.
  -fguiding-decls             This option lacks documentation.
  -fhandle-exceptions         Same as -fexceptions.  Use the latter option instead.  Uses of this option are diagnosed.
  -fhonor-std                 This option lacks documentation.
  -fhosted                    Assume normal C execution environment.
  -fhuge-objects              No longer supported.
  -fimplement-inlines         Export functions even if they can be inlined.
  -fimplicit-inline-templates Emit implicit instantiations of inline templates.
  -fimplicit-templates        Emit implicit instantiations of templates.
  -finput-charset=<cset>      Specify the default character set for source files.
  -fvisibility=[private|protected|public|package] Set the default symbol visibility.
  -flabels-ok                 This option lacks documentation.
  -flax-vector-conversions    Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
  -flocal-ivars               Allow access to instance variables as if they were local declarations within instance method implementations.
  -fmacro-prefix-map=         -fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
  -fms-extensions             Don't warn about uses of Microsoft extensions.
  -fmudflap                   This option lacks documentation.
  -fmudflapir                 This option lacks documentation.
  -fmudflapth                 This option lacks documentation.
  -fname-mangling-version-    This option lacks documentation.
  -fnew-abi                   This option lacks documentation.
  -fnew-inheriting-ctors      Implement C++17 inheriting constructor semantics.
  -fnew-ttp-matching          Implement resolution of DR 150 for matching of template template arguments.
  -fnext-runtime              Generate code for NeXT (Apple Mac OS X) runtime environment.
  -fnil-receivers             Assume that receivers of Objective-C messages may be nil.
  -fnonansi-builtins          This option lacks documentation.
  -fnonnull-objects           This option lacks documentation.
  -fnothrow-opt               Treat a throw() exception specification as noexcept to improve code size.
  -fobjc-abi-version=         Specify which ABI to use for Objective-C family code and meta-data generation.
  -fobjc-direct-dispatch      Allow fast jumps to the message dispatcher.
  -fobjc-exceptions           Enable Objective-C exception and synchronization syntax.
  -fobjc-gc                   Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
  -fobjc-nilcheck             Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
  -fobjc-sjlj-exceptions      Enable Objective-C setjmp exception handling runtime.
  -fobjc-std=objc1            Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
  -fopenacc                   Enable OpenACC.
  -fopenacc-dim=              Specify default OpenACC compute dimensions.
  -fopenmp                    Enable OpenMP (implies -frecursive in Fortran).
  -fopenmp-simd               Enable OpenMP's SIMD directives.
  -foperator-names            Recognize C++ keywords like "compl" and "xor".
  -foptional-diags            Does nothing.  Preserved for backward compatibility.
  -fpch-deps                  This option lacks documentation.
  -fpch-preprocess            Look for and use PCH files even when preprocessing.
  -fpermissive                Downgrade conformance errors to warnings.
  -fplan9-extensions          Enable Plan 9 language extensions.
  -fpreprocessed              Treat the input file as already preprocessed.
  -fpretty-templates          -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
  -fprintf-return-value       Treat known sprintf return values as constants.
  -freplace-objc-classes      Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
  -frepo                      Enable automatic template instantiation.
  -frtti                      Generate run time type descriptor information.
  -fshort-enums               Use the narrowest integer type possible for enumeration types.
  -fshort-wchar               Force the underlying type for "wchar_t" to be "unsigned short".
  -fsigned-bitfields          When "signed" or "unsigned" is not given make the bitfield signed.
  -fsigned-char               Make "char" signed by default.
  -fsized-deallocation        Enable C++14 sized deallocation support.
  -fsquangle                  This option lacks documentation.
  -fsso-struct=[big-endian|little-endian|native] Set the default scalar storage order.
  -fstats                     Display statistics accumulated during compilation.
  -fstrict-enums              Assume that values of enumeration type are always within the minimum range of that type.
  -fstrict-prototype          This option lacks documentation.
  -fstrong-eval-order         Follow the C++17 evaluation order requirements for assignment expressions, shift, member function calls, etc.  Same as -fstrong-eval-order=.
  -fstrong-eval-order=        Follow the C++17 evaluation order requirements for assignment expressions, shift, member function calls, etc.
  -ftabstop=<number>          Distance between tab stops for column reporting.
  -ftemplate-backtrace-limit= Set the maximum number of template instantiation notes for a single warning or error.
  -ftemplate-depth-           Same as -ftemplate-depth=.  Use the latter option instead.
  -ftemplate-depth=<number>   Specify maximum template instantiation depth.
  -fthis-is-variable          This option lacks documentation.
  -fno-threadsafe-statics     Do not generate thread-safe code for initializing local statics.
  -ftrack-macro-expansion     This option lacks documentation.
  -ftrack-macro-expansion=    -ftrack-macro-expansion=<0|1|2>  Track locations of tokens coming from macro expansion and display them in error messages.
  -funsigned-bitfields        When "signed" or "unsigned" is not given make the bitfield unsigned.
  -funsigned-char             Make "char" unsigned by default.
  -fuse-cxa-atexit            Use __cxa_atexit to register destructors.
  -fuse-cxa-get-exception-ptr Use __cxa_get_exception_ptr in exception handling.
  -fvisibility-inlines-hidden Marks all inlined functions and methods as having hidden visibility.
  -fvisibility-ms-compat      Changes visibility to match Microsoft Visual Studio by default.
  -fvtable-gc                 No longer supported.
  -fvtable-thunks             No longer supported.
  -fweak                      Emit common-like symbols as weak symbols.
  -fwide-exec-charset=<cset>  Convert all wide strings and character constants to character set <cset>.
  -fworking-directory         Generate a #line directive pointing at the current working directory.
  -fxref                      No longer supported.
  -fzero-link                 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
  -gant                       Catch typos.
  -gen-decls                  Dump declarations to a .decl file.
  -gnat<options>              Specify options to GNAT.
  -gnatO                      Set name of output ALI file (internal switch).
  -idirafter <dir>            Add <dir> to the end of the system include path.
  -imacros <file>             Accept definition of macros in <file>.
  -imultilib <dir>            Set <dir> to be the multilib include subdirectory.
  -include <file>             Include the contents of <file> before other files.
  -iprefix <path>             Specify <path> as a prefix for next two options.
  -iquote <dir>               Add <dir> to the end of the quote include path.
  -isysroot <dir>             Set <dir> to be the system root directory.
  -isystem <dir>              Add <dir> to the start of the system include path.
  -iwithprefix <dir>          Add <dir> to the end of the system include path.
  -iwithprefixbefore <dir>    Add <dir> to the end of the main include path.
  -lang-asm                   This option lacks documentation.
  -nostdinc                   Do not search standard system include directories (those specified with -isystem will still be used).
  -nostdinc++                 Do not search standard system include directories for C++.
  -nostdlib                   Do not look for object files in standard path.
  -o <file>                   Place output into <file>.
  -pedantic                   Same as -Wpedantic.  Use the latter option instead.
  -print-objc-runtime-info    Generate C header of platform-specific features.
  -remap                      Remap file names when including files.
  -std=c++03                  Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.  Same as -std=c++98.
  -std=c++0x                  Deprecated in favor of -std=c++11.  Same as -std=c++11.
  -std=c++11                  Conform to the ISO 2011 C++ standard.
  -std=c++14                  Conform to the ISO 2014 C++ standard.
  -std=c++17                  Conform to the ISO 2017 C++ standard.
  -std=c++1y                  Deprecated in favor of -std=c++14.  Same as -std=c++14.
  -std=c++1z                  Deprecated in favor of -std=c++17.  Same as -std=c++17.
  -std=c++2a                  Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
  -std=c++98                  Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
  -std=c11                    Conform to the ISO 2011 C standard.
  -std=c17                    Conform to the ISO 2017 C standard (published in 2018).
  -std=c18                    Conform to the ISO 2017 C standard (published in 2018).  Same as -std=c17.
  -std=c1x                    Deprecated in favor of -std=c11.  Same as -std=c11.
  -std=c2x                    Conform to the ISO 202X C standard draft (experimental and incomplete support).
  -std=c89                    Conform to the ISO 1990 C standard.  Same as -std=c90.
  -std=c90                    Conform to the ISO 1990 C standard.
  -std=c99                    Conform to the ISO 1999 C standard.
  -std=c9x                    Deprecated in favor of -std=c99.  Same as -std=c99.
  -std=gnu++03                Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensions.  Same as -std=gnu++98.
  -std=gnu++0x                Deprecated in favor of -std=gnu++11.  Same as -std=gnu++11.
  -std=gnu++11                Conform to the ISO 2011 C++ standard with GNU extensions.
  -std=gnu++14                Conform to the ISO 2014 C++ standard with GNU extensions.
  -std=gnu++17                Conform to the ISO 2017 C++ standard with GNU extensions.
  -std=gnu++1y                Deprecated in favor of -std=gnu++14.  Same as -std=gnu++14.
  -std=gnu++1z                Deprecated in favor of -std=gnu++17.  Same as -std=gnu++17.
  -std=gnu++2a                Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
  -std=gnu++98                Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensions.
  -std=gnu11                  Conform to the ISO 2011 C standard with GNU extensions.
  -std=gnu17                  Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
  -std=gnu18                  Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.  Same as -std=gnu17.
  -std=gnu1x                  Deprecated in favor of -std=gnu11.  Same as -std=gnu11.
  -std=gnu2x                  Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support).
  -std=gnu89                  Conform to the ISO 1990 C standard with GNU extensions.  Same as -std=gnu90.
  -std=gnu90                  Conform to the ISO 1990 C standard with GNU extensions.
  -std=gnu99                  Conform to the ISO 1999 C standard with GNU extensions.
  -std=gnu9x                  Deprecated in favor of -std=gnu99.  Same as -std=gnu99.
  -std=iso9899:1990           Conform to the ISO 1990 C standard.  Same as -std=c90.
  -std=iso9899:199409         Conform to the ISO 1990 C standard as amended in 1994.
  -std=iso9899:1999           Conform to the ISO 1999 C standard.  Same as -std=c99.
  -std=iso9899:199x           Deprecated in favor of -std=iso9899:1999.  Same as -std=c99.
  -std=iso9899:2011           Conform to the ISO 2011 C standard.  Same as -std=c11.
  -std=iso9899:2017           Conform to the ISO 2017 C standard (published in 2018).  Same as -std=c17.
  -std=iso9899:2018           Conform to the ISO 2017 C standard (published in 2018).  Same as -std=c17.
  -traditional-cpp            Enable traditional preprocessing.
  -trigraphs                  Support ISO C trigraphs.
  -undef                      Do not predefine system-specific and GCC-specific macros.
  -v                          Enable verbose output.
  -w                          Suppress warnings.

The --param option recognizes the following as parameters:
  predictable-branch-outcome  Maximal estimated outcome of branch considered predictable.
  inline-min-speedup          The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto.
  max-inline-insns-single     The maximum number of instructions in a single function eligible for inlining.
  max-inline-insns-auto       The maximum number of instructions when automatically inlining.
  max-inline-insns-small      The maximum number of instructions when automatically inlining small functions.
  max-inline-insns-size       The maximum number of instructions when inlining for size.
  uninlined-function-insns    Instruction accounted for function prologue, epilogue and other overhead.
  uninlined-function-time     Time accounted for function prologue, epilogue and other overhead.
  uninlined-thunk-insns       Instruction accounted for function thunk overhead.
  uninlined-thunk-time        Time accounted for function thunk overhead.
  max-inline-insns-recursive  The maximum number of instructions inline function can grow to via recursive inlining.
  max-inline-insns-recursive-auto The maximum number of instructions non-inline function can grow to via recursive inlining.
  max-inline-recursive-depth  The maximum depth of recursive inlining for inline functions.
  max-inline-recursive-depth-auto The maximum depth of recursive inlining for non-inline functions.
  min-inline-recursive-probability Inline recursively only when the probability of call being executed exceeds the parameter.
  max-early-inliner-iterations The maximum number of nested indirect inlining performed by early inliner.
  comdat-sharing-probability  Probability that COMDAT function will be shared with different compilation unit.
  partial-inlining-entry-probability Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen.
  max-variable-expansions-in-unroller If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling.
  min-vect-loop-bound         If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.
  max-delay-slot-insn-search  The maximum number of instructions to consider to fill a delay slot.
  max-delay-slot-live-search  The maximum number of instructions to consider to find accurate live register information.
  max-pending-list-length     The maximum length of scheduling's pending operations list.
  max-modulo-backtrack-attempts The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop.
  large-function-insns        The size of function body to be considered large.
  large-function-growth       Maximal growth due to inlining of large function (in percent).
  large-unit-insns            The size of translation unit to be considered large.
  inline-unit-growth          How much can given compilation unit grow because of the inlining (in percent).
  ipcp-unit-growth            How much can given compilation unit grow because of the interprocedural constant propagation (in percent).
  early-inlining-insns        Maximal estimated growth of function body caused by early inlining of single call.
  large-stack-frame           The size of stack frame to be considered large.
  large-stack-frame-growth    Maximal stack frame growth due to inlining (in percent).
  stack-clash-protection-guard-size Size of the stack guard expressed as a power of two in bytes.
  stack-clash-protection-probe-interval Interval in which to probe the stack expressed as a power of two in bytes.
  max-gcse-memory             The maximum amount of memory to be allocated by GCSE.
  max-gcse-insertion-ratio    The maximum ratio of insertions to deletions of expressions in GCSE.
  gcse-after-reload-partial-fraction The threshold ratio for performing partial redundancy elimination after reload.
  gcse-after-reload-critical-fraction The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload.
  gcse-cost-distance-ratio    Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations.
  gcse-unrestricted-cost      Cost at which GCSE optimizations will not constraint the distance an expression can travel.
  max-hoist-depth             Maximum depth of search in the dominator tree for expressions to hoist.
  max-pow-sqrt-depth          Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant.
  max-unrolled-insns          The maximum number of instructions to consider to unroll in a loop.
  max-average-unrolled-insns  The maximum number of instructions to consider to unroll in a loop on average.
  max-unroll-times            The maximum number of unrollings of a single loop.
  max-peeled-insns            The maximum number of insns of a peeled loop.
  max-peel-times              The maximum number of peelings of a single loop.
  max-peel-branches           The maximum number of branches on the path through the peeled sequence.
  max-completely-peeled-insns The maximum number of insns of a completely peeled loop.
  max-completely-peel-times   The maximum number of peelings of a single loop that is peeled completely.
  max-once-peeled-insns       The maximum number of insns of a peeled loop that rolls only once.
  max-completely-peel-loop-nest-depth The maximum depth of a loop nest we completely peel.
  max-unswitch-insns          The maximum number of insns of an unswitched loop.
  max-unswitch-level          The maximum number of unswitchings in a single loop.
  max-loop-header-insns       The maximum number of insns in loop header duplicated by the copy loop headers pass.
  max-iterations-to-track     Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates.
  max-iterations-computation-cost Bound on the cost of an expression to compute the number of iterations.
  sms-max-ii-factor           A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop.
  sms-min-sc                  The minimum value of stage count that swing modulo scheduler will generate.
  sms-dfa-history             The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.
  sms-loop-average-count-threshold A threshold on the average loop count considered by the swing modulo scheduler.
  hot-bb-count-fraction       Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot (used in non-LTO mode).
  hot-bb-count-ws-permille    A basic block profile count is considered hot if it contributes to the given permillage of the entire profiled execution (used in LTO mode).
  hot-bb-frequency-fraction   Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot.
  unlikely-bb-count-fraction  The minimum fraction of profile runs a given basic block execution count must be not to be considered unlikely.
  align-threshold             Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.
  align-loop-iterations       Loops iterating at least selected number of iterations will get loop alignment.
  max-predicted-iterations    The maximum number of loop iterations we predict statically.
  builtin-expect-probability  Set the estimated probability in percentage for builtin expect. The default value is 90% probability.
  builtin-string-cmp-inline-length The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3.
  tracer-dynamic-coverage-feedback The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available.
  tracer-dynamic-coverage     The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available.
  tracer-max-code-growth      Maximal code growth caused by tail duplication (in percent).
  tracer-min-branch-ratio     Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent).
  tracer-min-branch-probability-feedback Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available.
  tracer-min-branch-probability Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available.
  max-crossjump-edges         The maximum number of incoming edges to consider for crossjumping.
  min-crossjump-insns         The minimum number of matching instructions to consider for crossjumping.
  max-grow-copy-bb-insns      The maximum expansion factor when copying basic blocks.
  max-goto-duplication-insns  The maximum number of insns to duplicate when unfactoring computed gotos.
  max-cse-path-length         The maximum length of path considered in cse.
  max-cse-insns               The maximum instructions CSE process before flushing.
  lim-expensive               The minimum cost of an expensive expression in the loop invariant motion.
  iv-consider-all-candidates-bound Bound on number of candidates below that all candidates are considered in iv optimizations.
  iv-max-considered-uses      Bound on number of iv uses in loop optimized in iv optimizations.
  iv-always-prune-cand-set-bound If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization.
  avg-loop-niter              Average number of iterations of a loop.
  dse-max-object-size         Maximum size (in bytes) of objects tracked bytewise by dead store elimination.
  dse-max-alias-queries-per-store Maximum number of queries into the alias oracle per store.
  scev-max-expr-size          Bound on size of expressions used in the scalar evolutions analyzer.
  scev-max-expr-complexity    Bound on the complexity of the expressions in the scalar evolutions analyzer.
  max-tree-if-conversion-phi-args Maximum number of arguments in a PHI supported by TREE if-conversion unless the loop is marked with simd pragma.
  vect-max-version-for-alignment-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check.
  vect-max-version-for-alias-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check.
  vect-max-peeling-for-alignment Maximum number of loop peels to enhance alignment of data references in a loop.
  max-cselib-memory-locations The maximum memory locations recorded by cselib.
  ggc-min-expand              Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap.
  ggc-min-heapsize            Minimum heap size before we start collecting garbage, in kilobytes.
  max-reload-search-insns     The maximum number of instructions to search backward when looking for equivalent reload.
  sink-frequency-threshold    Target block's relative execution frequency (as a percentage) required to sink a statement.
  max-sched-region-blocks     The maximum number of blocks in a region to be considered for interblock scheduling.
  max-sched-region-insns      The maximum number of insns in a region to be considered for interblock scheduling.
  max-pipeline-region-blocks  The maximum number of blocks in a region to be considered for interblock scheduling.
  max-pipeline-region-insns   The maximum number of insns in a region to be considered for interblock scheduling.
  min-spec-prob               The minimum probability of reaching a source block for interblock speculative scheduling.
  max-sched-extend-regions-iters The maximum number of iterations through CFG to extend regions.
  max-sched-insn-conflict-delay The maximum conflict delay for an insn to be considered for speculative motion.
  sched-spec-prob-cutoff      The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.
  sched-state-edge-prob-cutoff The minimum probability an edge must have for the scheduler to save its state across it.
  selsched-max-lookahead      The maximum size of the lookahead window of selective scheduling.
  selsched-max-sched-times    Maximum number of times that an insn could be scheduled.
  selsched-insns-to-rename    Maximum number of instructions in the ready list that are considered eligible for renaming.
  sched-mem-true-dep-cost     Minimal distance between possibly conflicting store and load.
  sched-autopref-queue-depth  Hardware autoprefetcher scheduler model control flag.  Number of lookahead cycles the model looks into; at '0' only enable instruction sorting heuristic.  Disabled by default.
  max-last-value-rtl          The maximum number of RTL nodes that can be recorded as combiner's last value.
  max-combine-insns           The maximum number of insns combine tries to combine.
  integer-share-limit         The upper bound for sharing integer constants.
  ssp-buffer-size             The lower bound for a buffer to be considered for stack smashing protection.
  min-size-for-stack-sharing  The minimum size of variables taking part in stack slot sharing when not optimizing.
  max-jump-thread-duplication-stmts Maximum number of statements allowed in a block that needs to be duplicated when threading jumps.
  max-fields-for-field-sensitive Maximum number of fields in a structure before pointer analysis treats the structure as a single variable.
  max-sched-ready-insns       The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass.
  max-dse-active-local-stores Maximum number of active local stores in RTL dead store elimination.
  prefetch-latency            The number of insns executed before prefetch is completed.
  simultaneous-prefetches     The number of prefetches that can run at the same time.
  l1-cache-size               The size of L1 cache.
  l1-cache-line-size          The size of L1 cache line.
  l2-cache-size               The size of L2 cache.
  prefetch-dynamic-strides    Whether software prefetch hints should be issued for non-constant strides.
  prefetch-minimum-stride     The minimum constant stride beyond which we should use prefetch hints for.
  loop-interchange-max-num-stmts The maximum number of stmts in loop nest for loop interchange.
  loop-interchange-stride-ratio The minimum stride ratio for loop interchange to be profitable.
  use-canonical-types         Whether to use canonical types.
  max-partial-antic-length    Maximum length of partial antic set when performing tree pre optimization.
  rpo-vn-max-loop-depth       Maximum depth of a loop nest to fully value-number optimistically.
  sccvn-max-alias-queries-per-access Maximum number of disambiguations to perform per memory access.
  ira-max-loops-num           Max loops number for regional RA.
  ira-max-conflict-table-size Max size of conflict table in MB.
  ira-loop-reserved-regs      The number of registers in each class kept unused by loop invariant motion.
  lra-max-considered-reload-pseudos The max number of reload pseudos which are considered during spilling a non-reload pseudo.
  lra-inheritance-ebb-probability-cutoff Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA.
  switch-conversion-max-branch-ratio The maximum ratio between array size and switch branches for a switch conversion to take place.
  loop-block-tile-size        Size of tiles for loop blocking.
  graphite-max-nb-scop-params Maximum number of parameters in a SCoP.
  graphite-max-arrays-per-scop Maximum number of arrays per SCoP.
  max-isl-operations          Maximum number of isl operations, 0 means unlimited.
  graphite-allow-codegen-errors Whether codegen errors should be ICEs when -fchecking.
  loop-max-datarefs-for-datadeps Maximum number of datarefs in loop for building loop data dependencies.
  loop-invariant-max-bbs-in-loop Max basic blocks number in loop for loop invariant motion.
  profile-func-internal-id    Use internal function id in profile lookup.
  indir-call-topn-profile     Track top N target addresses in indirect-call profile.
  slp-max-insns-in-bb         Maximum number of instructions in basic block to be considered for SLP vectorization.
  min-insn-to-prefetch-ratio  Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count.
  prefetch-min-insn-to-mem-ratio Min. ratio of insns to mem ops to enable prefetching in a loop.
  max-vartrack-size           Max. size of var tracking hash tables.
  max-vartrack-expr-depth     Max. recursion depth for expanding var tracking expressions.
  max-vartrack-reverse-op-size Max. size of loc list for which reverse ops should be added.
  max-debug-marker-count      Max. count of debug markers to expand or inline.
  min-nondebug-insn-uid       The minimum UID to be used for a nondebug insn.
  ipa-sra-ptr-growth-factor   Maximum allowed growth of number and total size of new parameters that ipa-sra replaces a pointer to an aggregate with.
  tm-max-aggregate-size       Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs.
  sra-max-scalarization-size-Ospeed Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed.
  sra-max-scalarization-size-Osize Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size.
  sra-max-propagations        Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates will keep for one local variable.
  ipa-cp-value-list-size      Maximum size of a list of values associated with each parameter for interprocedural constant propagation.
  ipa-cp-eval-threshold       Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone.
  ipa-cp-recursion-penalty    Percentage penalty the recursive functions will receive when they are evaluated for cloning.
  ipa-cp-single-call-penalty  Percentage penalty functions containing a single call to another function will receive when they are evaluated for cloning.
  ipa-max-agg-items           Maximum number of aggregate content items for a parameter in jump functions and lattices.
  ipa-cp-loop-hint-bonus      Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known.
  ipa-cp-array-index-hint-bonus Compile-time bonus IPA-CP assigns to candidates which make an array index known.
  ipa-max-aa-steps            Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function.
  lto-partitions              Number of partitions the program should be split to.
  lto-min-partition           Minimal size of a partition for LTO (in estimated instructions).
  lto-max-partition           Maximal size of a partition for LTO (in estimated instructions).
  lto-max-streaming-parallelism maximal number of LTO partitions streamed in parallel.
  cxx-max-namespaces-for-diagnostic-help Maximum number of namespaces to search for alternatives when name lookup fails.
  max-stores-to-sink          Maximum number of conditional store pairs that can be sunk.
  case-values-threshold       The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine.
  allow-store-data-races      Allow new data races on stores to be introduced.
  tree-reassoc-width          Set the maximum number of instructions executed in parallel in reassociated tree.  If 0, use the target dependent heuristic.
  max-tail-merge-comparisons  Maximum amount of similar bbs to compare a bb with.
  store-merging-allow-unaligned Allow the store merging pass to introduce unaligned stores if it is legal to do so.
  max-stores-to-merge         Maximum number of constant stores to merge in the store merging pass.
  max-tail-merge-iterations   Maximum amount of iterations of the pass over a function.
  max-tracked-strlens         Maximum number of strings for which strlen optimization pass will track string lengths.
  sched-pressure-algorithm    Which -fsched-pressure algorithm to apply.
  max-slsr-cand-scan          Maximum length of candidate scans for straight-line strength reduction.
  asan-stack                  Enable asan stack protection.
  asan-instrument-allocas     Enable asan allocas/VLAs protection.
  asan-globals                Enable asan globals protection.
  asan-instrument-writes      Enable asan store operations protection.
  asan-instrument-reads       Enable asan load operations protection.
  asan-memintrin              Enable asan builtin functions protection.
  asan-use-after-return       Enable asan detection of use-after-return bugs.
  asan-instrumentation-with-call-threshold Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.
  use-after-scope-direct-emission-threshold Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.
  uninit-control-dep-attempts Maximum number of nested calls to search for control dependencies during uninitialized variable analysis.
  fsm-scale-path-stmts        Scale factor to apply to the number of statements in a threading path when comparing to the number of (scaled) blocks.
  fsm-maximum-phi-arguments   Maximum number of arguments a PHI may have before the FSM threader will not try to thread through its block.
  fsm-scale-path-blocks       Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements.
  max-fsm-thread-path-insns   Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path.
  max-fsm-thread-length       Maximum number of basic blocks on a finite state automaton jump thread path.
  max-fsm-thread-paths        Maximum number of new jump thread paths to create for a finite state automaton.
  parloops-chunk-size         Chunk size of omp schedule for loops parallelized by parloops.
  parloops-schedule           Schedule type of omp schedule for loops parallelized by parloops (static, dynamic, guided, auto, runtime).
  parloops-min-per-thread     Minimum number of iterations per thread of an innermost parallelized loop.
  max-ssa-name-query-depth    Maximum recursion depth allowed when querying a property of an SSA name.
  max-rtl-if-conversion-insns Maximum number of insns in a basic block to consider for RTL if-conversion.
  max-rtl-if-conversion-predictable-cost Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered predictable.
  max-rtl-if-conversion-unpredictable-cost Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered unpredictable.
  hsa-gen-debug-stores        Level of hsa debug stores verbosity.
  max-speculative-devirt-maydefs Maximum number of may-defs visited when devirtualizing speculatively.
  max-vrp-switch-assertions   Maximum number of assertions to add along the default edge of a switch statement during VRP.
  vect-epilogues-nomask       Enable loop epilogue vectorization using smaller vector size.
  unroll-jam-min-percent      Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable.
  unroll-jam-max-unroll       Maximum unroll factor for the unroll-and-jam transformation.
  avoid-fma-max-bits          Maximum number of bits for which we avoid creating FMAs.
  logical-op-non-short-circuit True if a non-short-circuit operation is optimal.
  loop-versioning-max-inner-insns The maximum number of instructions in an inner loop that is being considered for versioning.
  loop-versioning-max-outer-insns The maximum number of instructions in an outer loop that is being considered for versioning, on top of the instructions in inner loops.
  ssa-name-def-chain-limit    The maximum number of SSA_NAME assignments to follow in determining a value.

The following options control compiler warning messages:
  --extra-warnings            Same as -Wextra.  Use the latter option instead.
  -W                          This switch is deprecated; use -Wextra instead.  Same as -Wextra.
  -Waggregate-return          Warn about returning structures, unions or arrays.
  -Waggressive-loop-optimizations Warn if a loop with constant number of iterations triggers undefined behavior.
  -Warray-bounds              Warn if an array is accessed out of bounds.
  -Warray-bounds=<0,2>        Warn if an array is accessed out of bounds.
  -Wattribute-alias           Warn about type safety and similar errors and mismatches in declarations with alias attributes.  Same as -Wattribute-alias=.
  -Wattribute-alias=<0,2>     Warn about type safety and similar errors and mismatches in declarations with alias attributes.
  -Wattribute-warning         Warn about uses of __attribute__((warning)) declarations.
  -Wattributes                Warn about inappropriate attribute usage.
  -Wcannot-profile            Warn when profiling instrumentation was requested, but could not be applied to a certain function.
  -Wcast-align                Warn about pointer casts which increase alignment.
  -Wcast-align=strict         Warn about pointer casts which increase alignment.
  -Wcoverage-mismatch         Warn in case profiles in -fprofile-use do not match.
  -Wdeprecated-declarations   Warn about uses of __attribute__((deprecated)) declarations.
  -Wdisabled-optimization     Warn when an optimization pass is disabled.
  -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
  -Wfree-nonheap-object       Warn when attempting to free a non-heap object.
  -Whsa                       Warn when a function cannot be expanded to HSAIL.
  -Wimplicit-fallthrough      Same as -Wimplicit-fallthrough=.  Use the latter option instead.
  -Wimplicit-fallthrough=<0,5> Warn when a switch case falls through.
  -Winline                    Warn when an inlined function cannot be inlined.
  -Winvalid-memory-model      Warn when an atomic memory model parameter is known to be outside the valid range.
  -Wlarger-than-              Same as -Wlarger-than=.  Use the latter option instead.
  -Wlarger-than=<byte-size>   Warn if an object's size exceeds <byte-size>.
  -Wlto-type-mismatch         During link time optimization warn about mismatched types of global declarations.
  -Wmissing-noreturn          Same as -Wsuggest-attribute=noreturn.  Use the latter option instead.
  -Wmissing-profile           Warn in case profiles in -fprofile-use do not exist.
  -Wnull-dereference          Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
  -Wodr                       Warn about some C++ One Definition Rule violations during link time optimization.
  -Woverflow                  Warn about overflow in arithmetic expressions.
  -Wpacked                    Warn when the packed attribute has no effect on struct layout.
  -Wpadded                    Warn when padding is required to align structure members.
  -Wreturn-local-addr         Warn about returning a pointer/reference to a local or temporary variable.
  -Wshadow                    Warn when one variable shadows another.  Same as -Wshadow=global.
  -Wshadow-compatible-local   Same as -Wshadow=compatible-local.  Use the latter option instead.
  -Wshadow-local              Same as -Wshadow=local.  Use the latter option instead.
  -Wshadow=compatible-local   Warn when one local variable shadows another local variable or parameter of compatible type.
  -Wshadow=global             Warn when one variable shadows another (globally).  Same as -Wshadow.
  -Wshadow=local              Warn when one local variable shadows another local variable or parameter.
  -Wstack-protector           Warn when not issuing stack smashing protection for some reason.
  -Wstack-usage=<byte-size>   Warn if stack usage might exceed <byte-size>.
  -Wstrict-aliasing           Warn about code which might break strict aliasing rules.
  -Wstrict-overflow           Warn about optimizations that assume that signed overflow is undefined.
  -Wsuggest-attribute=cold    Warn about functions which might be candidates for __attribute__((cold)).
  -Wsuggest-attribute=const   Warn about functions which might be candidates for __attribute__((const)).
  -Wsuggest-attribute=malloc  Warn about functions which might be candidates for __attribute__((malloc)).
  -Wsuggest-attribute=noreturn Warn about functions which might be candidates for __attribute__((noreturn)).
  -Wsuggest-attribute=pure    Warn about functions which might be candidates for __attribute__((pure)).
  -Wsuggest-final-methods     Warn about C++ virtual methods where adding final keyword would improve code quality.
  -Wsuggest-final-types       Warn about C++ polymorphic types where adding final keyword would improve code quality.
  -Wswitch-unreachable        Warn about statements between switch's controlling expression and the first case.
  -Wtrampolines               Warn whenever a trampoline is generated.
  -Wtype-limits               Warn if a comparison is always true or always false due to the limited range of the data type.
  -Wunreachable-code          Does nothing. Preserved for backward compatibility.
  -Wunsafe-loop-optimizations Does nothing. Preserved for backward compatibility.
  -Wunused-but-set-parameter  Warn when a function parameter is only set, otherwise unused.
  -Wunused-but-set-variable   Warn when a variable is only set, otherwise unused.
  -Wunused-function           Warn when a function is unused.
  -Wunused-label              Warn when a label is unused.
  -Wunused-value              Warn when an expression value is unused.
  -Wvector-operation-performance Warn when a vector operation is compiled outside the SIMD.

The following options control optimizations:
  -Ofast                      Optimize for speed disregarding exact standards compliance.
  -Og                         Optimize for debugging experience rather than speed or size.
  -Os                         Optimize for space rather than speed.
  -faggressive-loop-optimizations Aggressively optimize loops using language constraints.
  -falign-functions           Align the start of functions.
  -falign-functions=          This option lacks documentation.
  -falign-jumps               Align labels which are only reached by jumping.
  -falign-jumps=              This option lacks documentation.
  -falign-labels              Align all labels.
  -falign-labels=             This option lacks documentation.
  -falign-loops               Align the start of loops.
  -falign-loops=              This option lacks documentation.
  -fassociative-math          Allow optimization for floating-point arithmetic which may change the result of the operation due to rounding.
  -fasynchronous-unwind-tables Generate unwind tables that are exact at each instruction boundary.
  -fauto-inc-dec              Generate auto-inc/dec instructions.
  -fbranch-count-reg          Replace add, compare, branch with branch on count register.
  -fbranch-probabilities      Use profiling information for branch probabilities.
  -fbranch-target-load-optimize Perform branch target load optimization before prologue / epilogue threading.
  -fbranch-target-load-optimize2 Perform branch target load optimization after prologue / epilogue threading.
  -fbtr-bb-exclusive          Restrict target load migration not to re-use registers in any basic block.
  -fcaller-saves              Save registers around function calls.
  -fcode-hoisting             Enable code hoisting.
  -fcombine-stack-adjustments Looks for opportunities to reduce stack adjustments and stack references.
  -fcompare-elim              Perform comparison elimination after register allocation has finished.
  -fconserve-stack            Do not perform optimizations increasing noticeably stack usage.
  -fcprop-registers           Perform a register copy-propagation optimization pass.
  -fcrossjumping              Perform cross-jumping optimization.
  -fcse-follow-jumps          When running CSE, follow jumps to their targets.
  -fcx-fortran-rules          Complex multiplication and division follow Fortran rules.
  -fcx-limited-range          Omit range reduction step when performing complex division.
  -fdce                       Use the RTL dead code elimination pass.
  -fdefer-pop                 Defer popping functions args from stack until later.
  -fdelayed-branch            Attempt to fill delay slots of branch instructions.
  -fdelete-dead-exceptions    Delete dead instructions that may throw exceptions.
  -fdelete-null-pointer-checks Delete useless null pointer checks.
  -fdevirtualize              Try to convert virtual calls to direct ones.
  -fdevirtualize-speculatively Perform speculative devirtualization.
  -fdse                       Use the RTL dead store elimination pass.
  -fearly-inlining            Perform early inlining.
  -fexpensive-optimizations   Perform a number of minor, expensive optimizations.
  -ffast-math                 This option lacks documentation.
  -ffinite-math-only          Assume no NaNs or infinities are generated.
  -ffloat-store               Don't allocate floats and doubles in extended-precision registers.
  -fforward-propagate         Perform a forward propagation pass on RTL.
  -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
  -ffp-int-builtin-inexact    Allow built-in functions ceil, floor, round, trunc to raise "inexact" exceptions.
  -ffunction-cse              Allow function addresses to be held in registers.
  -fgcse                      Perform global common subexpression elimination.
  -fgcse-after-reload         Perform global common subexpression elimination after register allocation has finished.
  -fgcse-las                  Perform redundant load after store elimination in global common subexpression elimination.
  -fgcse-lm                   Perform enhanced load motion during global common subexpression elimination.
  -fgcse-sm                   Perform store motion after global common subexpression elimination.
  -fgraphite                  Enable in and out of Graphite representation.
  -fgraphite-identity         Enable Graphite Identity transformation.
  -fguess-branch-probability  Enable guessing of branch probabilities.
  -fhoist-adjacent-loads      Enable hoisting adjacent loads to encourage generating conditional move instructions.
  -fif-conversion             Perform conversion of conditional jumps to branchless equivalents.
  -fif-conversion2            Perform conversion of conditional jumps to conditional execution.
  -findirect-inlining         Perform indirect inlining.
  -finline                    Enable inlining of function declared "inline", disabling disables all inlining.
  -finline-atomics            Inline __atomic operations when a lock free instruction sequence is available.
  -finline-functions          Integrate functions not declared "inline" into their callers when profitable.
  -finline-functions-called-once Integrate functions only required by their single caller.
  -finline-small-functions    Integrate functions into their callers when code size is known not to grow.
  -fipa-bit-cp                Perform interprocedural bitwise constant propagation.
  -fipa-cp                    Perform interprocedural constant propagation.
  -fipa-cp-clone              Perform cloning to make Interprocedural constant propagation stronger.
  -fipa-icf                   Perform Identical Code Folding for functions and read-only variables.
  -fipa-icf-functions         Perform Identical Code Folding for functions.
  -fipa-icf-variables         Perform Identical Code Folding for variables.
  -fipa-profile               Perform interprocedural profile propagation.
  -fipa-pta                   Perform interprocedural points-to analysis.
  -fipa-pure-const            Discover pure and const functions.
  -fipa-ra                    Use caller save register across calls if possible.
  -fipa-reference             Discover read-only and non addressable static variables.
  -fipa-reference-addressable Discover read-only, write-only and non-addressable static variables.
  -fipa-sra                   Perform interprocedural reduction of aggregates.
  -fipa-stack-alignment       Reduce stack alignment on call sites if possible.
  -fipa-vrp                   Perform IPA Value Range Propagation.
  -fira-algorithm=[CB|priority] Set the used IRA algorithm.
  -fira-hoist-pressure        Use IRA based register pressure calculation in RTL hoist optimizations.
  -fira-loop-pressure         Use IRA based register pressure calculation in RTL loop optimizations.
  -fira-region=[one|all|mixed] Set regions for IRA.
  -fira-share-save-slots      Share slots for saving different hard registers.
  -fira-share-spill-slots     Share stack slots for spilled pseudo-registers.
  -fisolate-erroneous-paths-attribute Detect paths that trigger erroneous or undefined behavior due to a null value being used in a way forbidden by a returns_nonnull or nonnull attribute.  Isolate those paths
                              from the main control flow and turn the statement with erroneous or undefined behavior into a trap.
  -fisolate-erroneous-paths-dereference Detect paths that trigger erroneous or undefined behavior due to dereferencing a null pointer.  Isolate those paths from the main control flow and turn the statement with
                              erroneous or undefined behavior into a trap.
  -fivopts                    Optimize induction variables on trees.
  -fjump-tables               Use jump tables for sufficiently large switch statements.
  -fkeep-gc-roots-live        This option lacks documentation.
  -flifetime-dse              Tell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.
  -flifetime-dse=<0,2>        This option lacks documentation.
  -flimit-function-alignment  This option lacks documentation.
  -flive-patching             Same as -flive-patching=.  Use the latter option instead.
  -flive-patching=[inline-only-static|inline-clone] Control IPA optimizations to provide a safe compilation for live-patching.  At the same time, provides multiple-level control on the enabled IPA optimizations.
  -flive-range-shrinkage      Relief of register pressure through live range shrinkage.
  -floop-interchange          Enable loop interchange on trees.
  -floop-nest-optimize        Enable the loop nest optimizer.
  -floop-parallelize-all      Mark all loops as parallel.
  -floop-unroll-and-jam       Perform unroll-and-jam on loops.
  -flra-remat                 Do CFG-sensitive rematerialization in LRA.
  -fmath-errno                Set errno after built-in math functions.
  -fmodulo-sched              Perform SMS based modulo scheduling before the first scheduling pass.
  -fmodulo-sched-allow-regmoves Perform SMS based modulo scheduling with register moves allowed.
  -fmove-loop-invariants      Move loop invariant computations out of loops.
  -fnon-call-exceptions       Support synchronous non-call exceptions.
  -fomit-frame-pointer        When possible do not generate stack frames.
  -fopt-info                  Enable all optimization info dumps on stderr.
  -foptimize-sibling-calls    Optimize sibling and tail recursive calls.
  -foptimize-strlen           Enable string length optimizations on trees.
  -fpack-struct               Pack structure members together without holes.
  -fpack-struct=<number>      Set initial maximum structure member alignment.
  -fpartial-inlining          Perform partial inlining.
  -fpatchable-function-entry= Insert NOP instructions at each function entry.
  -fpeel-loops                Perform loop peeling.
  -fpeephole                  Enable machine specific peephole optimizations.
  -fpeephole2                 Enable an RTL peephole pass before sched2.
  -fplt                       Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
  -fpredictive-commoning      Run predictive commoning optimization.
  -fprefetch-loop-arrays      Generate prefetch instructions, if available, for arrays in loops.
  -freciprocal-math           Same as -fassociative-math for expressions which include division.
  -freg-struct-return         Return small aggregates in registers.
  -frename-registers          Perform a register renaming optimization pass.
  -freorder-blocks            Reorder basic blocks to improve code placement.
  -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
  -freorder-blocks-and-partition Reorder basic blocks and partition into hot and cold sections.
  -freorder-functions         Reorder functions to improve code placement.
  -frerun-cse-after-loop      Add a common subexpression elimination pass after loop optimizations.
  -freschedule-modulo-scheduled-loops Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
  -frounding-math             Disable optimizations that assume default FP rounding behavior.
  -fsave-optimization-record  Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
  -fsched-critical-path-heuristic Enable the critical path heuristic in the scheduler.
  -fsched-dep-count-heuristic Enable the dependent count heuristic in the scheduler.
  -fsched-group-heuristic     Enable the group heuristic in the scheduler.
  -fsched-interblock          Enable scheduling across basic blocks.
  -fsched-last-insn-heuristic Enable the last instruction heuristic in the scheduler.
  -fsched-pressure            Enable register pressure sensitive insn scheduling.
  -fsched-rank-heuristic      Enable the rank heuristic in the scheduler.
  -fsched-spec                Allow speculative motion of non-loads.
  -fsched-spec-insn-heuristic Enable the speculative instruction heuristic in the scheduler.
  -fsched-spec-load           Allow speculative motion of some loads.
  -fsched-spec-load-dangerous Allow speculative motion of more loads.
  -fsched-stalled-insns       Allow premature scheduling of queued insns.
  -fsched-stalled-insns-dep   Set dependence distance checking in premature scheduling of queued insns.
  -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
  -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
  -fsched2-use-superblocks    If scheduling post reload, do superblock scheduling.
  -fschedule-fusion           Perform a target dependent instruction fusion optimization pass.
  -fschedule-insns            Reschedule instructions before register allocation.
  -fschedule-insns2           Reschedule instructions after register allocation.
  -fsection-anchors           Access data in the same section from shared anchor points.
  -fsel-sched-pipelining      Perform software pipelining of inner loops during selective scheduling.
  -fsel-sched-pipelining-outer-loops Perform software pipelining of outer loops during selective scheduling.
  -fsel-sched-reschedule-pipelined Reschedule pipelined regions without pipelining.
  -fselective-scheduling      Schedule instructions using selective scheduling algorithm.
  -fselective-scheduling2     Run selective scheduling after reload.
  -fshrink-wrap               Emit function prologues only before parts of the function that need it, rather than at the top of the function.
  -fshrink-wrap-separate      Shrink-wrap parts of the prologue and epilogue separately.
  -fsignaling-nans            Disable optimizations observable by IEEE signaling NaNs.
  -fsigned-zeros              Disable floating point optimizations that ignore the IEEE signedness of zero.
  -fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
  -fsingle-precision-constant Convert floating point constants to single precision constants.
  -fsplit-ivs-in-unroller     Split lifetimes of induction variables when loops are unrolled.
  -fsplit-loops               Perform loop splitting.
  -fsplit-paths               Split paths leading to loop backedges.
  -fsplit-wide-types          Split wide types into independent registers.
  -fssa-backprop              Enable backward propagation of use properties at the SSA level.
  -fssa-phiopt                Optimize conditional patterns using SSA PHI nodes.
  -fstack-check=[no|generic|specific] Insert stack checking code into the program.
  -fstack-clash-protection    Insert code to probe each page of stack space as it is allocated to protect from stack-clash style attacks.
  -fstack-protector           Use propolice as a stack protection method.
  -fstack-protector-all       Use a stack protection method for every function.
  -fstack-protector-explicit  Use stack protection method only for functions with the stack_protect attribute.
  -fstack-protector-strong    Use a smart stack protection method for certain functions.
  -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
  -fstdarg-opt                Optimize amount of stdarg registers saved to stack at start of function.
  -fstore-merging             Merge adjacent stores.
  -fstrict-aliasing           Assume strict aliasing rules apply.
  -fstrict-volatile-bitfields Force bitfield accesses to match their type width.
  -fthread-jumps              Perform jump threading optimizations.
  -ftracer                    Perform superblock formation via tail duplication.
  -ftrapping-math             Assume floating-point operations can trap.
  -ftrapv                     Trap for signed overflow in addition, subtraction and multiplication.
  -ftree-bit-ccp              Enable SSA-BIT-CCP optimization on trees.
  -ftree-builtin-call-dce     Enable conditional dead code elimination for builtin calls.
  -ftree-ccp                  Enable SSA-CCP optimization on trees.
  -ftree-ch                   Enable loop header copying on trees.
  -ftree-coalesce-vars        Enable SSA coalescing of user variables.
  -ftree-copy-prop            Enable copy propagation on trees.
  -ftree-cselim               Transform condition stores into unconditional ones.
  -ftree-dce                  Enable SSA dead code elimination optimization on trees.
  -ftree-dominator-opts       Enable dominator optimizations.
  -ftree-dse                  Enable dead store elimination.
  -ftree-forwprop             Enable forward propagation on trees.
  -ftree-fre                  Enable Full Redundancy Elimination (FRE) on trees.
  -ftree-loop-distribute-patterns Enable loop distribution for patterns transformed into a library call.
  -ftree-loop-distribution    Enable loop distribution on trees.
  -ftree-loop-if-convert      Convert conditional jumps in innermost loops to branchless equivalents.
  -ftree-loop-im              Enable loop invariant motion on trees.
  -ftree-loop-ivcanon         Create canonical induction variables in loops.
  -ftree-loop-optimize        Enable loop optimizations on tree level.
  -ftree-loop-vectorize       Enable loop vectorization on trees.
  -ftree-lrs                  Perform live range splitting during the SSA->normal pass.
  -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
  -ftree-partial-pre          In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
  -ftree-phiprop              Enable hoisting loads from conditional pointers.
  -ftree-pre                  Enable SSA-PRE optimization on trees.
  -ftree-pta                  Perform function-local points-to analysis on trees.
  -ftree-reassoc              Enable reassociation on tree level.
  -ftree-scev-cprop           Enable copy propagation of scalar-evolution information.
  -ftree-sink                 Enable SSA code sinking on trees.
  -ftree-slp-vectorize        Enable basic block vectorization (SLP) on trees.
  -ftree-slsr                 Perform straight-line strength reduction.
  -ftree-sra                  Perform scalar replacement of aggregates.
  -ftree-switch-conversion    Perform conversions of switch initializations.
  -ftree-tail-merge           Enable tail merging on trees.
  -ftree-ter                  Replace temporary expressions in the SSA->normal pass.
  -ftree-vectorize            Enable vectorization on trees.
  -ftree-vrp                  Perform Value Range Propagation on trees.
  -funconstrained-commons     Assume common declarations may be overridden with ones with a larger trailing array.
  -funroll-all-loops          Perform loop unrolling for all loops.
  -funroll-loops              Perform loop unrolling when iteration count is known.
  -funsafe-math-optimizations Allow math optimizations that may violate IEEE or ISO standards.
  -funswitch-loops            Perform loop unswitching.
  -funwind-tables             Just generate unwind tables for exception handling.
  -fvar-tracking              Perform variable tracking.
  -fvar-tracking-assignments  Perform variable tracking by annotating assignments.
  -fvar-tracking-assignments-toggle Toggle -fvar-tracking-assignments.
  -fvar-tracking-uninit       Perform variable tracking and also tag variables that are uninitialized.
  -fvariable-expansion-in-unroller Apply variable expansion when loops are unrolled.
  -fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
  -fversion-loops-for-strides Version loops based on whether indices have a stride of one.
  -fvpt                       Use expression value profiles in optimizations.
  -fweb                       Construct webs and split unrelated uses of single variable.
  -fwrapv                     Assume signed arithmetic overflow wraps around.
  -fwrapv-pointer             Assume pointer overflow wraps around.

The following options are target specific:
  -m128bit-long-double        sizeof(long double) is 16.
  -m16                        Generate 16bit i386 code.
  -m32                        Generate 32bit i386 code.
  -m3dnow                     Support 3DNow! built-in functions.
  -m3dnowa                    Support Athlon 3Dnow! built-in functions.
  -m64                        Generate 64bit x86-64 code.
  -m80387                     Use hardware fp.
  -m8bit-idiv                 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
  -m96bit-long-double         sizeof(long double) is 12.
  -mabi=                      Generate code that conforms to the given ABI.
  -mabm                       Support code generation of Advanced Bit Manipulation (ABM) instructions.
  -maccumulate-outgoing-args  Reserve space for outgoing arguments in the function prologue.
  -maddress-mode=             Use given address mode.
  -madx                       Support flag-preserving add-carry instructions.
  -maes                       Support AES built-in functions and code generation.
  -malign-data=               Use the given data alignment.
  -malign-double              Align some doubles on dword boundary.
  -malign-functions=          Function starts are aligned to this power of 2.
  -malign-jumps=              Jump targets are aligned to this power of 2.
  -malign-loops=              Loop code aligned to this power of 2.
  -malign-stringops           Align destination of the string operations.
  -mandroid                   Generate code for the Android platform.
  -march=                     Generate code for given CPU.
  -masm=                      Use given assembler dialect.
  -mavx                       Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
  -mavx2                      Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
  -mavx256-split-unaligned-load Split 32-byte AVX unaligned load.
  -mavx256-split-unaligned-store Split 32-byte AVX unaligned store.
  -mavx5124fmaps              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
  -mavx5124vnniw              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
  -mavx512bitalg              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation.
  -mavx512bw                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
  -mavx512cd                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
  -mavx512dq                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
  -mavx512er                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
  -mavx512f                   Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
  -mavx512ifma                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
  -mavx512pf                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
  -mavx512vbmi                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
  -mavx512vbmi2               Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
  -mavx512vl                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
  -mavx512vnni                Support AVX512VNNI built-in functions and code generation.
  -mavx512vpopcntdq           Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
  -mbionic                    Use Bionic C library.
  -mbmi                       Support BMI built-in functions and code generation.
  -mbmi2                      Support BMI2 built-in functions and code generation.
  -mbranch-cost=<0,5>         Branches are this expensive (arbitrary units).
  -mcall-ms2sysv-xlogues      Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
  -mcet-switch                Turn on CET instrumentation for switch statements that use a jump table and an indirect jump.
  -mcld                       Generate cld instruction in the function prologue.
  -mcldemote                  Support CLDEMOTE built-in functions and code generation.
  -mclflushopt                Support CLFLUSHOPT instructions.
  -mclwb                      Support CLWB instruction.
  -mclzero                    Support CLZERO built-in functions and code generation.
  -mcmodel=                   Use given x86-64 code model.
  -mcpu=                      Same as -mtune=.  Use the latter option instead.  Uses of this option are diagnosed.
  -mcrc32                     Support code generation of crc32 instruction.
  -mcx16                      Support code generation of cmpxchg16b instruction.
  -mdispatch-scheduler        Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4 or znver1 and Haifa scheduling is selected.
  -mdump-tune-features        This option lacks documentation.
  -mf16c                      Support F16C built-in functions and code generation.
  -mfancy-math-387            Generate sin, cos, sqrt for FPU.
  -mfentry                    Emit profiling counter call at function entry before prologue.
  -mfentry-name=              Set name of __fentry__ symbol called at function entry.
  -mfentry-section=           Set name of section to record mrecord-mcount calls.
  -mfma                       Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
  -mfma4                      Support FMA4 built-in functions and code generation.
  -mforce-drap                Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
  -mforce-indirect-call       Make all function calls indirect.
  -mfp-ret-in-387             Return values of functions in FPU registers.
  -mfpmath=                   Generate floating point mathematics using given instruction set.
  -mfsgsbase                  Support FSGSBASE built-in functions and code generation.
  -mfunction-return=          Convert function return to call and return thunk.
  -mfused-madd                Same as -ffp-contract=.  Use the latter option instead.  Uses of this option are diagnosed.
  -mfxsr                      Support FXSAVE and FXRSTOR instructions.
  -mgeneral-regs-only         Generate code which uses only the general registers.
  -mgfni                      Support GFNI built-in functions and code generation.
  -mglibc                     Use GNU C library.
  -mhard-float                Use hardware fp.
  -mhle                       Support Hardware Lock Elision prefixes.
  -miamcu                     Generate code that conforms to Intel MCU psABI.
  -mieee-fp                   Use IEEE math for fp comparisons.
  -mincoming-stack-boundary=  Assume incoming stack aligned to this power of 2.
  -mindirect-branch-register  Force indirect call and jump via register.
  -mindirect-branch=          Convert indirect call and jump to call and return thunks.
  -minline-all-stringops      Inline all known string operations.
  -minline-stringops-dynamically Inline memset/memcpy string operations, but perform inline version only for small blocks.
  -minstrument-return=        Instrument function exit in instrumented functions with __fentry__.
  -mintel-syntax              Same as -masm=.  Use the latter option instead.  Uses of this option are diagnosed.
  -mlarge-data-threshold=<number> Data greater than given threshold will go into .ldata section in x86-64 medium model.
  -mlong-double-128           Use 128-bit long double.
  -mlong-double-64            Use 64-bit long double.
  -mlong-double-80            Use 80-bit long double.
  -mlwp                       Support LWP built-in functions and code generation.
  -mlzcnt                     Support LZCNT built-in function and code generation.
  -mmanual-endbr              Insert ENDBR instruction at function entry only via cf_check attribute for CET instrumentation.
  -mmemcpy-strategy=          Specify memcpy expansion strategy when expected size is known.
  -mmemset-strategy=          Specify memset expansion strategy when expected size is known.
  -mmitigate-rop              This option lacks documentation.
  -mmmx                       Support MMX built-in functions.
  -mmovbe                     Support code generation of movbe instruction.
  -mmovdir64b                 Support MOVDIR64B built-in functions and code generation.
  -mmovdiri                   Support MOVDIRI built-in functions and code generation.
  -mmpx                       Deprecated in GCC 9.  This switch has no effect.
  -mms-bitfields              Use native (MS) bitfield layout.
  -mmusl                      Use musl C library.
  -mmwaitx                    Support MWAITX and MONITORX built-in functions and code generation.
  -mno-align-stringops        This option lacks documentation.
  -mno-default                Clear all tune features.
  -mno-fancy-math-387         This option lacks documentation.
  -mno-push-args              This option lacks documentation.
  -mno-red-zone               This option lacks documentation.
  -mno-sse4                   Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
  -mnop-mcount                Generate mcount/__fentry__ calls as nops. To activate they need to be patched in.
  -momit-leaf-frame-pointer   Omit the frame pointer in leaf functions.
  -mpc32                      Set 80387 floating-point precision to 32-bit.
  -mpc64                      Set 80387 floating-point precision to 64-bit.
  -mpc80                      Set 80387 floating-point precision to 80-bit.
  -mpclmul                    Support PCLMUL built-in functions and code generation.
  -mpcommit                   This option lacks documentation.
  -mpconfig                   Support PCONFIG built-in functions and code generation.
  -mpku                       Support PKU built-in functions and code generation.
  -mpopcnt                    Support code generation of popcnt instruction.
  -mprefer-avx128             Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.  Same as -mprefer-vector-width=.
  -mprefer-vector-width=      Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
  -mpreferred-stack-boundary= Attempt to keep stack aligned to this power of 2.
  -mprefetchwt1               Support PREFETCHWT1 built-in functions and code generation.
  -mprfchw                    Support PREFETCHW instruction.
  -mptwrite                   Support PTWRITE built-in functions and code generation.
  -mpush-args                 Use push instructions to save outgoing arguments.
  -mrdpid                     Support RDPID built-in functions and code generation.
  -mrdrnd                     Support RDRND built-in functions and code generation.
  -mrdseed                    Support RDSEED instruction.
  -mrecip                     Generate reciprocals instead of divss and sqrtss.
  -mrecip=                    Control generation of reciprocal estimates.
  -mrecord-mcount             Generate __mcount_loc section with all mcount or __fentry__ calls.
  -mrecord-return             Generate a __return_loc section pointing to all return instrumentation code.
  -mred-zone                  Use red-zone in the x86-64 code.
  -mregparm=                  Number of registers used to pass integer arguments.
  -mrtd                       Alternate calling convention.
  -mrtm                       Support RTM built-in functions and code generation.
  -msahf                      Support code generation of sahf instruction in 64bit x86-64 code.
  -msgx                       Support SGX built-in functions and code generation.
  -msha                       Support SHA1 and SHA256 built-in functions and code generation.
  -mshstk                     Enable shadow stack built-in functions from Control-flow Enforcement Technology (CET).
  -mskip-rax-setup            Skip setting up RAX register when passing variable arguments.
  -msoft-float                Do not use hardware fp.
  -msse                       Support MMX and SSE built-in functions and code generation.
  -msse2                      Support MMX, SSE and SSE2 built-in functions and code generation.
  -msse2avx                   Encode SSE instructions with VEX prefix.
  -msse3                      Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
  -msse4                      Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
  -msse4.1                    Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
  -msse4.2                    Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
  -msse4a                     Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
  -msse5                      Same as -mavx.  Use the latter option instead.  Uses of this option are diagnosed.
  -msseregparm                Use SSE register passing conventions for SF and DF mode.
  -mssse3                     Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
  -mstack-arg-probe           Enable stack probing.
  -mstack-protector-guard-offset= Use the given offset for addressing the stack-protector guard.
  -mstack-protector-guard-reg= Use the given base register for addressing the stack-protector guard.
  -mstack-protector-guard-symbol= Use the given symbol for addressing the stack-protector guard.
  -mstack-protector-guard=    Use given stack-protector guard.
  -mstackrealign              Realign stack in prologue.
  -mstringop-strategy=        Chose strategy to generate stringop using.
  -mstv                       Disable Scalar to Vector optimization pass transforming 64-bit integer computations into a vector ones.
  -mtbm                       Support TBM built-in functions and code generation.
  -mtls-dialect=              Use given thread-local storage dialect.
  -mtls-direct-seg-refs       Use direct references against %gs when accessing tls data.
  -mtune-ctrl=                Fine grain control of tune features.
  -mtune=                     Schedule code for given CPU.
  -muclibc                    Use uClibc C library.
  -mvaes                      Support VAES built-in functions and code generation.
  -mveclibabi=                Vector library ABI to use.
  -mvect8-ret-in-mem          Return 8-byte vectors in memory.
  -mvpclmulqdq                Support VPCLMULQDQ built-in functions and code generation.
  -mvzeroupper                Generate vzeroupper instruction before a transfer of control flow out of the function.
  -mwaitpkg                   Support WAITPKG built-in functions and code generation.
  -mwbnoinvd                  Support WBNOINVD built-in functions and code generation.
  -mx32                       Generate 32bit x86-64 code.
  -mxop                       Support XOP built-in functions and code generation.
  -mxsave                     Support XSAVE and XRSTOR instructions.
  -mxsavec                    Support XSAVEC instructions.
  -mxsaveopt                  Support XSAVEOPT instruction.
  -mxsaves                    Support XSAVES and XRSTORS instructions.

  Known assembler dialects (for use with the -masm= option):
    att intel

  Known ABIs (for use with the -mabi= option):
    ms sysv

  Known code models (for use with the -mcmodel= option):
    32 kernel large medium small

  Valid arguments to -mfpmath=:
    387 387+sse 387,sse both sse sse+387 sse,387

  Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
    keep thunk thunk-extern thunk-inline

  Known choices for return instrumentation with -minstrument-return=:
    call none nop5

  Known data alignment choices (for use with the -malign-data= option):
    abi cacheline compat

  Known vectorization library ABIs (for use with the -mveclibabi= option):
    acml svml

  Known address mode (for use with the -maddress-mode= option):
    long short

  Known preferred register vector length (to use with the -mprefer-vector-width= option):
    128 256 512 none

  Known stack protector guard (for use with the -mstack-protector-guard= option):
    global tls

  Valid arguments to -mstringop-strategy=:
    byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop vector_loop

  Known TLS dialects (for use with the -mtls-dialect= option):
    gnu gnu2

  Known valid arguments for -march= option:
    i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2 c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 btver1 btver2 generic native

  Known valid arguments for -mtune= option:
    generic i386 i486 pentium lakemont pentiumpro pentium4 nocona core2 nehalem sandybridge haswell bonnell silvermont goldmont goldmont-plus tremont knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake intel geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2

The following options are language-independent:
  --completion=               Provide bash completion for options starting with provided string.
  --debug                     Same as -g.  Use the latter option instead.
  --dumpbase                  Same as -dumpbase.  Use the latter option instead.
  --dumpdir                   Same as -dumpdir.  Use the latter option instead.
  --help                      Display this information.
  --help=<class>              Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
  --optimize                  Same as -O.  Use the latter option instead.
  --param <param>=<value>     Set parameter <param> to value.  See below for a complete list of parameters.
  --param=                    Same as --param.  Use the latter option instead.
  --pedantic-errors           Same as -pedantic-errors.  Use the latter option instead.
  --profile                   Same as -p.  Use the latter option instead.
  --target-help               Alias for --help=target.
  --version                   This option lacks documentation.
  -Werror=                    Treat specified warning as error.
  -Wfatal-errors              Exit on the first error occurred.
  -aux-info <file>            Emit declaration information into <file>.
  -aux-info=                  Same as -aux-info.  Use the latter option instead.
  -auxbase                    This option lacks documentation.
  -auxbase-strip              This option lacks documentation.
  -dumpbase <file>            Set the file basename to be used for dumps.
  -dumpdir <dir>              Set the directory name to be used for dumps.
  -fPIC                       Generate position-independent code if possible (large mode).
  -fPIE                       Generate position-independent code for executables if possible (large mode).
  -fabi-version=              The version of the C++ ABI in use.
  -fargument-alias            Does nothing. Preserved for backward compatibility.
  -fargument-noalias          Does nothing. Preserved for backward compatibility.
  -fargument-noalias-anything Does nothing. Preserved for backward compatibility.
  -fargument-noalias-global   Does nothing. Preserved for backward compatibility.
  -fasan-shadow-offset=<number> Use custom shadow memory offset.
  -fauto-profile              Use sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.
  -fauto-profile=             Use sample profile information for call graph node weights. The profile file is specified in the argument.
  -fcall-saved-<register>     Mark <register> as being preserved across functions.
  -fcall-used-<register>      Mark <register> as being corrupted by function calls.
  -fcf-protection             Same as -fcf-protection=.  Use the latter option instead.
  -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer instructions have valid targets.
  -fcheck-data-deps           This switch is deprecated; do not use.
  -fcheck-new                 Check the return value of new in C++.
  -fchecking                  Perform internal consistency checkings.
  -fchecking=                 Perform internal consistency checkings.
  -fcommon                    Do not put uninitialized globals in the common section.
  -fcompare-debug-second      Run only the second compilation of -fcompare-debug.
  -fcompare-debug[=<opts>]    Compile with and without e.g. -gtoggle, and compare the final-insns dump.
  -fcse-skip-blocks           Does nothing.  Preserved for backward compatibility.
  -fdata-sections             Place data items into their own section.
  -fdbg-cnt-list              List all available debugging counters with their limits and counts.
  -fdbg-cnt=<counter>[:<lower_limit>]:<upper_limit>[,<counter>:...] Set the debug counter limit.
  -fdebug-prefix-map=         -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
  -fdebug-types-section       Output .debug_types section when using DWARF v4 debuginfo.
  -fdevirtualize-at-ltrans    Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
  -fdiagnostics-color         Same as -fdiagnostics-color=.  Use the latter option instead.
  -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
  -fdiagnostics-format=       -fdiagnostics-format=[text|json] Select output format.
  -fdiagnostics-generate-patch Print fix-it hints to stderr in unified diff format.
  -fdiagnostics-minimum-margin-width= Set minimum width of left margin of source code when showing source.
  -fdiagnostics-parseable-fixits Print fix-it hints in machine-readable form.
  -fdiagnostics-show-caret    Show the source line with a caret indicating the column.
  -fdiagnostics-show-labels   Show labels annotating ranges of source code when showing source.
  -fdiagnostics-show-line-numbers Show line numbers in the left margin when showing source.
  -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
  -fdiagnostics-show-option   Amend appropriate diagnostic messages with the command line option that controls them.
  -fdisable-                  -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
  -fdump-<type>               Dump various compiler internals to a file.
  -fdump-final-insns=filename Dump to filename the insns at the end of translation.
  -fdump-go-spec=filename     Write all declarations to file as Go code.
  -fdump-internal-locations   Dump detailed information on GCC's internal representation of source code locations.
  -fdump-noaddr               Suppress output of addresses in debugging dumps.
  -fdump-passes               Dump optimization passes.
  -fdump-unnumbered           Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
  -fdump-unnumbered-links     Suppress output of previous and next insn numbers in debugging dumps.
  -fdwarf2-cfi-asm            Enable CFI tables via GAS assembler directives.
  -feliminate-dwarf2-dups     Does nothing.  Preserved for backward compatibility.
  -feliminate-unused-debug-symbols Perform unused symbol elimination in debug info.
  -feliminate-unused-debug-types Perform unused type elimination in debug info.
  -femit-class-debug-always   Do not suppress C++ class debug information.
  -fenable-                   -fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
  -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
  -ffat-lto-objects           Output lto objects containing both the intermediate language and binary output.
  -ffile-prefix-map=          -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
  -ffixed-<register>          Mark <register> as being unavailable to the compiler.
  -fforce-addr                Does nothing.  Preserved for backward compatibility.
  -ffunction-sections         Place each function into its own section.
  -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
  -fgnu-tm                    Enable support for GNU transactional memory.
  -fgnu-unique                Use STB_GNU_UNIQUE if supported by the assembler.
  -fhelp                      Same as --help.  Use the latter option instead.
  -fhelp=                     Same as --help=.  Use the latter option instead.
  -fident                     Process #ident directives.
  -finhibit-size-directive    Do not generate .size directives.
  -finline-limit-             Same as -finline-limit=.  Use the latter option instead.
  -finline-limit=<number>     Limit the size of inlined functions to <number>.
  -finstrument-functions      Instrument function entry and exit with profiling calls.
  -finstrument-functions-exclude-file-list= -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files.
  -finstrument-functions-exclude-function-list= -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions.
  -fipa-cp-alignment          Does nothing.  Preserved for backward compatibility.
  -fipa-matrix-reorg          Does nothing. Preserved for backward compatibility.
  -fipa-struct-reorg          Does nothing. Preserved for backward compatibility.
  -fira-verbose=<number>      Control IRA's level of diagnostic messages.
  -fkeep-inline-functions     Generate code for functions even if they are fully inlined.
  -fkeep-static-consts        Emit static const variables even if they are not used.
  -fkeep-static-functions     Generate code for static functions even if they are never called.
  -fleading-underscore        Give external symbols a leading underscore.
  -floop-block                Enable loop nest transforms.  Same as -floop-nest-optimize.  Same as -floop-nest-optimize.
  -floop-flatten              Does nothing. Preserved for backward compatibility.
  -floop-optimize             Does nothing.  Preserved for backward compatibility.
  -floop-strip-mine           Enable loop nest transforms.  Same as -floop-nest-optimize.  Same as -floop-nest-optimize.
  -flto                       Enable link-time optimization.
  -flto-compression-level=<number>	Use  Use zlib compression level <number> for IL.
  -flto-odr-type-merging      Merge C++ types using One Definition Rule.
  -flto-partition=            Specify the algorithm to partition symbols and vars at linktime.
  -flto-report                Report various link-time optimization statistics.
  -flto-report-wpa            Report various link-time optimization statistics for WPA only.
  -flto=                      Link-time optimization with number of parallel jobs or jobserver.
  -fmax-errors=<number>       Maximum number of errors to report.
  -fmem-report                Report on permanent memory allocation.
  -fmem-report-wpa            Report on permanent memory allocation in WPA only.
  -fmerge-all-constants       Attempt to merge identical constants and constant variables.
  -fmerge-constants           Attempt to merge identical constants across compilation units.
  -fmerge-debug-strings       Attempt to merge identical debug strings across compilation units.
  -fmessage-length=<number>   Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
  -foffload-abi=              -foffload-abi=[lp64|ilp32]     Set the ABI to use in an offload compiler.
  -foffload=                  -foffload=<targets>=<options>  Specify offloading targets and options for them.
  -fopt-info[-<type>=filename] Dump compiler optimization details.
  -foptimize-register-move    Does nothing. Preserved for backward compatibility.
  -fpcc-struct-return         Return small aggregates in memory, not registers.
  -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
  -fpic                       Generate position-independent code if possible (small mode).
  -fpie                       Generate position-independent code for executables if possible (small mode).
  -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
  -fplugin=                   Specify a plugin to load.
  -fpost-ipa-mem-report       Report on memory allocation before interprocedural optimization.
  -fpre-ipa-mem-report        Report on memory allocation before interprocedural optimization.
  -fprofile                   Enable basic program profiling code.
  -fprofile-abs-path          Generate absolute source path names for gcov.
  -fprofile-arcs              Insert arc-based program profiling code.
  -fprofile-correction        Enable correction of flow inconsistent profile data input.
  -fprofile-dir=              Set the top-level directory for storing the profile data. The default is 'pwd'.
  -fprofile-exclude-files=    Instrument only functions from files where names do not match all the regular expressions (separated by a semi-colon).
  -fprofile-filter-files=     Instrument only functions from files where names match any regular expression (separated by a semi-colon).
  -fprofile-generate          Enable common options for generating profile info for profile feedback directed optimizations.
  -fprofile-generate=         Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
  -fprofile-reorder-functions Enable function reordering that improves code placement.
  -fprofile-report            Report on consistency of profile.
  -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
  -fprofile-use               Enable common options for performing profile feedback directed optimizations.
  -fprofile-use=              Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
  -fprofile-values            Insert code to profile values of expressions.
  -frandom-seed               This option lacks documentation.
  -frandom-seed=<string>      Make compile reproducible using <string>.
  -frecord-gcc-switches       Record gcc command line switches in the object file.
  -free                       Turn on Redundant Extensions Elimination pass.
  -fregmove                   Does nothing. Preserved for backward compatibility.
  -freport-bug                Collect and dump debug information into temporary file if ICE in C/C++ compiler occurred.
  -frerun-loop-opt            Does nothing.  Preserved for backward compatibility.
  -fsanitize-address-use-after-scope This option lacks documentation.
  -fsanitize-coverage=        Select type of coverage sanitization.
  -fsanitize-recover          This switch is deprecated; use -fsanitize-recover= instead.
  -fsanitize-recover=         After diagnosing undefined behavior attempt to continue execution.
  -fsanitize-sections=<sec1,sec2,...> Sanitize global variables in user-defined sections.
  -fsanitize-undefined-trap-on-error Use trap instead of a library function for undefined behavior sanitization.
  -fsanitize=                 Select what to sanitize.
  -fsched-verbose=<number>    Set the verbosity level of the scheduler.
  -fsched2-use-traces         Does nothing.  Preserved for backward compatibility.
  -fsee                       Does nothing.  Preserved for backward compatibility.
  -fself-test=                Run self-tests, using the given path to locate test files.
  -fsemantic-interposition    Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
  -fshow-column               Show column numbers in diagnostics, when available.  Default on.
  -fsplit-stack               Generate discontiguous stack frames.
  -fstack-check               Insert stack checking code into the program.  Same as -fstack-check=specific.  Same as -fstack-check=.
  -fstack-limit               This option lacks documentation.
  -fstack-limit-register=<register> Trap if the stack goes past <register>.
  -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
  -fstack-usage               Output stack usage information on a per-function basis.
  -fstrength-reduce           Does nothing.  Preserved for backward compatibility.
  -fstrict-overflow           Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
  -fsync-libcalls             Implement __atomic operations via libcalls to legacy __sync functions.
  -fsyntax-only               Check for syntax errors, then stop.
  -ftarget-help               Same as --target-help.  Use the latter option instead.
  -ftest-coverage             Create data files needed by "gcov".
  -ftime-report               Report the time taken by each compiler pass.
  -ftime-report-details       Record times taken by sub-phases separately.
  -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
  -ftoplevel-reorder          Reorder top level functions, variables, and asms.
  -ftrampolines               For targets that normally need trampolines for nested functions, always generate them instead of using descriptors.
  -ftree-coalesce-inlined-vars Does nothing.  Preserved for backward compatibility.
  -ftree-copyrename           Does nothing.  Preserved for backward compatibility.
  -ftree-loop-if-convert-stores Does nothing. Preserved for backward compatibility.
  -ftree-loop-linear          Enable loop nest transforms.  Same as -floop-nest-optimize.  Same as -floop-nest-optimize.
  -ftree-salias               Does nothing.  Preserved for backward compatibility.
  -ftree-store-ccp            Does nothing.  Preserved for backward compatibility.
  -ftree-store-copy-prop      Does nothing.  Preserved for backward compatibility.
  -ftree-vect-loop-version    Does nothing. Preserved for backward compatibility.
  -ftree-vectorizer-verbose=  Does nothing.  Preserved for backward compatibility.
  -funit-at-a-time            Compile whole compilation unit at a time.
  -funsafe-loop-optimizations Does nothing.  Preserved for backward compatibility.
  -fuse-ld=bfd                Use the bfd linker instead of the default linker.
  -fuse-ld=gold               Use the gold linker instead of the default linker.
  -fuse-ld=lld                Use the lld LLVM linker instead of the default linker.
  -fuse-linker-plugin         This option lacks documentation.
  -fvect-cost-model           Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.  Same as -fvect-cost-model=.
  -fverbose-asm               Add extra commentary to assembler output.
  -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
  -fvtable-verify=            Validate vtable pointers before using them.
  -fvtv-counts                Output vtable verification counters.
  -fvtv-debug                 Output vtable verification pointer sets information.
  -fwhole-program             Perform whole program optimizations.
  -fzee                       Does nothing.  Preserved for backward compatibility.
  -fzero-initialized-in-bss   Put zero initialized data in the bss section.
  -g                          Generate debug information in default format.
  -gas-loc-support            Assume assembler support for (DWARF2+) .loc directives.
  -gas-locview-support        Assume assembler support for view in (DWARF2+) .loc directives.
  -gcoff                      Does nothing.  Preserved for backward compatibility.
  -gcoff1                     Does nothing.  Preserved for backward compatibility.
  -gcoff2                     Does nothing.  Preserved for backward compatibility.
  -gcoff3                     Does nothing.  Preserved for backward compatibility.
  -gcolumn-info               Record DW_AT_decl_column and DW_AT_call_column in DWARF.
  -gdescribe-dies             Add description attributes to some DWARF DIEs that have no name attribute.
  -gdwarf                     Generate debug information in default version of DWARF format.
  -gdwarf-                    Generate debug information in DWARF v2 (or later) format.
  -ggdb                       Generate debug information in default extended format.
  -ggnu-pubnames              Generate DWARF pubnames and pubtypes sections with GNU extensions.
  -ginline-points             Generate extended entry point information for inlined functions.
  -ginternal-reset-location-views Compute locview reset points based on insn length estimates.
  -gno-pubnames               Don't generate DWARF pubnames and pubtypes sections.
  -gpubnames                  Generate DWARF pubnames and pubtypes sections.
  -grecord-gcc-switches       Record gcc command line switches in DWARF DW_AT_producer.
  -gsplit-dwarf               Generate debug information in separate .dwo files.
  -gstabs                     Generate debug information in STABS format.
  -gstabs+                    Generate debug information in extended STABS format.
  -gstatement-frontiers       Emit progressive recommended breakpoint locations.
  -gstrict-dwarf              Don't emit DWARF additions beyond selected version.
  -gtoggle                    Toggle debug information generation.
  -gvariable-location-views   Augment variable location lists with progressive views.
  -gvariable-location-views=incompat5 This option lacks documentation.
  -gvms                       Generate debug information in VMS format.
  -gxcoff                     Generate debug information in XCOFF format.
  -gxcoff+                    Generate debug information in extended XCOFF format.
  -gz                         Generate compressed debug sections.
  -gz=<format>                Generate compressed debug sections in format <format>.
  -imultiarch <dir>           Set <dir> to be the multiarch include subdirectory.
  -iplugindir=<dir>           Set <dir> to be the default plugin directory.
  -p                          Enable function profiling.
  -pedantic-errors            Like -pedantic but issue them as errors.
  -quiet                      Do not display functions compiled or elapsed time.

Usage: as [option...] [asmfile...]
Options:
  -a[sub-option...]	  turn on listings
                      	  Sub-options [default hls]:
                      	  c      omit false conditionals
                      	  d      omit debugging directives
                      	  g      include general info
                      	  h      include high-level source
                      	  l      include assembly
                      	  m      include macro expansions
                      	  n      omit forms processing
                      	  s      include symbols
                      	  =FILE  list to FILE (must be last sub-option)
  --alternate             initially turn on alternate macro syntax
  --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]
                          compress DWARF debug sections using zlib
  --nocompress-debug-sections
                          don't compress DWARF debug sections [default]
  -D                      produce assembler debugging messages
  --debug-prefix-map OLD=NEW
                          map OLD to NEW in debug information
  --defsym SYM=VAL        define symbol SYM to given value
  --execstack             require executable stack for this object
  --noexecstack           don't require executable stack for this object
  --size-check=[error|warning]
			  ELF .size directive check (default --size-check=error)
  --elf-stt-common=[no|yes] (default: no)
                          generate ELF common symbols with STT_COMMON type
  --sectname-subst        enable section name substitution sequences
  --generate-missing-build-notes=[no|yes] (default: no)
                          generate GNU Build notes if none are present in the input
  -f                      skip whitespace and comment preprocessing
  -g --gen-debug          generate debugging information
  --gstabs                generate STABS debugging information
  --gstabs+               generate STABS debug info with GNU extensions
  --gdwarf-2              generate DWARF2 debugging information
  --gdwarf-sections       generate per-function section names for DWARF line information
  --hash-size=<value>     set the hash table size close to <value>
  --help                  show this message and exit
  --target-help           show target specific options
  -I DIR                  add DIR to search list for .include directives
  -J                      don't warn about signed overflow
  -K                      warn when differences altered for long displacements
  -L,--keep-locals        keep local symbols (e.g. starting with `L')
  -M,--mri                assemble in MRI compatibility mode
  --MD FILE               write dependency information in FILE (default none)
  -nocpp                  ignored
  -no-pad-sections        do not pad the end of sections to alignment boundaries
  -o OBJFILE              name the object-file output OBJFILE (default a.out)
  -R                      fold data section into text section
  --reduce-memory-overheads 
                          prefer smaller memory use at the cost of longer
                          assembly times
  --statistics            print various measured statistics from execution
  --strip-local-absolute  strip local absolute symbols
  --traditional-format    Use same format as native assembler when possible
  --version               print assembler version number and exit
  -W  --no-warn           suppress warnings
  --warn                  don't suppress warnings
  --fatal-warnings        treat warnings as errors
  -w                      ignored
  -X                      ignored
  -Z                      generate object file even after errors
  --listing-lhs-width     set the width in words of the output data column of
                          the listing
  --listing-lhs-width2    set the width in words of the continuation lines
                          of the output data column; ignored if smaller than
                          the width of the first line
  --listing-rhs-width     set the max width in characters of the lines from
                          the source file
  --listing-cont-lines    set the maximum number of continuation lines used
                          for the output data column of the listing
  @FILE                   read options from FILE
  -Qy, -Qn                ignored
  -V                      print assembler version number
  -k                      ignored
  -n                      Do not optimize code alignment
  -q                      quieten some warnings
  -s                      ignored
  --32/--64/--x32         generate 32bit/64bit/x32 code
  --divide                ignored
  -march=CPU[,+EXTENSION...]
                          generate code for CPU and EXTENSION, CPU is one of:
                           generic32, generic64, i386, i486, i586, i686,
                           pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
                           prescott, nocona, core, core2, corei7, l1om, k1om,
                           iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
                           bdver1, bdver2, bdver3, bdver4, znver1, znver2,
                           btver1, btver2
                          EXTENSION is combination of:
                           8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2,
                           sse3, ssse3, sse4.1, sse4.2, sse4, avx, avx2,
                           avx512f, avx512cd, avx512er, avx512pf, avx512dq,
                           avx512bw, avx512vl, vmx, vmfunc, smx, xsave,
                           xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase,
                           rdrnd, f16c, bmi2, fma, fma4, xop, lwp, movbe, cx16,
                           ept, lzcnt, hle, rtm, invpcid, clflush, nop, syscall,
                           rdtscp, 3dnow, 3dnowa, padlock, svme, sse4a, abm,
                           bmi, tbm, adx, rdseed, prfchw, smap, mpx, sha,
                           clflushopt, prefetchwt1, se1, clwb, avx512ifma,
                           avx512vbmi, avx512_4fmaps, avx512_4vnniw,
                           avx512_vpopcntdq, avx512_vbmi2, avx512_vnni,
                           avx512_bitalg, clzero, mwaitx, ospke, rdpid, ptwrite,
                           ibt, shstk, gfni, vaes, vpclmulqdq, wbnoinvd,
                           pconfig, waitpkg, cldemote, movdiri, movdir64b,
                           avx512_bf16, avx512_vp2intersect, enqcmd, rdpru,
                           mcommit, no87, no287, no387, no687, nocmov, nofxsr,
                           nommx, nosse, nosse2, nosse3, nossse3, nosse4.1,
                           nosse4.2, nosse4, noavx, noavx2, noavx512f,
                           noavx512cd, noavx512er, noavx512pf, noavx512dq,
                           noavx512bw, noavx512vl, noavx512ifma, noavx512vbmi,
                           noavx512_4fmaps, noavx512_4vnniw, noavx512_vpopcntdq,
                           noavx512_vbmi2, noavx512_vnni, noavx512_bitalg,
                           noibt, noshstk, nomovdiri, nomovdir64b,
                           noavx512_bf16, noavx512_vp2intersect, noenqcmd
  -mtune=CPU              optimize for CPU, CPU is one of:
                           generic32, generic64, i8086, i186, i286, i386, i486,
                           i586, i686, pentium, pentiumpro, pentiumii,
                           pentiumiii, pentium4, prescott, nocona, core, core2,
                           corei7, l1om, k1om, iamcu, k6, k6_2, athlon, opteron,
                           k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
                           znver2, btver1, btver2
  -msse2avx               encode SSE instructions with VEX prefix
  -msse-check=[none|error|warning] (default: warning)
                          check SSE instructions
  -moperand-check=[none|error|warning] (default: warning)
                          check operand combinations for validity
  -mavxscalar=[128|256] (default: 128)
                          encode scalar AVX instructions with specific vector
                           length
  -mvexwig=[0|1] (default: 0)
                          encode VEX instructions with specific VEX.W value
                           for VEX.W bit ignored instructions
  -mevexlig=[128|256|512] (default: 128)
                          encode scalar EVEX instructions with specific vector
                           length
  -mevexwig=[0|1] (default: 0)
                          encode EVEX instructions with specific EVEX.W value
                           for EVEX.W bit ignored instructions
  -mevexrcig=[rne|rd|ru|rz] (default: rne)
                          encode EVEX instructions with specific EVEX.RC value
                           for SAE-only ignored instructions
  -mmnemonic=[att|intel] (default: att)
                          use AT&T/Intel mnemonic
  -msyntax=[att|intel] (default: att)
                          use AT&T/Intel syntax
  -mindex-reg             support pseudo index registers
  -mnaked-reg             don't require `%' prefix for registers
  -madd-bnd-prefix        add BND prefix for all valid branches
  -mshared                disable branch optimization for shared code
  -mx86-used-note=[no|yes] (default: no)
                          generate x86 used ISA and feature properties
  -momit-lock-prefix=[no|yes] (default: no)
                          strip all lock prefixes
  -mfence-as-lock-add=[no|yes] (default: no)
                          encode lfence, mfence and sfence as
                           lock addl $0x0, (%{re}sp)
  -mrelax-relocations=[no|yes] (default: yes)
                          generate relax relocations
  -malign-branch-boundary=NUM (default: 0)
                          align branches within NUM byte boundary
  -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)
                          TYPE is combination of jcc, fused, jmp, call, ret,
                           indirect
                          specify types of branches to align
  -malign-branch-prefix-size=NUM (default: 5)
                          align branches with NUM prefixes per instruction
  -mbranches-within-32B-boundaries
                          align branches within 32 byte boundary
  -mamd64                 accept only AMD64 ISA [default]
  -mintel64               accept only Intel64 ISA

Report bugs to <http://www.sourceware.org/bugzilla/>
Usage: collect2 [options]
 Wrap linker and generate constructor code if needed.
 Options:
  -debug          Enable debug output
  --help          Display this information
  -v, --version   Display this program's version number

Overview: https://gcc.gnu.org/onlinedocs/gccint/Collect2.html
Report bugs: <file:///usr/share/doc/gcc-9/README.Bugs>

Usage: /usr/bin/ld [options] file...
Options:
  -a KEYWORD                  Shared library control for HP/UX compatibility
  -A ARCH, --architecture ARCH
                              Set architecture
  -b TARGET, --format TARGET  Specify target for following input files
  -c FILE, --mri-script FILE  Read MRI format linker script
  -d, -dc, -dp                Force common symbols to be defined
  --force-group-allocation    Force group members out of groups
  -e ADDRESS, --entry ADDRESS Set start address
  -E, --export-dynamic        Export all dynamic symbols
  --no-export-dynamic         Undo the effect of --export-dynamic
  -EB                         Link big-endian objects
  -EL                         Link little-endian objects
  -f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table
  -F SHLIB, --filter SHLIB    Filter for shared object symbol table
  -g                          Ignored
  -G SIZE, --gpsize SIZE      Small data size (if no size, same as --shared)
  -h FILENAME, -soname FILENAME
                              Set internal name of shared library
  -I PROGRAM, --dynamic-linker PROGRAM
                              Set PROGRAM as the dynamic linker to use
  --no-dynamic-linker         Produce an executable with no program interpreter header
  -l LIBNAME, --library LIBNAME
                              Search for library LIBNAME
  -L DIRECTORY, --library-path DIRECTORY
                              Add DIRECTORY to library search path
  --sysroot=<DIRECTORY>       Override the default sysroot location
  -m EMULATION                Set emulation
  -M, --print-map             Print map file on standard output
  -n, --nmagic                Do not page align data
  -N, --omagic                Do not page align data, do not make text readonly
  --no-omagic                 Page align data, make text readonly
  -o FILE, --output FILE      Set output file name
  -O                          Optimize output file
  --out-implib FILE           Generate import library
  -plugin PLUGIN              Load named plugin
  -plugin-opt ARG             Send arg to last-loaded plugin
  -flto                       Ignored for GCC LTO option compatibility
  -flto-partition=            Ignored for GCC LTO option compatibility
  -fuse-ld=                   Ignored for GCC linker option compatibility
  --map-whole-files           Ignored for gold option compatibility
  --no-map-whole-files        Ignored for gold option compatibility
  -Qy                         Ignored for SVR4 compatibility
  -q, --emit-relocs           Generate relocations in final output
  -r, -i, --relocatable       Generate relocatable output
  -R FILE, --just-symbols FILE
                              Just link symbols (if directory, same as --rpath)
  -s, --strip-all             Strip all symbols
  -S, --strip-debug           Strip debugging symbols
  --strip-discarded           Strip symbols in discarded sections
  --no-strip-discarded        Do not strip symbols in discarded sections
  -t, --trace                 Trace file opens
  -T FILE, --script FILE      Read linker script
  --default-script FILE, -dT  Read default linker script
  -u SYMBOL, --undefined SYMBOL
                              Start with undefined reference to SYMBOL
  --require-defined SYMBOL    Require SYMBOL be defined in the final output
  --unique [=SECTION]         Don't merge input [SECTION | orphan] sections
  -Ur                         Build global constructor/destructor tables
  -v, --version               Print version information
  -V                          Print version and emulation information
  -x, --discard-all           Discard all local symbols
  -X, --discard-locals        Discard temporary local symbols (default)
  --discard-none              Don't discard any local symbols
  -y SYMBOL, --trace-symbol SYMBOL
                              Trace mentions of SYMBOL
  -Y PATH                     Default search path for Solaris compatibility
  -(, --start-group           Start a group
  -), --end-group             End a group
  --accept-unknown-input-arch Accept input files whose architecture cannot be determined
  --no-accept-unknown-input-arch
                              Reject input files whose architecture is unknown
  --as-needed                 Only set DT_NEEDED for following dynamic libs if used
  --no-as-needed              Always set DT_NEEDED for dynamic libraries mentioned on
                                the command line
  -assert KEYWORD             Ignored for SunOS compatibility
  -Bdynamic, -dy, -call_shared
                              Link against shared libraries
  -Bstatic, -dn, -non_shared, -static
                              Do not link against shared libraries
  -Bsymbolic                  Bind global references locally
  -Bsymbolic-functions        Bind global function references locally
  --check-sections            Check section addresses for overlaps (default)
  --no-check-sections         Do not check section addresses for overlaps
  --copy-dt-needed-entries    Copy DT_NEEDED links mentioned inside DSOs that follow
  --no-copy-dt-needed-entries Do not copy DT_NEEDED links mentioned inside DSOs that follow
  --cref                      Output cross reference table
  --defsym SYMBOL=EXPRESSION  Define a symbol
  --demangle [=STYLE]         Demangle symbol names [using STYLE]
  --disable-multiple-abs-defs Do not allow multiple definitions with symbols included
           in filename invoked by -R or --just-symbols
  --embedded-relocs           Generate embedded relocs
  --fatal-warnings            Treat warnings as errors
  --no-fatal-warnings         Do not treat warnings as errors (default)
  -fini SYMBOL                Call SYMBOL at unload-time
  --force-exe-suffix          Force generation of file with .exe suffix
  --gc-sections               Remove unused sections (on some targets)
  --no-gc-sections            Don't remove unused sections (default)
  --print-gc-sections         List removed unused sections on stderr
  --no-print-gc-sections      Do not list removed unused sections
  --gc-keep-exported          Keep exported symbols when removing unused sections
  --hash-size=<NUMBER>        Set default hash table size close to <NUMBER>
  --help                      Print option help
  -init SYMBOL                Call SYMBOL at load-time
  -Map FILE                   Write a map file
  --no-define-common          Do not define Common storage
  --no-demangle               Do not demangle symbol names
  --no-keep-memory            Use less memory and more disk I/O
  --no-undefined              Do not allow unresolved references in object files
  --allow-shlib-undefined     Allow unresolved references in shared libraries
  --no-allow-shlib-undefined  Do not allow unresolved references in shared libs
  --allow-multiple-definition Allow multiple definitions
  --no-undefined-version      Disallow undefined version
  --default-symver            Create default symbol version
  --default-imported-symver   Create default symbol version for imported symbols
  --no-warn-mismatch          Don't warn about mismatched input files
  --no-warn-search-mismatch   Don't warn on finding an incompatible library
  --no-whole-archive          Turn off --whole-archive
  --noinhibit-exec            Create an output file even if errors occur
  -nostdlib                   Only use library directories specified on
                                the command line
  --oformat TARGET            Specify target of output file
  --print-output-format       Print default output format
  --print-sysroot             Print current sysroot
  -qmagic                     Ignored for Linux compatibility
  --reduce-memory-overheads   Reduce memory overheads, possibly taking much longer
  --relax                     Reduce code size by using target specific optimizations
  --no-relax                  Do not use relaxation techniques to reduce code size
  --retain-symbols-file FILE  Keep only symbols listed in FILE
  -rpath PATH                 Set runtime shared library search path
  -rpath-link PATH            Set link time shared library search path
  -shared, -Bshareable        Create a shared library
  -pie, --pic-executable      Create a position independent executable
  --sort-common [=ascending|descending]
                              Sort common symbols by alignment [in specified order]
  --sort-section name|alignment
                              Sort sections by name or maximum alignment
  --spare-dynamic-tags COUNT  How many tags to reserve in .dynamic section
  --split-by-file [=SIZE]     Split output sections every SIZE octets
  --split-by-reloc [=COUNT]   Split output sections every COUNT relocs
  --stats                     Print memory usage statistics
  --target-help               Display target specific options
  --task-link SYMBOL          Do task level linking
  --traditional-format        Use same format as native linker
  --section-start SECTION=ADDRESS
                              Set address of named section
  -Tbss ADDRESS               Set address of .bss section
  -Tdata ADDRESS              Set address of .data section
  -Ttext ADDRESS              Set address of .text section
  -Ttext-segment ADDRESS      Set address of text segment
  -Trodata-segment ADDRESS    Set address of rodata segment
  -Tldata-segment ADDRESS     Set address of ldata segment
  --unresolved-symbols=<method>
                              How to handle unresolved symbols.  <method> is:
                                ignore-all, report-all, ignore-in-object-files,
                                ignore-in-shared-libs
  --verbose [=NUMBER]         Output lots of information during link
  --version-script FILE       Read version information script
  --version-exports-section SYMBOL
                              Take export symbols list from .exports, using
                                SYMBOL as the version.
  --dynamic-list-data         Add data symbols to dynamic list
  --dynamic-list-cpp-new      Use C++ operator new/delete dynamic list
  --dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
  --dynamic-list FILE         Read dynamic list
  --warn-common               Warn about duplicate common symbols
  --warn-constructors         Warn if global constructors/destructors are seen
  --warn-multiple-gp          Warn if the multiple GP values are used
  --warn-once                 Warn only once per undefined symbol
  --warn-section-align        Warn if start of section changes due to alignment
  --warn-shared-textrel       Warn if shared object has DT_TEXTREL
  --warn-alternate-em         Warn if an object has alternate ELF machine code
  --warn-unresolved-symbols   Report unresolved symbols as warnings
  --error-unresolved-symbols  Report unresolved symbols as errors
  --whole-archive             Include all objects from following archives
  --wrap SYMBOL               Use wrapper functions for SYMBOL
  --ignore-unresolved-symbol SYMBOL
                              Unresolved SYMBOL will not cause an error or warning
  --push-state                Push state of flags governing input file handling
  --pop-state                 Pop state of flags governing input file handling
  --print-memory-usage        Report target memory usage
  --orphan-handling =MODE     Control how orphan sections are handled.
  --print-map-discarded       Show discarded sections in map file output (default)
  --no-print-map-discarded    Do not show discarded sections in map file output
  @FILE                       Read options from FILE
/usr/bin/ld: supported targets: elf64-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big pe-x86-64 pe-bigobj-x86-64 pe-i386 srec symbolsrec verilog tekhex binary ihex plugin
/usr/bin/ld: supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
/usr/bin/ld: emulation specific options:
ELF emulations:
  --ld-generated-unwind-info  Generate exception handling info for PLT
  --no-ld-generated-unwind-info
                              Don't generate exception handling info for PLT
  --build-id[=STYLE]          Generate build ID note
  --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
                              Compress DWARF debug sections using zlib
                               Default: none
  -z common-page-size=SIZE    Set common page size to SIZE
  -z max-page-size=SIZE       Set maximum page size to SIZE
  -z defs                     Report unresolved symbols in object files
  -z muldefs                  Allow multiple definitions
  -z execstack                Mark executable as requiring executable stack
  -z noexecstack              Mark executable as not requiring executable stack
  -z globalaudit              Mark executable requiring global auditing
  --audit=AUDITLIB            Specify a library to use for auditing
  -Bgroup                     Selects group name lookup rules for DSO
  --disable-new-dtags         Disable new dynamic tags
  --enable-new-dtags          Enable new dynamic tags
  --eh-frame-hdr              Create .eh_frame_hdr section
  --no-eh-frame-hdr           Do not create .eh_frame_hdr section
  --exclude-libs=LIBS         Make all symbols in LIBS hidden
  --hash-style=STYLE          Set hash style to sysv, gnu or both
  -P AUDITLIB, --depaudit=AUDITLIB
                              Specify a library to use for auditing dependencies
  -z combreloc                Merge dynamic relocs into one section and sort
  -z nocombreloc              Don't merge dynamic relocs into one section
  -z global                   Make symbols in DSO available for subsequently
                               loaded objects
  -z initfirst                Mark DSO to be initialized first at runtime
  -z interpose                Mark object to interpose all DSOs but executable
  -z lazy                     Mark object lazy runtime binding (default)
  -z loadfltr                 Mark object requiring immediate process
  -z nocopyreloc              Don't create copy relocs
  -z nodefaultlib             Mark object not to use default search paths
  -z nodelete                 Mark DSO non-deletable at runtime
  -z nodlopen                 Mark DSO not available to dlopen
  -z nodump                   Mark DSO not available to dldump
  -z now                      Mark object non-lazy runtime binding
  -z origin                   Mark object requiring immediate $ORIGIN
                                processing at runtime
  -z relro                    Create RELRO program header (default)
  -z norelro                  Don't create RELRO program header
  -z separate-code            Create separate code program header (default)
  -z noseparate-code          Don't create separate code program header
  -z common                   Generate common symbols with STT_COMMON type
  -z nocommon                 Generate common symbols with STT_OBJECT type
  -z stack-size=SIZE          Set size of stack segment
  -z text                     Treat DT_TEXTREL in shared object as error
  -z notext                   Don't treat DT_TEXTREL in shared object as error
  -z textoff                  Don't treat DT_TEXTREL in shared object as error
elf_x86_64: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z noreloc-overflow         Disable relocation overflow check
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
  -z bndplt                   Always generate BND prefix in PLT entries
elf32_x86_64: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z noreloc-overflow         Disable relocation overflow check
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
elf_i386: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
  -z ibtplt                   Generate IBT-enabled PLT entries
  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT
  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
  -z cet-report=[none|warning|error] (default: none)
                              Report missing IBT and SHSTK properties
elf_iamcu: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
elf_l1om: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
elf_k1om: 
  -z noextern-protected-data  Do not treat protected data symbol as external
  -z dynamic-undefined-weak   Make undefined weak symbols dynamic
  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch
i386pep: 
  --base_file <basefile>             Generate a base file for relocatable DLLs
  --dll                              Set image base to the default for DLLs
  --file-alignment <size>            Set file alignment
  --heap <size>                      Set initial size of the heap
  --image-base <address>             Set start address of the executable
  --major-image-version <number>     Set version number of the executable
  --major-os-version <number>        Set minimum required OS version
  --major-subsystem-version <number> Set minimum required OS subsystem version
  --minor-image-version <number>     Set revision number of the executable
  --minor-os-version <number>        Set minimum required OS revision
  --minor-subsystem-version <number> Set minimum required OS subsystem revision
  --section-alignment <size>         Set section alignment
  --stack <size>                     Set size of the initial stack
  --subsystem <name>[:<version>]     Set required OS subsystem [& version]
  --support-old-code                 Support interworking with old code
  --[no-]leading-underscore          Set explicit symbol underscore prefix mode
  --[no-]insert-timestamp            Use a real timestamp rather than zero (default)
                                     This makes binaries non-deterministic
  --add-stdcall-alias                Export symbols with and without @nn
  --disable-stdcall-fixup            Don't link _sym to _sym@nn
  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings
  --exclude-symbols sym,sym,...      Exclude symbols from automatic export
  --exclude-all-symbols              Exclude all symbols from automatic export
  --exclude-libs lib,lib,...         Exclude libraries from automatic export
  --exclude-modules-for-implib mod,mod,...
                                     Exclude objects, archive members from auto
                                     export, place into import library instead
  --export-all-symbols               Automatically export all globals to DLL
  --kill-at                          Remove @nn from exported symbols
  --output-def <file>                Generate a .DEF file for the built DLL
  --warn-duplicate-exports           Warn about duplicate exports
  --compat-implib                    Create backward compatible import libs;
                                       create __imp_<SYMBOL> as well
  --enable-auto-image-base           Automatically choose image base for DLLs
                                       unless user specifies one
  --disable-auto-image-base          Do not auto-choose image base (default)
  --dll-search-prefix=<string>       When linking dynamically to a dll without
                                       an importlib, use <string><basename>.dll
                                       in preference to lib<basename>.dll 
  --enable-auto-import               Do sophisticated linking of _sym to
                                       __imp_sym for DATA references
  --disable-auto-import              Do not auto-import DATA items from DLLs
  --enable-runtime-pseudo-reloc      Work around auto-import limitations by
                                       adding pseudo-relocations resolved at
                                       runtime
  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for
                                       auto-imported DATA
  --enable-extra-pep-debug            Enable verbose debug output when building
                                       or linking to DLLs (esp. auto-import)
  --enable-long-section-names        Use long COFF section names even in
                                       executable image files
  --disable-long-section-names       Never use long COFF section names, even
                                       in object files
  --high-entropy-va                  Image is compatible with 64-bit address space
                                       layout randomization (ASLR)
  --dynamicbase                      Image base address may be relocated using
                                       address space layout randomization (ASLR)
  --enable-reloc-section             Create the base relocation table
  --forceinteg               Code integrity checks are enforced
  --nxcompat                 Image is compatible with data execution prevention
  --no-isolation             Image understands isolation but do not isolate the image
  --no-seh                   Image does not use SEH; no SE handler may
                                       be called in this image
  --no-bind                  Do not bind this image
  --wdmdriver                Driver uses the WDM model
  --tsaware                  Image is Terminal Server aware
  --build-id[=STYLE]         Generate build ID
i386pe: 
  --base_file <basefile>             Generate a base file for relocatable DLLs
  --dll                              Set image base to the default for DLLs
  --file-alignment <size>            Set file alignment
  --heap <size>                      Set initial size of the heap
  --image-base <address>             Set start address of the executable
  --major-image-version <number>     Set version number of the executable
  --major-os-version <number>        Set minimum required OS version
  --major-subsystem-version <number> Set minimum required OS subsystem version
  --minor-image-version <number>     Set revision number of the executable
  --minor-os-version <number>        Set minimum required OS revision
  --minor-subsystem-version <number> Set minimum required OS subsystem revision
  --section-alignment <size>         Set section alignment
  --stack <size>                     Set size of the initial stack
  --subsystem <name>[:<version>]     Set required OS subsystem [& version]
  --support-old-code                 Support interworking with old code
  --[no-]leading-underscore          Set explicit symbol underscore prefix mode
  --thumb-entry=<symbol>             Set the entry point to be Thumb <symbol>
  --[no-]insert-timestamp            Use a real timestamp rather than zero (default).
                                     This makes binaries non-deterministic
  --add-stdcall-alias                Export symbols with and without @nn
  --disable-stdcall-fixup            Don't link _sym to _sym@nn
  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings
  --exclude-symbols sym,sym,...      Exclude symbols from automatic export
  --exclude-all-symbols              Exclude all symbols from automatic export
  --exclude-libs lib,lib,...         Exclude libraries from automatic export
  --exclude-modules-for-implib mod,mod,...
                                     Exclude objects, archive members from auto
                                     export, place into import library instead.
  --export-all-symbols               Automatically export all globals to DLL
  --kill-at                          Remove @nn from exported symbols
  --output-def <file>                Generate a .DEF file for the built DLL
  --warn-duplicate-exports           Warn about duplicate exports
  --compat-implib                    Create backward compatible import libs;
                                       create __imp_<SYMBOL> as well.
  --enable-auto-image-base[=<address>] Automatically choose image base for DLLs
                                       (optionally starting with address) unless
                                       specifically set with --image-base
  --disable-auto-image-base          Do not auto-choose image base. (default)
  --dll-search-prefix=<string>       When linking dynamically to a dll without
                                       an importlib, use <string><basename>.dll
                                       in preference to lib<basename>.dll 
  --enable-auto-import               Do sophisticated linking of _sym to
                                       __imp_sym for DATA references
  --disable-auto-import              Do not auto-import DATA items from DLLs
  --enable-runtime-pseudo-reloc      Work around auto-import limitations by
                                       adding pseudo-relocations resolved at
                                       runtime.
  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for
                                       auto-imported DATA.
  --enable-extra-pe-debug            Enable verbose debug output when building
                                       or linking to DLLs (esp. auto-import)
  --large-address-aware              Executable supports virtual addresses
                                       greater than 2 gigabytes
  --disable-large-address-aware      Executable does not support virtual
                                       addresses greater than 2 gigabytes
  --enable-long-section-names        Use long COFF section names even in
                                       executable image files
  --disable-long-section-names       Never use long COFF section names, even
                                       in object files
  --dynamicbase                      Image base address may be relocated using
                                       address space layout randomization (ASLR)
  --enable-reloc-section             Create the base relocation table
  --forceinteg               Code integrity checks are enforced
  --nxcompat                 Image is compatible with data execution prevention
  --no-isolation             Image understands isolation but do not isolate the image
  --no-seh                   Image does not use SEH. No SE handler may
                                       be called in this image
  --no-bind                  Do not bind this image
  --wdmdriver                Driver uses the WDM model
  --tsaware                  Image is Terminal Server aware
  --build-id[=STYLE]         Generate build ID

Report bugs to <http://www.sourceware.org/bugzilla/>

For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-9/README.Bugs>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Lionel_Coder/article/details/119768854

gcc -wl,-rpath=. 指定当前路径为库搜索路径-爱代码爱编程

  GNU/Linux GCC 指定动态库路径 详细讲述了Linux下动态库路径的作用。 在C/C++程序里经常会调用到外部.so文件中的库函数,运行程序时需要export LD_LIBRARY_PATH,不过使用它存在一些弊端,可能会影响到其它程序的运行。在经历的大项目中就遇到过,两个模块同时使用一外部动态库,而且版本还有差异,导致其中一模块出错,两

gcc编译部分编译选项_jabamilight的博客-爱代码爱编程

我只写出一些我没有在文档中查到的,网上也搜索不出来什么明确的资料。正确性实在不敢保证。 https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/Option-Summary.html#Op

gcc警告选项汇总_青丶空゛的博客-爱代码爱编程

参考资料:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options 请求或取消警告的选项 警告是诊断消息,报告的结构本质上不是错误

gcc 编译优化标志说明_zhang_dawei666的博客-爱代码爱编程

                                                     gcc 编译优化标志说明         在编译过程中我们经常会使用gcc及其相关的编译参数来编译源文件。编译Nginx编译debug版本使用的gcc 参数如下:         -pipe  -O -W -Wall -Wpointer-arith

gcc的arm编译选项-爱代码爱编程

Next: AVR Options, Previous: ARC Options, Up: Submodel Options   [Contents][Index] 3.18.5 ARM Options These ‘-m’ options are defined for the ARM port: -mabi=name Genera

GCC编译选项参数-爱代码爱编程

GCC 编译选项参数 1 常用选项 2 预处理器选项 -includefile 在处理常规输入文件之前,首先处理文件file,其结果是,文件file的内容先得到编译.命令行上任何-D'和-U’选项永远在-includefile'之前处理,无论他们在命令行上的顺序如何.然而-include’和`-imacros’选项按书写顺序处理. -imacr

gcc和g++的编译选项-爱代码爱编程

  gcc和g++都是GNU(一个组织)的编译器。 1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序; 2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。 3、编译阶段,g++会调用gcc; 4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。 gcc有时会出错   gc

Linux内核编译的选项 m,Linux内核编译配置选项详解(更新中...)-爱代码爱编程

在编译移植Linux内核过程中,内核选项配置是很常见的操作。本文分析了常见选项的具体含义,从这里开始进入内核完全配置选项: 1 code maturity level options(代码成熟度选项) 1.1 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码

Warning: Rank mismatch in argument ‘mu‘ at (1) (rank-1 and scalar) [-Wargument-mismatch] 解决方法-爱代码爱编程

在进行streamer辐射传输模型安装的过程中,用fortan 编译 .f 文件的时候出现了这个问题参考博客https://blog.csdn.net/ZJ315296441/article/details/119082156中的解决方法1在编译的时候加上-fallow-argument-mismatch 但如图显示根据提示,输入gfortran -c -