cobc (GnuCOBOL) 3.2.0
Built     Nov 15 2023 18:59:56	Packaged  Jul 28 2023 16:58:47 UTC
C version (MinGW) "13.2.0"


GnuCOBOL compiler for most COBOL dialects with lots of extensions

Usage: cobc [options]... file...

Options:
  -h, --help            display this help and exit
  -V, --version         display compiler version information and exit
  -dumpversion          display compiler version and exit
  -i, --info            display compiler information (build/environment)
                        and exit
  -v, --verbose         verbose mode, display additional information;
                        multiple -v options increase the verbosity,
                        the maximum is 3 as follows:
                        (1) display compiler version and the commands
                        invoked by the compiler,
                        (2) pass verbose option to assembler/compiler
                        (3) pass verbose option to linker
  -q, --brief           reduced displays, commands invoked not shown
  -###                  like -v but commands not executed
  -x                    build an executable program
  -m                    build a dynamically loadable module (default)
  -j [<args>], --job[=<args>]	run program after build, passing <args>
  -std=<dialect>        warnings/features for a specific dialect
                        <dialect> can be one of:
                        default, cobol2014, cobol2002, cobol85, xopen,
                        ibm-strict, ibm, mvs-strict, mvs,
                        mf-strict, mf, bs2000-strict, bs2000,
                        acu-strict, acu, rm-strict, rm, gcos-strict,
                        gcos;
                        see configuration files in directory config
  -F, --free            use free source format (alias for -fformat=free)
  --fixed               use fixed source format (default; alias for
                        -fformat=fixed)
  -O, -O2, -O3, -Os     enable optimization
  -O0                   disable optimization
  -g                    enable C compiler debug and stack check
  -d, --debug           enable all run-time error checking,
                        equal to -fstack-check -fec=EC-ALL
  -fec=<exception-name>	enable code generation for <exception-name>,
                        see --list-exceptions for the possible values,
                        sets -fsource-location
  -fno-ec=<exception-name>	disable code generation for <exception-name>
  -o <file>             place the output into <file>
  -b                    combine all input files into a single
                        dynamically loadable module
  -E                    preprocess only; do not compile or link
  -C                    translation only; convert COBOL to C
  -S                    compile only; output assembly file
  -c                    compile and assemble, but do not link
  -T <file>             generate and place a wide program listing into <file>
  -t <file>             generate and place a program listing into <file>
  --tlines=<lines>      specify lines per page in listing, default = 55
  -P[=<dir or file>]    generate preprocessed program listing (.lst)
  -X, --Xref            specify cross reference in listing
  -I <directory>        add <directory> to copy/include search path
  -L <directory>        add <directory> to library search path
  -l <lib>              link the library <lib>
  -K <entry>            generate CALL to <entry> as static
  -D <define>           define <define> for COBOL compilation
  -A <options>          add <options> to the C compile phase
  -Q <options>          add <options> to the C link phase
  --coverage            instrument generated binaries for coverage
  --conf=<file>         user-defined dialect configuration; see -std
  --list-reserved       display reserved words
  --list-intrinsics     display intrinsic functions
  --list-mnemonics      display mnemonic names
  --list-exceptions     display exception names
  --list-system         display system routines
  --save-temps[=<dir>]  save intermediate files
                        * default: current directory
  -MT <target>          set/add target file used in dependency list
  -MF <file>            place dependency list into <file>
  -ext <extension>      add file extension for resolving COPY

Warning options:
  -Wall                 enable most warnings (all except as noted below)
  -Wextra               like -Wall but enable some extra warning flags
  -w                    disable all warnings
  -Wno-<warning>        disable warning enabled by default, -Wall or -Wextra
  -Wadditional          additional warnings only raised with -Wall
  -Wno-unfinished       do not warn if unfinished features are used
                        * ALWAYS active
  -Wno-pending          do not warn if pending features are used
                        * ALWAYS active
  -Wno-repository-checks	do not warn/check for program/function/external signature mismatch
                        * ALWAYS active
  -Wno-ignored-error    do not warn about errors in code parts which are unreachable and so normally ignored
                        * ALWAYS active
  -Wobsolete            warn if obsolete features are used
  -Warchaic             warn if archaic features are used
  -Wredefinition        warn about non-referenced ambiguous data items
  -Wtruncate            warn about field truncation from constant assignments
  -Wpossible-truncate   warn about possible field truncation
                        * NOT set with -Wall
  -Woverlap             warn about overlapping MOVE of items
  -Wpossible-overlap    warn about MOVE of items that may overlap depending on variables
                        * NOT set with -Wall
  -Wparentheses         warn if parentheses are omitted around AND within OR
  -Wstrict-typing       warn strictly about type mismatch, even when same size
                        * NOT set with -Wall
  -Wtyping              warn about type mismatch
  -Wimplicit-define     warn whenever data items are implicitly defined
                        * NOT set with -Wall
  -Wno-corresponding    do not warn about CORRESPONDING with no matching items
                        * ALWAYS active
  -Winitial-value       warn if initial VALUE clause is ignored
  -Wprototypes          warn about missing FUNCTION prototypes/definitions
  -Warithmetic-osvs     warn if arithmetic expression precision has changed
  -Wcall-params         warn about non 01/77 items for CALL parameters
                        * NOT set with -Wall
  -Wconstant-expression  warn about expressions that always resolve to true/false
  -Wconstant-numlit-expression	warn about numeric expressions that always resolve to true/false
  -Wlarger-01-redefines  warn about larger redefines allowed by COBOL standards
  -Wcolumn-overflow     warn about text after program-text area, FIXED format
                        * NOT set with -Wall
  -Wterminator          warn about lack of scope terminator END-XXX
                        * NOT set with -Wall
  -Wlinkage             warn about dangling LINKAGE items
                        * NOT set with -Wall
  -Wunreachable         warn about likely unreachable statements
                        * NOT set with -Wall
  -Wno-dialect          do not warn about dialect specific issues
                        * ALWAYS active
  -Wno-goto-section     do not warn about GO TO section-name
                        * ALWAYS active
  -Wgoto-different-section	warn about GO TO a praragraph defined in a different section
  -Wsuspicious-perform-thru	warn if PERFORM THRU references procedures not in ascending order or multiple sections
                        * ALWAYS active
  -Wdangling-text       warn about source text after program-area
                        * NOT set with -Wall
  -Wno-missing-newline  do not warn about missing newlines
                        * ALWAYS active
  -Wno-others           do not warn about different issues
                        * ALWAYS active
  -Wno-unsupported      do not warn if runtime does not support a feature used
  -fdiagnostics-plain-output	make diagnostic output as plain as possible
  -Werror               treat all warnings as errors
  -Wno-error            don't treat warnings as errors
  -Werror=<warning>     treat specified <warning> as error
  -Wno-error=<warning>  don't treat specified <warning> as error

Compiler options:
  -fsign=[ASCII|EBCDIC]	define display sign representation
                        * default: machine native
  -ffold-copy=[UPPER|LOWER]	fold COPY subject to value
                        * default: no transformation
  -ffold-call=[UPPER|LOWER]	fold PROGRAM-ID, CALL, CANCEL subject to value
                        * default: no transformation
  -fmax-errors=<number>	maximum number of errors to report before
                        compilation is aborted
                        * default: 128
  -fintrinsics=[ALL|intrinsic function name(,name,...)]
                        intrinsics to be used without FUNCTION keyword
  -fdump=<scope>        dump data fields on abort, <scope> may be
                        a combination of: ALL, WS, LS, RD, FD, SC, LO
  -fcallfh=<name>       specifies <name> to be used for I/O
                        as external provided EXTFH interface module
  -febcdic-table=<cconv-table>/<file>	EBCDIC/ASCII translation table
                        * e.g. default, ebcdic500_latin1...
  -fdefault-colseq=[ASCII|EBCDIC|NATIVE]	define default collating sequence
                        * default: NATIVE
  -fstack-extended      store origin of entrypoints and PERFORM
                        * turned on by --debug/-fdump
  -fno-remove-unreachable	disable remove of unreachable code
                        * turned off by -g
  -ftrace               generate trace code
                        * scope: executed SECTION/PARAGRAPH
  -ftraceall            generate trace code
                        * scope: executed SECTION/PARAGRAPH/STATEMENTS
  -fsyntax-only         syntax error checking only; don't emit any output
  -fdebugging-line      enable debugging lines
                        * 'D' in indicator column or floating >>D
  -fsource-location     generate source location code
                        * turned on by --debug/-ftraceall/-fec/-fdump
  -fimplicit-init       automatic initialization of the COBOL runtime system
  -fno-recursive-check  disable check of recursive program call;
                        effectively compiling as RECURSIVE program
  -fstack-check         PERFORM stack checking
                        * turned on by --debug/-g
  -fmemory-check=<scope>     checks for invalid writes to internal storage,
                        <scope> may be one of: all, pointer, using, none
                        * default: none, set to all by --debug
  -fsection-exit-check  check that code execution does not leave the scope of SECTIONs
  -fimplicit-goback-check	check that code execution does not end implicit at end of PROCEDURE DIVISION
  -fwrite-after         use AFTER 1 for WRITE of LINE SEQUENTIAL
                        * default: BEFORE 1
  -fmfcomment           '*' in column 1 treated as comment with listing suppression
                        * FIXED/COBOL85/VARIABLE format only
  -facucomment          '$' in indicator area treated as '*',
                        '|' treated as floating comment
  -fno-trunc            allow numeric field overflow
                        * non-ANSI behaviour
  -fsingle-quote        use a single quote (apostrophe) for QUOTE
                        * default: double quote
  -foptional-file       treat all files as OPTIONAL
                        * unless NOT OPTIONAL specified
  -fstatic-call         output static function calls for the CALL statement
  -fno-gen-c-decl-static-call	disable generation of C function declarations
                        for subroutines with static CALL
  -fgen-c-line-directives	generate source location directives in C code;
                        * turned on by -g/--coverage
  -fgen-c-labels        generate extra labels in C sources;
                        * turned on by -g
  -fno-theaders         suppress all headers from listing while keeping
                        page breaks
  -fno-tsource          suppress source from listing
  -fno-tmessages        suppress warning and error summary from listing
  -ftsymbols            specify symbols in listing
  -ftcmd                specify command line in listing
  -fno-ttimestamp       suppress timestamp in listing headers
  -fttitle=<title>      set listing title with '_' replaced by spaces;
                        defaults to package name and version
  -fno-diagnostics-show-option	suppress output of option that directly
                        controls the diagnostic
  -fno-diagnostics-show-caret	do not display source context on warning/error diagnostic
  -fno-diagnostics-show-line-numbers	suppress display of line numbers in diagnostics

Compiler dialect configuration options:
  -freserved-words=<value>	use of complete/fixed reserved words
  -ftab-width=1..12      number of spaces that are assumed for tabs
  -ftext-column=72..255  right margin column number for fixed-form reference-format
  -fpic-length=<number>  maximum number of characters allowed in the PICTURE character-string
  -fword-length=1..63    maximum word-length for COBOL (= programmer defined) words
  -fliteral-length=<number>	maximum literal size in general
  -fnumeric-literal-length=1..38	maximum numeric literal size
  -fdefaultbyte=<value>  default initialization for fields without VALUE, may be one of
                         * character in quotes
                         * decimal 0..255 representing a character
                         * "init" to initialize to PICTURE/USAGE
                         * "none" to do no explicit initialization
                         * default: "init"
  -fformat=<value>       default reference-format, may be one of: FIXED, FREE, COBOL85, VARIABLE, XOPEN, XCARD, CRT, TERMINAL, COBOLX
  -fbinary-size=<value>  binary byte size - defines the allocated bytes according to PIC, may be one of: 2-4-8, 1-2-4-8, 1--8
  -fbinary-byteorder=<value>	binary byte order, may be one of: native, big-endian
  -fassign-clause=<value>	how to interpret 'ASSIGN word': as 'ASSIGN EXTERNAL word' or 'ASSIGN DYNAMIC word', may be one of: dynamic, external, ibm (= external), mf (= dynamic)
  -fscreen-section-rules=<value>	which compiler's rules to apply to SCREEN SECTION item clauses, may be one of: acu, gc, mf, rm, std, xopen
  -fdpc-in-data=<value>  whether DECIMAL-POINT IS COMMA has effect in XML/JSON GENERATE, may be one of: none, xml, json, all
  -fsubscript-check=<value>	checking for subscript (only done with EC-BOUND-SUBSCRIPT active), may be one of: full, max, record
  -ffilename-mapping     resolve file names at run time using environment variables
  -fpretty-display       alternate formatting of numeric fields
  -fbinary-truncate      numeric truncation according to ANSI
  -fcomplex-odo          allow non-standard OCCURS DEPENDING ON syntax
  -fodoslide             adjust items following OCCURS DEPENDING (implies complex-odo)
  -finit-justify         applies JUSTIFY with VALUE clause
  -findirect-redefines   allow REDEFINES to other than last equal level number
  -frelax-syntax-checks  allow certain syntax variations (e.g. REDEFINES position)
  -fref-mod-zero-length  allow zero length reference-modification (only changed with EC-BOUND-REF-MOD active)
  -frelax-level-hierarchy	allow non-matching level numbers
  -fselect-working       require ASSIGN USING items to be in WORKING-STORAGE
  -flocal-implies-recursive	LOCAL-STORAGE SECTION implies RECURSIVE attribute
  -fsticky-linkage       LINKAGE SECTION items remain allocated between invocations
  -fmove-ibm             MOVE operates as on IBM (left to right, byte by byte)
  -fperform-osvs         exit point of any currently executing perform is recognized if reached
  -farithmetic-osvs      limit precision in intermediate results to precision of final result (less accurate)
  -fconstant-folding     evaluate constant expressions at compile time
  -fhostsign             allow hexadecimal value 'F' for NUMERIC test of signed PACKED DECIMAL field
  -fprogram-name-redefinition	program names don't lead to a reserved identifier
  -faccept-update        set WITH UPDATE clause as default for ACCEPT dest-item, instead of WITH NO UPDATE
  -faccept-auto          set WITH AUTO clause as default for ACCEPT dest-item, instead of WITH TAB
  -fconsole-is-crt       assume CONSOLE IS CRT if not set otherwise
  -fno-echo-means-secure	NO-ECHO hides input with asterisks like SECURE
  -fline-col-zero-default	assume a field DISPLAY starts at LINE 0 COL 0 (i.e. at the cursor), not LINE 1 COL 1
  -fdisplay-special-fig-consts	special behaviour of DISPLAY SPACE/ALL X'01'/ALL X'02'/ALL X'07'
  -fbinary-comp-1        COMP-1 is a 16-bit signed integer
  -fnumeric-pointer      POINTER is a 64-bit unsigned integer
  -fmove-non-numeric-lit-to-numeric-is-zero	imply zero in move of non-numeric literal to numeric items
  -fimplicit-assign-dynamic-var	implicitly define a variable if an ASSIGN DYNAMIC does not match any data item
  -fdevice-mnemonics     specifying device by mnemonic
  -fxml-parse-xmlss      XML PARSE XMLSS
  -fareacheck            check contents of Area A (when reference format supports Area A enforcement),
                         enabled checks include:
                         * division, section, paragraph names, level indicators (FD, SD, RD, and CD),
                           and toplevel numbers (01 and 77) must start in Area A;
                         * statements must not start in Area A; and
                         * separator periods must not be within Area A
  -fcomment-paragraphs=<support>	comment paragraphs in IDENTIFICATION DIVISION (AUTHOR, DATE-WRITTEN, ...)
  -fcontrol-division=<support>	CONTROL DIVISION
  -fpartial-replace-when-literal-src=<support>	apply partial replacing with literal source operand even when it replaces with spaces only;
                         * "skip" prevents such replacements
  -fmemory-size-clause=<support>	MEMORY-SIZE clause
  -fmultiple-file-tape-clause=<support>	MULTIPLE-FILE-TAPE clause
  -flabel-records-clause=<support>	LABEL-RECORDS clause
  -fvalue-of-clause=<support>	VALUE-OF clause
  -fdata-records-clause=<support>	DATA-RECORDS clause
  -ftop-level-occurs-clause=<support>	OCCURS clause on top-level
  -fsame-as-clause=<support>	SAME AS clause
  -ftype-to-clause=<support>	TYPE TO clause
  -fusage-type=<support>	USAGE type-name
  -fsynchronized-clause=<support>	SYNCHRONIZED clause
  -fsync-left-right=<support>	LEFT/RIGHT phrases in SYNCHRONIZED clause
  -fspecial-names-clause=<support>	SPECIAL-NAMES clause
  -fgoto-statement-without-name=<support>	GO TO statement without name
  -fstop-literal-statement=<support>	STOP-literal statement
  -fstop-identifier-statement=<support>	STOP-identifier statement
  -fstop-error-statement=<support>	STOP ERROR statement
  -fdebugging-mode=<support>	DEBUGGING MODE and debugging indicator
  -fuse-for-debugging=<support>	USE FOR DEBUGGING
  -fpadding-character-clause=<support>	PADDING CHARACTER clause
  -fnext-sentence-phrase=<support>	NEXT SENTENCE phrase
  -flisting-statements=<support>	listing-directive statements EJECT, SKIP1, SKIP2, SKIP3
  -ftitle-statement=<support>	listing-directive statement TITLE
  -fentry-statement=<support>	ENTRY statement
  -fmove-noninteger-to-alphanumeric=<support>	move noninteger to alphanumeric
  -fmove-figurative-constant-to-numeric=<support>	move figurative constants to numeric
  -fmove-figurative-space-to-numeric=<support>	move figurative constant SPACE to numeric
  -fmove-figurative-quote-to-numeric=<support>	move figurative constant QUOTE to numeric
  -fodo-without-to=<support>	OCCURS DEPENDING ON without to
  -fsection-segments=<support>	section segments
  -falter-statement=<support>	ALTER statement
  -fcall-overflow=<support>	OVERFLOW clause for CALL
  -fnumeric-boolean=<support>	boolean literals (B'1010')
  -fhexadecimal-boolean=<support>	hexadecimal-boolean literals (BX'A')
  -fnational-literals=<support>	national literals (N'UTF-16 string')
  -fhexadecimal-national-literals=<support>	hexadecimal-national literals (NX'265E')
  -fnational-character-literals=<support>	non-standard national literals (NC'UTF-16 string')
  -fhp-octal-literals=<support>	HP COBOL octal literals (%377)
  -facu-literals=<support>	ACUCOBOL-GT literals (#B #O #H #X)
  -febcdic-symbolic-characters	EBCDIC symbolic characters in literals (" "135,151,151"bar"195, 194"Z" for " foobarBAZ")
  -fword-continuation=<support>	continuation of COBOL words
  -fnot-exception-before-exception=<support>	NOT ON EXCEPTION before ON EXCEPTION
  -faccept-display-extensions=<support>	extensions to ACCEPT and DISPLAY
  -frenames-uncommon-levels=<support>	RENAMES of 01-, 66- and 77-level items
  -flarger-redefines=<support>	allow larger REDEFINES items
  -fsymbolic-constant=<support>	constants defined in SPECIAL-NAMES
  -fconstant-78=<support>	constant with level 78 item (note: has left to right precedence in expressions)
  -fconstant-01=<support>	constant with level 01 CONSTANT AS/FROM item
  -fperform-varying-without-by=<support>	PERFORM VARYING without BY phrase (implies BY 1)
  -freference-out-of-declaratives=<support>	references to sections not in DECLARATIVES from within DECLARATIVES
  -fprogram-prototypes=<support>	CALL/CANCEL with program-prototype-name
  -fcall-convention-mnemonic=<support>	specifying call-convention by mnemonic
  -fcall-convention-linkage=<support>	specifying call-convention by WITH ... LINKAGE
  -fusing-optional=<support>	support for PROCEDURE DIVISION USING OPTIONAL
  -fnumeric-value-for-edited-item=<support>	numeric literals in VALUE clause of numeric-edited items
  -fincorrect-conf-sec-order=<support>	incorrect order of CONFIGURATION SECTION paragraphs
  -fdefine-constant-directive=<support>	allow >> DEFINE CONSTANT var AS literal
  -ffree-redefines-position=<support>	REDEFINES clause not following entry-name in definition
  -frecords-mismatch-record-clause=<support>	record sizes does not match RECORD clause
  -frecord-delimiter=<support>	RECORD DELIMITER clause
  -fsequential-delimiters=<support>	BINARY-SEQUENTIAL and LINE-SEQUENTIAL phrases in RECORD DELIMITER
  -frecord-delim-with-fixed-recs=<support>	RECORD DELIMITER clause on file with fixed-length records
  -fmissing-statement=<support>	missing statement (e.g. empty IF / PERFORM)
  -fmissing-period=<support>	missing period in PROCEDURE DIVISION (when reference format supports Area A enforcement)
  -fzero-length-literals=<support>	zero-length literals, e.g. '' and ""
  -fxml-generate-extra-phrases=<support>	XML GENERATE's phrases other than COUNT IN
  -fcontinue-after=<support>	AFTER phrase in CONTINUE statement
  -fgoto-entry=<support>	ENTRY FOR GO TO and GO TO ENTRY statements
  -fassign-variable=<support>	ASSIGN [TO] variable in SELECT
  -fassign-using-variable=<support>	ASSIGN USING/VARYING variable in SELECT
  -fassign-ext-dyn=<support>	ASSIGN EXTERNAL/DYNAMIC in SELECT
  -fassign-disk-from=<support>	ASSIGN DISK FROM variable in SELECT
  -fvsam-status=<support>	VSAM status in FILE STATUS
  -fself-call-recursive=<support>	CALL to own PROGRAM-ID implies RECURSIVE attribute
  -frecord-contains-depending-clause=<support>	DEPENDING clause in RECORD CONTAINS
  -fpicture-l=<support>  PICTURE string with 'L' character
	where <support> is one of the following:
	'ok', 'warning', 'archaic', 'obsolete', 'skip', 'ignore', 'error', 'unconformable'
  -fnot-reserved=<word>  word to be taken out of the reserved words list
  -freserved=<word>      word to be added to reserved words list
  -freserved=<word>:<alias>	word to be added to reserved words list as alias
  -fnot-register=<word>  special register to disable
  -fregister=<word> or <word>:<definition>, where definition uses backslash esca	special register to enable


Report bugs to: bug-gnucobol@gnu.org
or (preferably) use the issue tracker via the home page.
GnuCOBOL home page: <https://www.gnu.org/software/gnucobol/>
General help using GNU software: <https://www.gnu.org/gethelp/>


Usage: gcc [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 (including assembler and linker 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.
  -foffload=<targets>      Specify offloading targets.
  -print-search-dirs       Display the directories in the compiler's search path.
  -print-libgcc-file-name  Display the name of the compiler's companion library.
  -print-file-name=<lib>   Display the full path to library <lib>.
  -print-prog-name=<prog>  Display the full path to compiler component <prog>.
  -print-multiarch         Display the target's normalized GNU triplet, used as
                           a component in the library path.
  -print-multi-directory   Display the root directory for versions of libgcc.
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories.
  -print-multi-os-directory Display the relative path to OS libraries.
  -print-sysroot           Display the target libraries directory.
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
  -Wa,<options>            Pass comma-separated <options> on to the assembler.
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.
  -Wl,<options>            Pass comma-separated <options> on to the linker.
  -Xassembler <arg>        Pass <arg> on to the assembler.
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.
  -Xlinker <arg>           Pass <arg> on to the linker.
  -save-temps              Do not delete intermediate files.
  -save-temps=<arg>        Do not delete intermediate files.
  -no-canonical-prefixes   Do not canonicalize paths when building relative
                           prefixes to other gcc components.
  -pipe                    Use pipes rather than intermediate files.
  -time                    Time the execution of each subprocess.
  -specs=<file>            Override built-in specs with the contents of <file>.
  -std=<standard>          Assume that the input sources are for <standard>.
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries.
  -B <directory>           Add <directory> to the compiler's search paths.
  -v                       Display the programs invoked by the compiler.
  -###                     Like -v but options quoted and commands not executed.
  -E                       Preprocess only; do not compile, assemble or link.
  -S                       Compile only; do not assemble or link.
  -c                       Compile and assemble, but do not link.
  -o <file>                Place the output into <file>.
  -pie                     Create a dynamically linked position independent
                           executable.
  -shared                  Create a shared library.
  -x <language>            Specify the language of the following input files.
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension.

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by gcc.  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.
  -fdump-scos                 Dump Source Coverage Obligations.

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 C:
  -fgimple                    Enable parsing GIMPLE.
  -lang-asm                   This option lacks documentation.

The following options are specific to just the language C++:
  --param=lazy-modules=       Maximum number of concurrently open C++ module
                              files when lazy loading.
  -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.
  -fcontract-assumption-mode=[on|off] Enable or disable treating axiom level
                              contracts as assumptions (default on).
  -fcontract-build-level=[off|default|audit] Specify max contract level to
                              generate runtime checks for.
  -fcontract-continuation-mode=[on|off] Enable or disable contract continuation
                              mode (default off).
  -fcontract-mode=[on|off]    Enable or disable all contract facilities
                              (default on).
  -fcontract-role=<name>:<semantics> Specify the semantics for all levels in a
                              role (default, review), or a custom contract role
                              with given semantics (ex:
                              opt:assume,assume,assume).
  -fcontract-semantic=<level>:<semantic> Specify the concrete semantics for
                              level.
  -fcontract-strict-declarations=[on|off] Enable or disable warnings on
                              generalized redeclaration of functions with
                              contracts (default off).
  -flang-info-include-translate Note #include directives translated to import
                              declarations.
  -flang-info-include-translate-not Note #include directives not translated to
                              import declarations, and not known to be textual.
  -flang-info-include-translate= Note a #include translation of a specific
                              header.
  -flang-info-module-cmi      Note Compiled Module Interface pathnames.
  -flang-info-module-cmi=     Note Compiled Module Interface pathname of a
                              specific module or header-unit.

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.
  -Wmismatched-special-enum   Warn when a special enum is declared with the
                              wrong base type.
  -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.
  -fcheck=assert              Same as -fassert.
  -fcheck=bounds              Same as -fbounds-check.
  -fcheck=in                  Same as -fpreconditions.
  -fcheck=invariant           Same as -finvariants.
  -fcheck=out                 Same as -fpostconditions.
  -fcheck=switch              Same as -fswitch-errors.
  -fcheckaction=[throw,halt,context] Behavior on contract failure.
  -fdebug                     Compile in debug code.
  -fdebug=<ident>             Compile in debug 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-c++-spec-verbose     Add comments for ignored declarations in the
                              generated C++ header.
  -fdump-cxx-spec=<filename>  Write all declarations as C++ code to <filename>.
  -fdump-d-original           Display the frontend AST after parsing and
                              semantic passes.
  -fextern-std=<standard>     Set C++ name mangling compatibility with
                              <standard>.
  -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.
  -fpreview=all               Turn on all upcoming D language features.
  -fpreview=bitfields         Implement D bit-fields.
  -fpreview=dip1000           Implement DIP1000: Scoped pointers.
  -fpreview=dip1008           Implement DIP1008: Allow exceptions in @nogc code.
  -fpreview=dip1021           Implement DIP1021: Mutable function arguments.
  -fpreview=dtorfields        Destruct fields of partially constructed objects.
  -fpreview=fieldwise         Use field-wise comparisons for struct equality.
  -fpreview=fixaliasthis      When a symbol is resolved, check `alias this'
                              scope before going to upper scopes.
  -fpreview=fiximmutableconv  Disallow unsound immutable conversions that were
                              formerly incorrectly permitted.
  -fpreview=in                Implement 'in' parameters to mean scope const.
  -fpreview=inclusiveincontracts Implement 'in' contracts of overridden methods
                              to be a superset of parent contract.
  -fpreview=nosharedaccess    Disable access to shared memory objects.
  -fpreview=rvaluerefparam    Enable rvalue arguments to ref parameters.
  -fpreview=systemvariables   Disable access to variables marked `@system' from
                              @safe code.
  -frelease                   Compile release version.
  -frevert=all                Turn off all revertable D language features.
  -frevert=dip1000            Revert DIP1000: Scoped pointers.
  -frevert=dtorfields         Don't destruct fields of partially constructed
                              objects.
  -frevert=intpromote         Don't use C-style integral promotion for unary
                              '+', '-' and '~'.
  -fsave-mixins=<filename>    Expand and save mixins to file specified by
                              <filename>.
  -fswitch-errors             Generate code for switches without a default case.
  -ftransition=all            List information on all D language transitions.
  -ftransition=field          List all non-mutable fields which occupy an
                              object instance.
  -ftransition=in             List all usages of 'in' on parameter.
  -ftransition=nogc           List all hidden GC allocations.
  -ftransition=templates      List statistics on template instantiations.
  -ftransition=tls            List all variables going into thread local
                              storage.
  -funittest                  Compile in unittest code.
  -fversion=<ident>           Compile in version code identified by <ident>.
  -fweak-templates            Emit template instantiations as weak symbols.

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         Does nothing. Preserved for backward
                              compatibility.
  -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.
  -Woverwrite-recursive       Warn that -fno-automatic may break recursion.
  -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-argument-mismatch   Accept argument mismatches in procedure calls.
  -fallow-invalid-boz         Allow a BOZ literal constant to appear in an
                              invalid context and with X instead of Z.
  -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.
  -fbuilding-libgfortran      This option lacks documentation.
  -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=<big-endian|little-endian|native|swap|r16_ieee|r16_ibm> 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.
  -fdebug-aux-vars            Issue debug information for compiler-generated
                              auxiliary variables.
  -fdec                       Enable all DEC language extensions.
  -fdec-blank-format-item     Enable the use of blank format items in format
                              strings.
  -fdec-char-conversions      Enable the use of character literals in
                              assignments and data statements for non-character
                              variables.
  -fdec-format-defaults       Enable default widths for i, f and g format
                              specifiers.
  -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-arg-packing        Perform argument packing inline.
  -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=1 (or, in negated
                              form, -ftail-call-workaround=0).
  -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.
  -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-debug-optimization     Emit optimization diagnostics.
  -fgo-dump-<type>            Dump Go frontend internal information.
  -fgo-embedcfg=<file>        List embedded files via go:embed.
  -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 LTODump:
  -callgraph                  Dump the symtab callgraph.
  -defined-only               Dump only the defined symbols.
  -demangle                   Dump the demangled output.
  -dump-body=                 This option lacks documentation.
  -dump-level=                This option lacks documentation.
  -gimple-stats               Dump the statistics of gimple statements.
  -help                       Dump the dump tool command line options.
  -list                       Call the dump function for variables and function
                              in IL.
  -name-sort                  Sort the symbols alphabetically.
  -objects                    Dump the details of LTO objects.
  -print-value                Print the initial values of the variables.
  -reverse-sort               Display the symbols in reverse order.
  -size-sort                  Sort the symbols according to size.
  -symbol=                    This option lacks documentation.
  -tree-stats                 Dump the statistics of trees.
  -type-stats                 Dump the statistics of tree types.

The following options are specific to just the language Modula-2:
  --save-temps                Same as -save-temps.
  -B                          This option lacks documentation.
  -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
  -Wstyle                     extra compile time semantic checking, typically
                              tries to catch poor programming style
  -Wunused-parameter          Warn when a function parameter is unused.
  -Wverbose-unbounded         inform user which parameters will be passed by
                              reference
  -c                          This option lacks documentation.
  -fauto-init                 automatically initializes all pointers to NIL
  -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 one was
                              not specified
  -fcpp                       use cpp to preprocess the module
  -fcpp-begin                 passed to the preprocessor if -fcpp is used
                              (internal switch)
  -fcpp-end                   passed to the preprocessor if -fcpp is used
                              (internal switch)
  -fd                         turn on internal debugging of the compiler
                              (internal switch)
  -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
  -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 will exceed range
  -fgen-module-list=          create a topologically sorted module list from
                              all dependent modules used in the application
  -findex                     turns on all range checking for numerical values
  -fiso                       use ISO dialect of Modula-2
  -flibs=                     specify the library order, the libraries may be
                              specified by a comma separated abbreviation:
                              log,min,pim,iso or by directory names:
                              m2log,m2min,m2pim,m2iso.
  -flocation=                 set all location values to a specific value
                              (internal switch)
  -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-pathname=              specify the module mangled prefix name for all
                              modules in the following include paths
  -fm2-pathnameI              This option lacks documentation.
  -fm2-plugin                 insert plugin to identify runtime errors at
                              compiletime
  -fm2-prefix=                specify the module mangled prefix name
  -fm2-statistics             display statistics about the amount of source
                              lines compiled and symbols used
  -fm2-strict-type            experimental flag to turn on the new strict type
                              checker
  -fm2-whole-program          compile all implementation modules and program
                              module at once
  -fmod=                      recognise the specified suffix as implementation
                              and module filenames
  -fnil                       turns on runtime checking to detect accessing
                              data through a NIL value pointer
  -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
  -fpthread                   link against the pthread library (default on)
  -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
  -fscaffold-c                generate a C source scaffold for the current
                              module being compiled
  -fscaffold-c++              generate a C++ source scaffold for the current
                              module being compiled
  -fscaffold-dynamic          the modules initialization order is dynamically
                              determined by M2RTS and application dependencies
  -fscaffold-main             generate the main function
  -fscaffold-static           generate static scaffold initialization and
                              finalization for every module inside main
  -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 -fwholevalue -ffloatvalue)
  -fsources                   display the location of module source files as
                              they are compiled
  -fswig                      create a swig interface file for the module
  -funbounded-by-reference    optimize non var unbounded parameters by passing
                              it by reference, providing it is not written to
                              within the callee procedure.
  -fuse-list=                 orders the initialization/finalializations for
                              scaffold-static or force linking of modules if
                              scaffold-dynamic
  -fversion                   This option lacks documentation.
  -fwholediv                  turns on all division and modulus by zero
                              checking for ordinal values
  -fwholevalue                turns on runtime checking to check whether a
                              whole number will exceed range
  -save-temps                 save temporary preprocessed files
  -save-temps=                save temporary preprocessed files

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 specific to just the language Rust:
  -frust-cfg=                 -frust-cfg=<name>             Set a config
                              expansion option
  -frust-compile-until=       -frust-compile-
                              until=[ast|attributecheck|expansion|nameresolution|lowering|typecheck|privacy|unsafety|const|copimlation|end]
                              When to stop in the pipeline when compiling Rust
                              code
  -frust-crate=               -frust-crate=<name>             Set the crate
                              name for the compilation
  -frust-debug                Dump various Rust front end internals.
  -frust-dump-<type>          Dump Rust frontend internal information.
  -frust-edition=             -frust-edition=[2015|2018|2021]            
                              Choose which edition to use when compiling rust
                              code
  -frust-embed-metadata       Flag to enable embeding metadata directly into
                              object files
  -frust-incomplete-and-experimental-compiler-do-not-use Enable experimental
                              compilation of Rust files at your own risk
  -frust-mangling=            -frust-mangling=[legacy|v0]     Choose which
                              version to use for name mangling
  -frust-max-recursion-depth= -frust-max-recursion-depth=integer
  -frust-metadata-output=     -frust-metadata-output=<path.rox>  Path to output
                              crate metadata

The following options are language-related:
  --all-warnings              Same as -Wall.
  --ansi                      Same as -ansi.
  --assert                    Same as -A.
  --assert=                   Same as -A.
  --comments                  Same as -C.
  --comments-in-macros        Same as -CC.
  --define-macro              Same as -D.
  --define-macro=             Same as -D.
  --dependencies              Same as -M.
  --dump                      Same as -d.
  --dump=                     Same as -d.
  --imacros                   Same as -imacros.
  --imacros=                  Same as -imacros.
  --include                   Same as -include.
  --include-barrier           Same as -I-.
  --include-directory         Same as -I.
  --include-directory-after   Same as -idirafter.
  --include-directory-after=  Same as -idirafter.
  --include-directory=        Same as -I.
  --include-prefix            Same as -iprefix.
  --include-prefix=           Same as -iprefix.
  --include-with-prefix       Same as -iwithprefix.
  --include-with-prefix-after Same as -iwithprefix.
  --include-with-prefix-after= Same as -iwithprefix.
  --include-with-prefix-before Same as -iwithprefixbefore.
  --include-with-prefix-before= Same as -iwithprefixbefore.
  --include-with-prefix=      Same as -iwithprefix.
  --include=                  Same as -include.
  --no-line-commands          Same as -P.
  --no-standard-includes      Same as -nostdinc.
  --no-standard-libraries     Same as -nostdlib.
  --no-warnings               Same as -w.
  --output                    Same as -o.
  --output-pch                This option lacks documentation.
  --output=                   Same as -o.
  --pedantic                  Same as -Wpedantic.
  --preprocess                This option lacks documentation.
  --print-missing-file-dependencies Same as -MG.
  --trace-includes            Same as -H.
  --traditional-cpp           Same as -traditional-cpp.
  --trigraphs                 Same as -trigraphs.
  --undefine-macro            Same as -U.
  --undefine-macro=           Same as -U.
  --user-dependencies         Same as -MM.
  --verbose                   Same as -v.
  --write-dependencies        Same as -MD.
  --write-user-dependencies   Same as -MMD.
  -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                          This option lacks documentation.
  -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 target that may require quoting.
  -MT <target>                Add a target that does not require quoting.
  -Mmodules                   Generate C++ Module dependency information.
  -Mno-modules                This option lacks documentation.
  -P                          Do not generate #line directives.
  -U<macro>                   Undefine <macro>.
  -WNSObject-attribute        Warn if the NSObject attribute is applied to a
                              non-typedef.
  -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=<bytes> Warn for calls to allocation functions that
                              attempt to allocate objects larger than the
                              specified number of bytes.
  -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.
  -Warith-conversion          Warn if conversion of the result of arithmetic
                              might change the value even though converting the
                              operands cannot.
  -Warray-compare             Warn about comparisons between two operands of
                              array type.
  -Warray-parameter           Warn about mismatched declarations of array
                              parameters and unsafe accesses to them.  Same as
                              -Warray-parameter=.
  -Warray-parameter=<0,2>     Warn about mismatched declarations of array
                              parameters and unsafe accesses to them.
  -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.
  -Wbidi-chars                Same as -Wbidi-chars=any (or, in negated form,
                              -Wbidi-chars=none).
  -Wbidi-chars=               -Wbidi-chars=[none|unpaired|any|ucn] Warn about
                              UTF-8 bidirectional control characters.
  -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.
  -Wc++11-compat              Warn about C++ constructs whose meaning differs
                              between ISO C++ 1998 and ISO C++ 2011.
  -Wc++11-extensions          Warn about C++11 constructs in code compiled with
                              an older standard.
  -Wc++14-compat              Warn about C++ constructs whose meaning differs
                              between ISO C++ 2011 and ISO C++ 2014.
  -Wc++14-extensions          Warn about C++14 constructs in code compiled with
                              an older standard.
  -Wc++17-compat              Warn about C++ constructs whose meaning differs
                              between ISO C++ 2014 and ISO C++ 2017.
  -Wc++17-extensions          Warn about C++17 constructs in code compiled with
                              an older standard.
  -Wc++1z-compat              Same as -Wc++17-compat.
  -Wc++20-compat              Warn about C++ constructs whose meaning differs
                              between ISO C++ 2017 and ISO C++ 2020.
  -Wc++20-extensions          Warn about C++20 constructs in code compiled with
                              an older standard.
  -Wc++23-extensions          Warn about C++23 constructs in code compiled with
                              an older standard.
  -Wc++2a-compat              Same as -Wc++20-compat.
  -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.
  -Wchanges-meaning           Complain about a name being declared as a class
                              member after a previous use of the same name.
  -Wchar-subscripts           Warn about subscripts whose type is "char".
  -Wchkp                      Removed 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".
  -Wcomma-subscript           Warn about uses of a comma operator within a
                              subscripting expression.
  -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.
  -Wctad-maybe-unsupported    Warn when performing class template argument
                              deduction on a type with no deduction guides.
  -Wctor-dtor-privacy         Warn when all constructors and destructors are
                              private.
  -Wdangling-else             Warn about dangling else.
  -Wdangling-pointer          Warn for uses of pointers to auto variables whose
                              lifetime has ended.  Same as -Wdangling-pointer=.
  -Wdangling-pointer=<0,2>    Warn for uses of pointers to auto variables whose
                              lifetime has ended.
  -Wdangling-reference        Warn when a reference is bound to a temporary
                              whose lifetime has ended.
  -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.
  -Wdeprecated-enum-enum-conversion Warn about deprecated arithmetic
                              conversions on operands of enumeration types.
  -Wdeprecated-enum-float-conversion Warn about deprecated arithmetic
                              conversions on operands where one is of
                              enumeration type and the other is of a floating-
                              point type.
  -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.
  -Wenum-conversion           Warn about implicit conversion of enum types.
  -Wenum-int-mismatch         Warn about enum/integer type mismatches.
  -Werror                     Treat all warnings as errors.
  -Werror-implicit-function-declaration This switch is deprecated; use
                              -Werror=implicit-function-declaration instead. 
                              Same as -Werror=.
  -Wexceptions                Warn when an exception handler is shadowed by
                              another handler.
  -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-diag               Warn about GCC format strings with strings
                              unsuitable for diagnostics.
  -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.
  -Winaccessible-base         Warn when a base is inaccessible in derived due
                              to ambiguity.
  -Wincompatible-pointer-types Warn when there is a conversion between pointers
                              that have incompatible types.
  -Winfinite-recursion        Warn for infinitely recursive calls.
  -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.
  -Winterference-size         Warn about nonsensical values of --param
                              destructive-interference-size or constructive-
                              interference-size.
  -Winvalid-constexpr         Warn when a function never produces a constant
                              expression.
  -Winvalid-imported-macros   Warn about macros that have conflicting header
                              units definitions.
  -Winvalid-offsetof          Warn about invalid uses of the "offsetof" macro.
  -Winvalid-pch               Warn about PCH files that are found but not used.
  -Winvalid-utf8              Warn about invalid UTF-8 characters.
  -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.
  -Wmismatched-dealloc        Warn for deallocation calls with arguments
                              returned from mismatched allocation functions.
  -Wmismatched-new-delete     Warn for mismatches between calls to operator new
                              or delete and the corresponding call to the
                              allocation or deallocation function.
  -Wmismatched-tags           Warn when a class is redeclared or referenced
                              using a mismatched class-key.
  -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.
  -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.
  -Wmissing-requires          Warn about likely missing requires keyword.
  -Wmissing-template-keyword  Warn when the template keyword is missing after a
                              member access token in a dependent member access
                              expression if that member is a template.
  -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 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     Disable Walloca-larger-than= warning.  Equivalent
                              to Walloca-larger-than=<SIZE_MAX> or larger. 
                              Same as -Walloca-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=nfc (or, in negated form,
                              -Wnormalized=none).
  -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
  -Wobjc-root-class           Warn if a class interface has no superclass. 
                              Root classes may use an attribute to suppress
                              this warning.
  -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.
  -Wopenacc-parallelism       Warn about potentially suboptimal choices related
                              to OpenACC parallelism.
  -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. 
                              Same as -Woverloaded-virtual=.
  -Woverloaded-virtual=<0,2>  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.
  -Wpedantic-ms-format        Warn about none ISO msvcrt scanf/printf width
                              extensions.
  -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.
  -Wrange-loop-construct      Warn when a range-based for-loop is creating
                              unnecessary copies.
  -Wredundant-decls           Warn about multiple declarations of the same
                              object.
  -Wredundant-move            Warn about redundant calls to std::move.
  -Wredundant-tags            Warn when a class or enumerated type is
                              referenced using a redundant class-key.
  -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.
  -Wself-move                 Warn when a value is moved to itself with
                              std::move.
  -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-array-div          Warn about divisions of two sizeof operators when
                              the first one is applied to an array and the
                              divisor does not equal the size of the array
                              element.
  -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-flex-arrays        Warn about inproper usages of flexible array
                              members according to the level of -fstrict-flex-
                              arrays.
  -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.
  -Wstring-compare            Warn about calls to strcmp and strncmp used in
                              equality expressions that are necessarily true or
                              false due to the length of one and size of the
                              other argument.
  -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-overread         Warn about reading past the end of a source array
                              in string manipulation functions like memchr and
                              memcpy.
  -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.
  -Wswitch-outside-range      Warn about switch values that are outside of the
                              switch's type range.
  -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.
  -Wunicode                   Warn about invalid forms of delimited or named
                              escape sequences.
  -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.
  -Wvexing-parse              Warn about the most vexing parse syntactic
                              ambiguity.
  -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.
  -Wvla-parameter             Warn about mismatched declarations of VLA
                              parameters.
  -Wvolatile                  Warn about deprecated uses of volatile qualifier.
  -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.
  -Wxor-used-as-pow           Warn about xor operators where it appears the
                              user meant exponentiation.
  -Wzero-as-null-pointer-constant Warn when a literal '0' is used as null
                              pointer.
  -Wzero-length-bounds        Warn about accesses to interior zero-length array
                              members.
  -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=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=<N>           Use C++17 over-aligned type allocation for
                              alignments greater than N.
  -fall-virtual               This option lacks documentation.
  -fallow-parameterless-variadic-functions Does nothing. Preserved for backward
                              compatibility.
  -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      Removed in GCC 9.  This switch has no effect.
  -fchkp-check-incomplete-type Removed in GCC 9.  This switch has no effect.
  -fchkp-check-read           Removed in GCC 9.  This switch has no effect.
  -fchkp-check-write          Removed in GCC 9.  This switch has no effect.
  -fchkp-first-field-has-own-bounds Removed in GCC 9.  This switch has no
                              effect.
  -fchkp-flexible-struct-trailing-arrays Removed in GCC 9.  This switch has no
                              effect.
  -fchkp-instrument-calls     Removed in GCC 9.  This switch has no effect.
  -fchkp-instrument-marked-only Removed in GCC 9.  This switch has no effect.
  -fchkp-narrow-bounds        Removed in GCC 9.  This switch has no effect.
  -fchkp-narrow-to-innermost-array Removed in GCC 9.  This switch has no effect.
  -fchkp-optimize             This option lacks documentation.
  -fchkp-store-bounds         Removed in GCC 9.  This switch has no effect.
  -fchkp-treat-zero-dynamic-size-as-infinite Removed in GCC 9.  This switch has
                              no effect.
  -fchkp-use-fast-string-functions Removed in GCC 9.  This switch has no effect.
  -fchkp-use-nochk-string-functions Removed in GCC 9.  This switch has no
                              effect.
  -fchkp-use-static-bounds    Removed in GCC 9.  This switch has no effect.
  -fchkp-use-static-const-bounds Removed in GCC 9.  This switch has no effect.
  -fchkp-use-wrappers         Removed in GCC 9.  This switch has no effect.
  -fchkp-zero-input-bounds-for-main Removed in GCC 9.  This switch has no
                              effect.
  -fcilkplus                  Removed in GCC 8.  This switch has no effect.
  -fconcepts                  Enable support for C++ concepts.
  -fconcepts-diagnostics-depth= Specify maximum error replay depth during
                              recursive diagnosis of a constraint satisfaction
                              failure.
  -fconcepts-ts               Enable certain features present in the Concepts
                              TS.
  -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-cache-depth=<number> Specify maximum constexpr recursion cache
                              depth.
  -fconstexpr-depth=<number>  Specify maximum constexpr recursion depth.
  -fconstexpr-fp-except       Allow IEC559 floating point exceptions in
                              constant expressions.
  -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.
  -fcontracts                 Enable certain features present in drafts of C++
                              Contracts.
  -fcoroutines                Enable C++ coroutines (experimental).
  -fdebug-cpp                 Emit debug annotations during preprocessing.
  -fdeclone-ctor-dtor         Factor complex constructors and destructors to
                              favor space over speed.
  -fdeduce-init-list          Does nothing.  Preserved for backward
                              compatibility.
  -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                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.
  -fexceptions                Enable exception handling.
  -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.
  -ffold-simple-inlines       Fold calls to simple inline functions.
  -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.  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-constexpr        Make inline functions constexpr by default.
  -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.
  -fkeep-inline-dllexport     Don't emit dllexported inline functions unless
                              needed.
  -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=<old>=<new> Map one directory name to another in __FILE__,
                              __BASE_FILE__, and __builtin_FILE().
  -fmax-include-depth=        fmax-include-depth=<number> Set the maximum depth
                              of the nested #include.
  -fmodule-header             Enable C++ header module (experimental).
  -fmodule-header=            This option lacks documentation.
  -fmodule-implicit-inline    Member functions defined within their class are
                              inline in module purview.
  -fmodule-lazy               Enable lazy module importing.
  -fmodule-mapper=            Mapper for module to CMI files.
  -fmodule-only               Only emit Compiled Module Interface.
  -fmodule-version-ignore     This option lacks documentation.
  -fmodules-ts                Enable C++ modules-ts (experimental).
  -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.
  -fno-modules                This option lacks documentation.
  -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          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                      Removed in GCC 10.  This switch has no effect.
  -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-flex-arrays        Same as -fstrict-flex-arrays=3 (or, in negated
                              form, -fstrict-flex-arrays=0).
  -fstrict-flex-arrays=<0,3>  -fstrict-flex-arrays=<level>    Control when to
                              treat the trailing array of a structure as a
                              flexible array member for the purposes of
                              accessing the elements of such an array. The
                              default is treating all trailing arrays of
                              structures as flexible array members.
  -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.
  -ftemplate-backtrace-limit= Set the maximum number of template instantiation
                              notes for a single warning or error.
  -ftemplate-depth-           Same as -ftemplate-depth=.
  -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=<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.
  -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.
  -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++20                  Conform to the ISO 2020 C++ standard
                              (experimental and incomplete support).
  -std=c++23                  Conform to the ISO 2023 C++ draft standard
                              (experimental and incomplete support).
  -std=c++2a                  Conform to the ISO 2020 C++ standard
                              (experimental and incomplete support).  Same as
                              -std=c++20.
  -std=c++2b                  Conform to the ISO 2023 C++ draft standard
                              (experimental and incomplete support).  Same as
                              -std=c++23.
  -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++20                Conform to the ISO 2020 C++ standard with GNU
                              extensions (experimental and incomplete support).
  -std=gnu++23                Conform to the ISO 2023 C++ draft standard with
                              GNU extensions (experimental and incomplete
                              support).
  -std=gnu++2a                Conform to the ISO 2020 C++ standard with GNU
                              extensions (experimental and incomplete support).
                              Same as -std=gnu++20.
  -std=gnu++2b                Conform to the ISO 2023 C++ draft standard with
                              GNU extensions (experimental and incomplete
                              support).  Same as -std=gnu++23.
  -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 following options control parameters:
  --param=align-loop-iterations= Loops iterating at least selected number of
                              iterations will get loop alignment.
  --param=align-threshold=<1,65536> Select fraction of the maximal frequency of
                              executions of basic block in function given basic
                              block get alignment.
  --param=analyzer-bb-explosion-factor= The maximum number of 'after supernode'
                              exploded nodes within the analyzer per supernode,
                              before terminating analysis.
  --param=analyzer-max-constraints= The maximum number of constraints per state.
  --param=analyzer-max-enodes-for-full-dump= The maximum depth of exploded
                              nodes that should appear in a dot dump before
                              switching to a less verbose format.
  --param=analyzer-max-enodes-per-program-point= The maximum number of exploded
                              nodes per program point within the analyzer,
                              before terminating analysis of that point.
  --param=analyzer-max-infeasible-edges= The maximum number of infeasible edges
                              to reject before declaring a diagnostic as
                              infeasible.
  --param=analyzer-max-recursion-depth= The maximum number of times a callsite
                              can appear in a call stack within the analyzer,
                              before terminating analysis of a call that would
                              recurse deeper.
  --param=analyzer-max-svalue-depth= The maximum depth of a symbolic value,
                              before approximating the value as unknown.
  --param=analyzer-min-snodes-for-call-summary= The minimum number of
                              supernodes within a function for the analyzer to
                              consider summarizing its effects at call sites.
  --param=asan-globals=<0,1>  Enable asan globals protection.
  --param=asan-instrument-allocas=<0,1> Enable asan allocas/VLAs protection.
  --param=asan-instrument-reads=<0,1> Enable asan load operations protection.
  --param=asan-instrument-writes=<0,1> Enable asan store operations protection.
  --param=asan-instrumentation-with-call-threshold= Use callbacks instead of
                              inline code if number of accesses in function
                              becomes greater or equal to this number.
  --param=asan-kernel-mem-intrinsic-prefix=<0,1> Prefix calls to memcpy, memset
                              and memmove with __asan_ or __hwasan_ for
                              -fsanitize=kernel-address or -fsanitize=kernel-
                              hwaddress.
  --param=asan-memintrin=<0,1> Enable asan builtin functions protection.
  --param=asan-stack=<0,1>    Enable asan stack protection.
  --param=asan-use-after-return=<0,1> Enable asan detection of use-after-return
                              bugs.
  --param=avg-loop-niter=<1,65536> Average number of iterations of a loop.
  --param=avoid-fma-max-bits=<0,512> Maximum number of bits for which we avoid
                              creating FMAs.
  --param=builtin-expect-probability=<0,100> Set the estimated probability in
                              percentage for builtin expect. The default value
                              is 90% probability.
  --param=builtin-string-cmp-inline-length=<0,100> The maximum length of a
                              constant string for a builtin string cmp call
                              eligible for inlining. The default value is 3.
  --param=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.
  --param=comdat-sharing-probability= Probability that COMDAT function will be
                              shared with different compilation unit.
  --param=constructive-interference-size= The maximum recommended size of
                              contiguous memory occupied by two objects
                              accessed with temporal locality by concurrent
                              threads.  Typically the L1 cache line size, but
                              can be smaller to accommodate a variety of target
                              processors with different cache line sizes.
  --param=cxx-max-namespaces-for-diagnostic-help= Maximum number of namespaces
                              to search for alternatives when name lookup fails.
  --param=destructive-interference-size= The minimum recommended offset between
                              two concurrently-accessed objects to avoid
                              additional performance degradation due to
                              contention introduced by the implementation. 
                              Typically the L1 cache line size, but can be
                              larger to accommodate a variety of target
                              processors with different cache line sizes. C++17
                              code might use this value in structure layout,
                              but is strongly discouraged from doing so in
                              public ABIs.
  --param=dse-max-alias-queries-per-store= Maximum number of queries into the
                              alias oracle per store.
  --param=dse-max-object-size= Maximum size (in bytes) of objects tracked
                              bytewise by dead store elimination.
  --param=early-inlining-insns= Maximal estimated growth of function body
                              caused by early inlining of single call.
  --param=evrp-sparse-threshold= Maximum number of basic blocks before EVRP
                              uses a sparse cache.
  --param=evrp-switch-limit=  Maximum number of outgoing edges in a switch
                              before EVRP will not process it.
  --param=fsm-scale-path-stmts=<1,10> Scale factor to apply to the number of
                              statements in a threading path crossing a loop
                              backedge when comparing to max-jump-thread-
                              duplication-stmts.
  --param=gcse-after-reload-critical-fraction= The threshold ratio of critical
                              edges execution count that permit performing
                              redundancy elimination after reload.
  --param=gcse-after-reload-partial-fraction= The threshold ratio for
                              performing partial redundancy elimination after
                              reload.
  --param=gcse-cost-distance-ratio= Scaling factor in calculation of maximum
                              distance an expression can be moved by GCSE
                              optimizations.
  --param=gcse-unrestricted-cost= Cost at which GCSE optimizations will not
                              constraint the distance an expression can travel.
  --param=ggc-min-expand=     Minimum heap expansion to trigger garbage
                              collection, as a percentage of the total size of
                              the heap.
  --param=ggc-min-heapsize=   Minimum heap size before we start collecting
                              garbage, in kilobytes.
  --param=gimple-fe-computed-hot-bb-threshold= The number of executions of a
                              basic block which is considered hot. The
                              parameter is used only in GIMPLE FE.
  --param=graphite-allow-codegen-errors=<0,1> Whether codegen errors should be
                              ICEs when -fchecking.
  --param=graphite-max-arrays-per-scop= Maximum number of arrays per SCoP.
  --param=graphite-max-nb-scop-params= Maximum number of parameters in a SCoP.
  --param=hash-table-verification-limit= The number of elements for which hash
                              table verification is done for each searched
                              element.
  --param=hot-bb-count-fraction= The denominator n of fraction 1/n of the
                              maximal execution count of a basic block in the
                              entire program that a basic block needs to at
                              least have in order to be considered hot (used in
                              non-LTO mode).
  --param=hot-bb-count-ws-permille=<0,1000> The number of most executed
                              permilles of the profiled execution of the entire
                              program to which the execution count of a basic
                              block must be part of in order to be considered
                              hot (used in LTO mode).
  --param=hot-bb-frequency-fraction= The denominator n of fraction 1/n of the
                              execution frequency of the entry block of a
                              function that a basic block of this function
                              needs to at least have in order to be considered
                              hot.
  --param=hwasan-instrument-allocas=<0,1> Enable hwasan instrumentation of
                              allocas/VLAs.
  --param=hwasan-instrument-mem-intrinsics=<0,1> Enable hwasan instrumentation
                              of builtin functions.
  --param=hwasan-instrument-reads=<0,1> Enable hwasan instrumentation of load
                              operations.
  --param=hwasan-instrument-stack=<0,1> Enable hwasan instrumentation of
                              statically sized stack-allocated variables.
  --param=hwasan-instrument-writes=<0,1> Enable hwasan instrumentation of store
                              operations.
  --param=hwasan-random-frame-tag=<0,1> Use random base tag for each frame, as
                              opposed to base always zero.
  --param=inline-heuristics-hint-percent=<100,1000000> The scale (in percents)
                              applied to inline-insns-single and auto limits
                              when heuristics hints that inlining is very
                              profitable.
  --param=inline-min-speedup=<0,100> The minimal estimated speedup allowing
                              inliner to ignore inline-insns-single and inline-
                              insns-auto.
  --param=inline-unit-growth= How much can given compilation unit grow because
                              of the inlining (in percent).
  --param=integer-share-limit=<2,65536> The upper bound for sharing integer
                              constants.
  --param=ipa-cp-eval-threshold= Threshold ipa-cp opportunity evaluation that
                              is still considered beneficial to clone.
  --param=ipa-cp-large-unit-insns= The size of translation unit that IPA-CP
                              pass considers large.
  --param=ipa-cp-loop-hint-bonus= Compile-time bonus IPA-CP assigns to
                              candidates which make loop bounds or strides
                              known.
  --param=ipa-cp-max-recursive-depth= Maximum depth of recursive cloning for
                              self-recursive function.
  --param=ipa-cp-min-recursive-probability= Recursive cloning only when the
                              probability of call being executed exceeds the
                              parameter.
  --param=ipa-cp-profile-count-base=<0,100> When using profile feedback, use
                              the edge at this percentage position in frequncy
                              histogram as the bases for IPA-CP heuristics.
  --param=ipa-cp-recursion-penalty=<0,100> Percentage penalty the recursive
                              functions will receive when they are evaluated
                              for cloning.
  --param=ipa-cp-recursive-freq-factor= When propagating IPA-CP effect
                              estimates, multiply frequencies of recursive
                              edges that bring back an unchanged value by this
                              factor.
  --param=ipa-cp-single-call-penalty=<0,100> Percentage penalty functions
                              containing a single call to another function will
                              receive when they are evaluated for cloning.
  --param=ipa-cp-unit-growth= How much can given compilation unit grow because
                              of the interprocedural constant propagation (in
                              percent).
  --param=ipa-cp-value-list-size= Maximum size of a list of values associated
                              with each parameter for interprocedural constant
                              propagation.
  --param=ipa-jump-function-lookups= Maximum number of statements visited
                              during jump function offset discovery.
  --param=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.
  --param=ipa-max-agg-items=  Maximum number of aggregate content items for a
                              parameter in jump functions and lattices.
  --param=ipa-max-loop-predicates= Maximum number of different predicates used
                              to track properties of loops in IPA analysis.
  --param=ipa-max-param-expr-ops= Maximum number of operations in a parameter
                              expression that can be handled by IPA analysis.
  --param=ipa-max-switch-predicate-bounds= Maximal number of boundary endpoints
                              of case ranges of switch statement used during
                              IPA function summary generation.
  --param=ipa-sra-deref-prob-threshold=<0,100> Minimum probability (in percent)
                              of dereferencing of a function pointer parameter
                              for it to be considered for replacement with
                              simple values.
  --param=ipa-sra-max-replacements=<0,16> Maximum pieces that IPA-SRA tracks
                              per formal parameter, as a consequence, also the
                              maximum number of replacements of a formal
                              parameter.
  --param=ipa-sra-ptr-growth-factor= Maximum allowed growth of total size of
                              new parameters that ipa-sra replaces a pointer to
                              an aggregate with.
  --param=ipa-sra-ptrwrap-growth-factor=<1,8> Additional maximum allowed growth
                              of total size of new parameters that ipa-sra
                              replaces a pointer to an aggregate with, if it
                              points to a local variable that the caller only
                              writes to and passes it as an argument to
                              functions.
  --param=ira-consider-dup-in-all-alts=<0,1> Control ira to consider matching
                              constraint (duplicated operand number) heavily in
                              all available alternatives for preferred register
                              class.  If it is set as zero, it means ira only
                              respects the matching constraint when it's in the
                              only available alternative with an appropriate
                              register class.  Otherwise, it means ira will
                              check all available alternatives for preferred
                              register class even if it has found some choice
                              with an appropriate register class and respect
                              the found qualified matching constraint.
  --param=ira-loop-reserved-regs= The number of registers in each class kept
                              unused by loop invariant motion.
  --param=ira-max-conflict-table-size= Max size of conflict table in MB.
  --param=ira-max-loops-num=  Max loops number for regional RA.
  --param=ira-simple-lra-insn-threshold= Approximate function insn number in 1K
                              units triggering simple local RA.
  --param=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.
  --param=iv-consider-all-candidates-bound= Bound on number of candidates below
                              that all candidates are considered in iv
                              optimizations.
  --param=iv-max-considered-uses= Bound on number of iv uses in loop optimized
                              in iv optimizations.
  --param=jump-table-max-growth-ratio-for-size=<0,10000> The maximum code size
                              growth ratio when expanding into a jump table (in
                              percent).  The parameter is used when optimizing
                              for size.
  --param=jump-table-max-growth-ratio-for-speed=<0,10000> The maximum code size
                              growth ratio when expanding into a jump table (in
                              percent).  The parameter is used when optimizing
                              for speed.
  --param=l1-cache-line-size= The size of L1 cache line.
  --param=l1-cache-size=      The size of L1 cache.
  --param=l2-cache-size=      The size of L2 cache.
  --param=large-function-growth= Maximal growth due to inlining of large
                              function (in percent).
  --param=large-function-insns= The size of function body to be considered
                              large.
  --param=large-stack-frame-growth= Maximal stack frame growth due to inlining
                              (in percent).
  --param=large-stack-frame=  The size of stack frame to be considered large.
  --param=large-unit-insns=   The size of translation unit to be considered
                              large.
  --param=lim-expensive=      The minimum cost of an expensive expression in
                              the loop invariant motion.
  --param=logical-op-non-short-circuit=<0,1> True if a non-short-circuit
                              operation is optimal.
  --param=loop-block-tile-size= Size of tiles for loop blocking.
  --param=loop-interchange-max-num-stmts= The maximum number of stmts in loop
                              nest for loop interchange.
  --param=loop-interchange-stride-ratio= The minimum stride ratio for loop
                              interchange to be profitable.
  --param=loop-invariant-max-bbs-in-loop= Max basic blocks number in loop for
                              loop invariant motion.
  --param=loop-max-datarefs-for-datadeps= Maximum number of datarefs in loop
                              for building loop data dependencies.
  --param=loop-versioning-max-inner-insns= The maximum number of instructions
                              in an inner loop that is being considered for
                              versioning.
  --param=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.
  --param=lra-inheritance-ebb-probability-cutoff=<0,100> Minimal fall-through
                              edge probability in percentage used to add BB to
                              inheritance EBB in LRA.
  --param=lra-max-considered-reload-pseudos= The max number of reload pseudos
                              which are considered during spilling a non-reload
                              pseudo.
  --param=lto-max-partition=  Maximal size of a partition for LTO (in estimated
                              instructions).
  --param=lto-max-streaming-parallelism=<1,65536> maximal number of LTO
                              partitions streamed in parallel.
  --param=lto-min-partition=  Minimal size of a partition for LTO (in estimated
                              instructions).
  --param=lto-partitions=<1,65536> Number of partitions the program should be
                              split to.
  --param=max-average-unrolled-insns= The maximum number of instructions to
                              consider to unroll in a loop on average.
  --param=max-combine-insns=<2,4> The maximum number of insns combine tries to
                              combine.
  --param=max-completely-peel-loop-nest-depth= The maximum depth of a loop nest
                              we completely peel.
  --param=max-completely-peel-times= The maximum number of peelings of a single
                              loop that is peeled completely.
  --param=max-completely-peeled-insns= The maximum number of insns of a
                              completely peeled loop.
  --param=max-crossjump-edges= The maximum number of incoming edges to consider
                              for crossjumping.
  --param=max-cse-insns=      The maximum instructions CSE process before
                              flushing.
  --param=max-cse-path-length=<1,65536> The maximum length of path considered
                              in cse.
  --param=max-cselib-memory-locations= The maximum memory locations recorded by
                              cselib.
  --param=max-debug-marker-count= Max. count of debug markers to expand or
                              inline.
  --param=max-delay-slot-insn-search= The maximum number of instructions to
                              consider to fill a delay slot.
  --param=max-delay-slot-live-search= The maximum number of instructions to
                              consider to find accurate live register
                              information.
  --param=max-dse-active-local-stores= Maximum number of active local stores in
                              RTL dead store elimination.
  --param=max-early-inliner-iterations= The maximum number of nested indirect
                              inlining performed by early inliner.
  --param=max-fields-for-field-sensitive= Maximum number of fields in a
                              structure before pointer analysis treats the
                              structure as a single variable.
  --param=max-find-base-term-values= Maximum number of VALUEs handled during a
                              single find_base_term call.
  --param=max-fsm-thread-path-insns=<1,999999> Maximum number of instructions
                              to copy when duplicating blocks on a finite state
                              automaton jump thread path.
  --param=max-gcse-insertion-ratio= The maximum ratio of insertions to
                              deletions of expressions in GCSE.
  --param=max-gcse-memory=    The maximum amount of memory to be allocated by
                              GCSE, in kilobytes.
  --param=max-goto-duplication-insns= The maximum number of insns to duplicate
                              when unfactoring computed gotos.
  --param=max-grow-copy-bb-insns= The maximum expansion factor when copying
                              basic blocks.
  --param=max-hoist-depth=    Maximum depth of search in the dominator tree for
                              expressions to hoist.
  --param=max-inline-functions-called-once-insns= Maximum combined size of
                              caller and callee which is inlined if callee is
                              called once.
  --param=max-inline-functions-called-once-loop-depth= Maximum loop depth of a
                              call which is considered for inlining functions
                              called once.
  --param=max-inline-insns-auto= The maximum number of instructions when
                              automatically inlining.
  --param=max-inline-insns-recursive-auto= The maximum number of instructions
                              non-inline function can grow to via recursive
                              inlining.
  --param=max-inline-insns-recursive= The maximum number of instructions inline
                              function can grow to via recursive inlining.
  --param=max-inline-insns-single= The maximum number of instructions in a
                              single function eligible for inlining.
  --param=max-inline-insns-size= The maximum number of instructions when
                              inlining for size.
  --param=max-inline-insns-small= The maximum number of instructions when
                              automatically inlining small functions.
  --param=max-inline-recursive-depth-auto= The maximum depth of recursive
                              inlining for non-inline functions.
  --param=max-inline-recursive-depth= The maximum depth of recursive inlining
                              for inline functions.
  --param=max-isl-operations= Maximum number of isl operations, 0 means
                              unlimited.
  --param=max-iterations-computation-cost= Bound on the cost of an expression
                              to compute the number of iterations.
  --param=max-iterations-to-track= Bound on the number of iterations the brute
                              force # of iterations analysis algorithm
                              evaluates.
  --param=max-jump-thread-duplication-stmts= Maximum number of statements
                              allowed in a block that needs to be duplicated
                              when threading jumps.
  --param=max-jump-thread-paths=<1,65536> Search space limit for the backwards
                              jump threader.
  --param=max-last-value-rtl= The maximum number of RTL nodes that can be
                              recorded as combiner's last value.
  --param=max-loop-header-insns= The maximum number of insns in loop header
                              duplicated by the copy loop headers pass.
  --param=max-modulo-backtrack-attempts= The maximum number of backtrack
                              attempts the scheduler should make when modulo
                              scheduling a loop.
  --param=max-partial-antic-length= Maximum length of partial antic set when
                              performing tree pre optimization.
  --param=max-peel-branches=  The maximum number of branches on the path
                              through the peeled sequence.
  --param=max-peel-times=     The maximum number of peelings of a single loop.
  --param=max-peeled-insns=   The maximum number of insns of a peeled loop.
  --param=max-pending-list-length= The maximum length of scheduling's pending
                              operations list.
  --param=max-pipeline-region-blocks= The maximum number of blocks in a region
                              to be considered for interblock scheduling.
  --param=max-pipeline-region-insns= The maximum number of insns in a region to
                              be considered for interblock scheduling.
  --param=max-pow-sqrt-depth=<1,32> Maximum depth of sqrt chains to use when
                              synthesizing exponentiation by a real constant.
  --param=max-predicted-iterations=<0,65536> The maximum number of loop
                              iterations we predict statically.
  --param=max-reload-search-insns= The maximum number of instructions to search
                              backward when looking for equivalent reload.
  --param=max-rtl-if-conversion-insns=<0,99> Maximum number of insns in a basic
                              block to consider for RTL if-conversion.
  --param=max-rtl-if-conversion-predictable-cost=<0,200> Maximum permissible
                              cost for the sequence that would be generated by
                              the RTL if-conversion pass for a branch that is
                              considered predictable.
  --param=max-rtl-if-conversion-unpredictable-cost=<0,200> Maximum permissible
                              cost for the sequence that would be generated by
                              the RTL if-conversion pass for a branch that is
                              considered unpredictable.
  --param=max-sched-extend-regions-iters= The maximum number of iterations
                              through CFG to extend regions.
  --param=max-sched-insn-conflict-delay=<1,10> The maximum conflict delay for
                              an insn to be considered for speculative motion.
  --param=max-sched-ready-insns=<1,65536> The maximum number of instructions
                              ready to be issued to be considered by the
                              scheduler during the first scheduling pass.
  --param=max-sched-region-blocks= The maximum number of blocks in a region to
                              be considered for interblock scheduling.
  --param=max-sched-region-insns= The maximum number of insns in a region to be
                              considered for interblock scheduling.
  --param=max-slsr-cand-scan=<1,999999> Maximum length of candidate scans for
                              straight-line strength reduction.
  --param=max-speculative-devirt-maydefs= Maximum number of may-defs visited
                              when devirtualizing speculatively.
  --param=max-ssa-name-query-depth=<1,10> Maximum recursion depth allowed when
                              querying a property of an SSA name.
  --param=max-store-chains-to-track=<1,65536> Maximum number of store chains to
                              track at the same time in the store merging pass.
  --param=max-stores-to-merge=<2,65536> Maximum number of constant stores to
                              merge in the store merging pass.
  --param=max-stores-to-sink= Maximum number of conditional store pairs that
                              can be sunk.
  --param=max-stores-to-track=<2,1048576> Maximum number of store chains to
                              track at the same time in the store merging pass.
  --param=max-tail-merge-comparisons= Maximum amount of similar bbs to compare
                              a bb with.
  --param=max-tail-merge-iterations= Maximum amount of iterations of the pass
                              over a function.
  --param=max-tracked-strlens= Maximum number of strings for which strlen
                              optimization pass will track string lengths.
  --param=max-tree-if-conversion-phi-args=<2,65536> Maximum number of arguments
                              in a PHI supported by TREE if-conversion unless
                              the loop is marked with simd pragma.
  --param=max-unroll-times=   The maximum number of unrollings of a single loop.
  --param=max-unrolled-insns= The maximum number of instructions to consider to
                              unroll in a loop.
  --param=max-unswitch-depth=<1,50> The maximum depth of a loop nest to be
                              unswitched.
  --param=max-unswitch-insns= The maximum number of insns of an unswitched loop.
  --param=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.
  --param=max-vartrack-expr-depth= Max. recursion depth for expanding var
                              tracking expressions.
  --param=max-vartrack-reverse-op-size= Max. size of loc list for which reverse
                              ops should be added.
  --param=max-vartrack-size=  Max. size of var tracking hash tables.
  --param=min-crossjump-insns=<1,65536> The minimum number of matching
                              instructions to consider for crossjumping.
  --param=min-inline-recursive-probability= Inline recursively only when the
                              probability of call being executed exceeds the
                              parameter.
  --param=min-insn-to-prefetch-ratio= Min. ratio of insns to prefetches to
                              enable prefetching for a loop with an unknown
                              trip count.
  --param=min-loop-cond-split-prob=<0,100> The minimum threshold for
                              probability of semi-invariant condition statement
                              to trigger loop split.
  --param=min-nondebug-insn-uid= The minimum UID to be used for a nondebug insn.
  --param=min-pagesize=       Minimum page size for warning purposes.
  --param=min-size-for-stack-sharing= The minimum size of variables taking part
                              in stack slot sharing when not optimizing.
  --param=min-spec-prob=      The minimum probability of reaching a source
                              block for interblock speculative scheduling.
  --param=min-vect-loop-bound= If -ftree-vectorize is used, the minimal loop
                              bound of a loop to be considered for
                              vectorization.
  --param=modref-max-accesses= Maximum number of accesses stored in each modref
                              reference.
  --param=modref-max-adjustments=<0,254> Maximum number of times a given range
                              is adjusted during the dataflow.
  --param=modref-max-bases=   Maximum number of bases stored in each modref
                              tree.
  --param=modref-max-depth=<1,65536> Maximum depth of DFS walk used by modref
                              escape analysis.
  --param=modref-max-escape-points= Maximum number of escape points tracked by
                              modref per SSA-name.
  --param=modref-max-refs=    Maximum number of references stored in each
                              modref base.
  --param=modref-max-tests=   Maximum number of tests performed by modref query.
  --param=openacc-kernels=[decompose|parloops] Specify mode of OpenACC
                              'kernels' constructs handling.
  --param=openacc-privatization=[quiet|noisy] Specify mode of OpenACC
                              privatization diagnostics.
  --param=parloops-chunk-size= Chunk size of omp schedule for loops
                              parallelized by parloops.
  --param=parloops-min-per-thread=<2,65536> Minimum number of iterations per
                              thread of an innermost parallelized loop.
  --param=parloops-schedule=[static|dynamic|guided|auto|runtime] Schedule type
                              of omp schedule for loops parallelized by
                              parloops.
  --param=partial-inlining-entry-probability=<0,100> Maximum probability of the
                              entry BB of split region (in percent relative to
                              entry BB of the function) to make partial
                              inlining happen.
  --param=predictable-branch-outcome=<0,50> Maximal estimated outcome of branch
                              considered predictable.
  --param=prefetch-dynamic-strides=<0,1> Whether software prefetch hints should
                              be issued for non-constant strides.
  --param=prefetch-latency=   The number of insns executed before prefetch is
                              completed.
  --param=prefetch-min-insn-to-mem-ratio= Min. ratio of insns to mem ops to
                              enable prefetching in a loop.
  --param=prefetch-minimum-stride= The minimum constant stride beyond which we
                              should use prefetch hints for.
  --param=profile-func-internal-id=<0,1> Use internal function id in profile
                              lookup.
  --param=ranger-debug=       --param=ranger-
                              debug=[none|trace|gori|cache|tracegori|all]
                              Specifies the output mode for debugging ranger.
  --param=ranger-logical-depth=<1,999> Maximum depth of logical expression
                              evaluation ranger will look through when
                              evaluating outgoing edge ranges.
  --param=ranger-recompute-depth=<1,100> Maximum depth of instruction chains to
                              consider for recomputation in the outgoing range
                              calculator.
  --param=relation-block-limit=<0,9999> Maximum number of relations the oracle
                              will register in a basic block.
  --param=rpo-vn-max-loop-depth=<2,65536> Maximum depth of a loop nest to fully
                              value-number optimistically.
  --param=sccvn-max-alias-queries-per-access= Maximum number of disambiguations
                              to perform per memory access.
  --param=scev-max-expr-complexity= Bound on the complexity of the expressions
                              in the scalar evolutions analyzer.
  --param=scev-max-expr-size= Bound on size of expressions used in the scalar
                              evolutions analyzer.
  --param=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.
  --param=sched-mem-true-dep-cost= Minimal distance between possibly
                              conflicting store and load.
  --param=sched-pressure-algorithm=<1,2> Which -fsched-pressure algorithm to
                              apply.
  --param=sched-spec-prob-cutoff=<0,100> The minimal probability of speculation
                              success (in percents), so that speculative insn
                              will be scheduled.
  --param=sched-state-edge-prob-cutoff=<0,100> The minimum probability an edge
                              must have for the scheduler to save its state
                              across it.
  --param=selsched-insns-to-rename= Maximum number of instructions in the ready
                              list that are considered eligible for renaming.
  --param=selsched-max-lookahead= The maximum size of the lookahead window of
                              selective scheduling.
  --param=selsched-max-sched-times=<1,65536> Maximum number of times that an
                              insn could be scheduled.
  --param=simultaneous-prefetches= The number of prefetches that can run at the
                              same time.
  --param=sink-frequency-threshold=<0,100> Target block's relative execution
                              frequency (as a percentage) required to sink a
                              statement.
  --param=sms-dfa-history=<0,16> The number of cycles the swing modulo
                              scheduler considers when checking conflicts using
                              DFA.
  --param=sms-loop-average-count-threshold= A threshold on the average loop
                              count considered by the swing modulo scheduler.
  --param=sms-max-ii-factor=<1,16> A factor for tuning the upper bound that
                              swing modulo scheduler uses for scheduling a loop.
  --param=sms-min-sc=<1,2>    The minimum value of stage count that swing
                              modulo scheduler will generate.
  --param=sra-max-propagations= Maximum number of artificial accesses to enable
                              forward propagation that Scalar Replacement of
                              Aggregates will keep for one local variable.
  --param=sra-max-scalarization-size-Osize= Maximum size, in storage units, of
                              an aggregate which should be considered for
                              scalarization when compiling for size.
  --param=sra-max-scalarization-size-Ospeed= Maximum size, in storage units, of
                              an aggregate which should be considered for
                              scalarization when compiling for speed.
  --param=ssa-name-def-chain-limit= The maximum number of SSA_NAME assignments
                              to follow in determining a value.
  --param=ssp-buffer-size=<1,65536> The lower bound for a buffer to be
                              considered for stack smashing protection.
  --param=stack-clash-protection-guard-size=<12,30> Size of the stack guard
                              expressed as a power of two in bytes.
  --param=stack-clash-protection-probe-interval=<10,16> Interval in which to
                              probe the stack expressed as a power of two in
                              bytes.
  --param=store-merging-allow-unaligned=<0,1> Allow the store merging pass to
                              introduce unaligned stores if it is legal to do
                              so.
  --param=store-merging-max-size=<1,65536> Maximum size of a single store
                              merging region in bytes.
  --param=switch-conversion-max-branch-ratio=<1,65536> The maximum ratio
                              between array size and switch branches for a
                              switch conversion to take place.
  --param=threader-debug=     --param=threader-debug=[none|all] Enables verbose
                              dumping of the threader solver.
  --param=tm-max-aggregate-size= Size in bytes after which thread-local
                              aggregates should be instrumented with the
                              logging functions instead of save/restore pairs.
  --param=tracer-dynamic-coverage-feedback=<0,100> The percentage of function,
                              weighted by execution frequency, that must be
                              covered by trace formation. Used when profile
                              feedback is available.
  --param=tracer-dynamic-coverage=<0,100> The percentage of function, weighted
                              by execution frequency, that must be covered by
                              trace formation. Used when profile feedback is
                              not available.
  --param=tracer-max-code-growth= Maximal code growth caused by tail
                              duplication (in percent).
  --param=tracer-min-branch-probability-feedback=<0,100> Stop forward growth if
                              the probability of best edge is less than this
                              threshold (in percent). Used when profile
                              feedback is available.
  --param=tracer-min-branch-probability=<0,100> Stop forward growth if the
                              probability of best edge is less than this
                              threshold (in percent). Used when profile
                              feedback is not available.
  --param=tracer-min-branch-ratio=<0,100> Stop reverse growth if the reverse
                              probability of best edge is less than this
                              threshold (in percent).
  --param=tree-reassoc-width= Set the maximum number of instructions executed
                              in parallel in reassociated tree.  If 0, use the
                              target dependent heuristic.
  --param=tsan-distinguish-volatile=<0,1> Emit special instrumentation for
                              accesses to volatiles.
  --param=tsan-instrument-func-entry-exit=<0,1> Emit instrumentation calls to
                              __tsan_func_entry() and __tsan_func_exit().
  --param=uninit-control-dep-attempts=<1,65536> Maximum number of nested calls
                              to search for control dependencies during
                              uninitialized variable analysis.
  --param=uninlined-function-insns=<0,1000000> Instruction accounted for
                              function prologue, epilogue and other overhead.
  --param=uninlined-function-time=<0,1000000> Time accounted for function
                              prologue, epilogue and other overhead.
  --param=uninlined-thunk-insns=<0,1000000> Instruction accounted for function
                              thunk overhead.
  --param=uninlined-thunk-time=<0,1000000> Time accounted for function thunk
                              overhead.
  --param=unlikely-bb-count-fraction= The denominator n of fraction 1/n of the
                              number of profiled runs of the entire program
                              below which the execution count of a basic block
                              must be in order for the basic block to be
                              considered unlikely.
  --param=unroll-jam-max-unroll= Maximum unroll factor for the unroll-and-jam
                              transformation.
  --param=unroll-jam-min-percent=<0,100> Minimum percentage of memrefs that
                              must go away for unroll-and-jam to be considered
                              profitable.
  --param=use-after-scope-direct-emission-threshold= Use direct poisoning/
                              unpoisoning instructions for variables smaller or
                              equal to this number.
  --param=use-canonical-types=<0,1> Whether to use canonical types.
  --param=vect-epilogues-nomask=<0,1> Enable loop epilogue vectorization using
                              smaller vector size.
  --param=vect-induction-float=<0,1> Enable loop vectorization of floating
                              point inductions.
  --param=vect-inner-loop-cost-factor=<1,10000> The maximum factor which the
                              loop vectorizer applies to the cost of statements
                              in an inner loop relative to the loop being
                              vectorized.
  --param=vect-max-layout-candidates= Maximum number of possible vector layouts
                              (such as permutations) to consider when
                              optimizing to-be-vectorized code.
  --param=vect-max-peeling-for-alignment=<0,64> Maximum number of loop peels to
                              enhance alignment of data references in a loop.
  --param=vect-max-version-for-alias-checks= Bound on number of runtime checks
                              inserted by the vectorizer's loop versioning for
                              alias check.
  --param=vect-max-version-for-alignment-checks= Bound on number of runtime
                              checks inserted by the vectorizer's loop
                              versioning for alignment check.
  --param=vect-partial-vector-usage=<0,2> Controls how loop vectorizer uses
                              partial vectors.  0 means never, 1 means only for
                              loops whose need to iterate can be removed, 2
                              means for all loops.  The default value is 2.
  --param=x86-stlf-window-ninsns= Instructions number above which STFL stall
                              penalty can be compensated.
  --param=x86-stv-max-visits=<1,1000000> The maximum number of use and def
                              visits when discovering a STV chain before the
                              discovery is aborted.

The following options control compiler warning messages:
  --extra-warnings            Same as -Wextra.
  -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.
  -Wanalyzer-allocation-size  Warn about code paths in which a pointer to a
                              buffer is assigned to an incompatible type.
  -Wanalyzer-deref-before-check Warn about code paths in which a pointer is
                              checked for NULL after it has already been
                              dereferenced.
  -Wanalyzer-double-fclose    Warn about code paths in which a stdio FILE can
                              be closed more than once.
  -Wanalyzer-double-free      Warn about code paths in which a pointer can be
                              freed more than once.
  -Wanalyzer-exposure-through-output-file Warn about code paths in which
                              sensitive data is written to a file.
  -Wanalyzer-exposure-through-uninit-copy Warn about code paths in which
                              sensitive data is copied across a security
                              boundary.
  -Wanalyzer-fd-access-mode-mismatch Warn about code paths in which read on a
                              write-only file descriptor is attempted, or vice
                              versa.
  -Wanalyzer-fd-double-close  Warn about code paths in which a file descriptor
                              can be closed more than once.
  -Wanalyzer-fd-leak          Warn about code paths in which a file descriptor
                              is not closed.
  -Wanalyzer-fd-phase-mismatch Warn about code paths in which an operation is
                              attempted in the wrong phase of a file
                              descriptor's lifetime.
  -Wanalyzer-fd-type-mismatch Warn about code paths in which an operation is
                              attempted on the wrong type of file descriptor.
  -Wanalyzer-fd-use-after-close Warn about code paths in which a read or write
                              is performed on a closed file descriptor.
  -Wanalyzer-fd-use-without-check Warn about code paths in which a file
                              descriptor is used without being checked for
                              validity.
  -Wanalyzer-file-leak        Warn about code paths in which a stdio FILE is
                              not closed.
  -Wanalyzer-free-of-non-heap Warn about code paths in which a non-heap pointer
                              is freed.
  -Wanalyzer-imprecise-fp-arithmetic Warn about code paths in which floating-
                              point arithmetic is used in locations where
                              precise computation is needed.
  -Wanalyzer-infinite-recursion Warn about code paths which appear to lead to
                              infinite recursion.
  -Wanalyzer-jump-through-null Warn about code paths in which a NULL function
                              pointer is called.
  -Wanalyzer-malloc-leak      Warn about code paths in which a heap-allocated
                              pointer leaks.
  -Wanalyzer-mismatching-deallocation Warn about code paths in which the wrong
                              deallocation function is called.
  -Wanalyzer-null-argument    Warn about code paths in which NULL is passed to
                              a must-not-be-NULL function argument.
  -Wanalyzer-null-dereference Warn about code paths in which a NULL pointer is
                              dereferenced.
  -Wanalyzer-out-of-bounds    Warn about code paths in which a write or read to
                              a buffer is out-of-bounds.
  -Wanalyzer-possible-null-argument Warn about code paths in which a possibly-
                              NULL value is passed to a must-not-be-NULL
                              function argument.
  -Wanalyzer-possible-null-dereference Warn about code paths in which a
                              possibly-NULL pointer is dereferenced.
  -Wanalyzer-putenv-of-auto-var Warn about code paths in which an on-stack
                              buffer is passed to putenv.
  -Wanalyzer-shift-count-negative Warn about code paths in which a shift with
                              negative count is attempted.
  -Wanalyzer-shift-count-overflow Warn about code paths in which a shift with
                              count >= width of type is attempted.
  -Wanalyzer-stale-setjmp-buffer Warn about code paths in which a longjmp
                              rewinds to a jmp_buf saved in a stack frame that
                              has returned.
  -Wanalyzer-tainted-allocation-size Warn about code paths in which an
                              unsanitized value is used as an allocation size.
  -Wanalyzer-tainted-array-index Warn about code paths in which an unsanitized
                              value is used as an array index.
  -Wanalyzer-tainted-assertion Warn about code paths in which an 'assert()' is
                              made involving an unsanitized value.
  -Wanalyzer-tainted-divisor  Warn about code paths in which an unsanitized
                              value is used as a divisor.
  -Wanalyzer-tainted-offset   Warn about code paths in which an unsanitized
                              value is used as a pointer offset.
  -Wanalyzer-tainted-size     Warn about code paths in which an unsanitized
                              value is used as a size.
  -Wanalyzer-too-complex      Warn if the code is too complicated for the
                              analyzer to fully explore.
  -Wanalyzer-unsafe-call-within-signal-handler Warn about code paths in which
                              an async-signal-unsafe function is called from a
                              signal handler.
  -Wanalyzer-use-after-free   Warn about code paths in which a freed value is
                              used.
  -Wanalyzer-use-of-pointer-in-stale-stack-frame Warn about code paths in which
                              a pointer to a stale stack frame is used.
  -Wanalyzer-use-of-uninitialized-value Warn about code paths in which an
                              uninitialized value is used.
  -Wanalyzer-va-arg-type-mismatch Warn about code paths in which va_arg uses
                              the wrong type.
  -Wanalyzer-va-list-exhausted Warn about code paths in which va_arg is used
                              too many times on a va_list.
  -Wanalyzer-va-list-leak     Warn about code paths in which va_start or
                              va_copy is used without a corresponding va_end.
  -Wanalyzer-va-list-use-after-va-end Warn about code paths in which a va_list
                              is used after va_end.
  -Wanalyzer-write-to-const   Warn about code paths which attempt to write to a
                              const object.
  -Wanalyzer-write-to-string-literal Warn about code paths which attempt to
                              write to a string literal.
  -Warray-bounds              Same as -Warray-bounds=1 (or, in negated form,
                              -Warray-bounds=0).
  -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.
  -Wcomplain-wrong-lang       Complain when a command-line option is valid, but
                              not applicable to the current front end.
  -Wcoverage-invalid-line-number Warn in case a function ends earlier than it
                              begins due to an invalid linenum macros.
  -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                       Does nothing.  Preserved for backward
                              compatibility.
  -Wimplicit-fallthrough      Same as -Wimplicit-fallthrough=3 (or, in negated
                              form, -Wimplicit-fallthrough=0).
  -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=.
  -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.
  -Wmissing-profile           Warn in case profiles in -fprofile-use do not
                              exist.
  -Wno-frame-larger-than      Disable -Wframe-larger-than= warning.  Equivalent
                              to -Wframe-larger-than=<SIZE_MAX> or larger. 
                              Same as -Wframe-larger-than=.
  -Wno-larger-than            Disable -Wlarger-than= warning.  Equivalent to
                              -Wlarger-than=<SIZE_MAX> or larger.  Same as
                              -Wlarger-than=.
  -Wno-stack-usage            Disable Wstack-usage= warning.  Equivalent to
                              Wstack-usage=<SIZE_MAX> or larger.  Same as
                              -Wstack-usage=.
  -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.
  -Wshadow-local              Same as -Wshadow=local.
  -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.
  -Wtrivial-auto-var-init     Warn about cases where -ftrivial-auto-var-init
                              cannot initialize an auto variable.
  -Wtsan                      Warn about unsupported features in
                              ThreadSanitizer.
  -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.
  -Wuse-after-free            Warn for uses of pointers to deallocated storage.
  -Wuse-after-free=<0,3>      Warn for uses of pointers to deallocated storage.
  -Wvector-operation-performance Warn when a vector operation is compiled
                              outside the SIMD.

The following options control optimizations:
  -O<number>                  Set optimization level to <number>.
  -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.
  -Oz                         Optimize for space aggressively 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.
  -fallocation-dce            Tell DCE to remove unused C++ allocations.
  -fallow-store-data-races    Allow the compiler to introduce new data races on
                              stores.
  -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.
  -fbit-tests                 Use bit tests for sufficiently large switch
                              statements.
  -fbranch-count-reg          Replace add, compare, branch with branch on count
                              register.
  -fbranch-probabilities      Use profiling information for branch
                              probabilities.
  -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.
  -fexcess-precision=[fast|standard|16] Specify handling of excess floating-
                              point precision.
  -fexpensive-optimizations   Perform a number of minor, expensive
                              optimizations.
  -ffast-math                 This option lacks documentation.
  -ffinite-loops              Assume that loops with an exit will terminate and
                              not loop indefinitely.
  -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.
  -fharden-compares           Harden conditionals not used in branches,
                              checking reversed conditions.
  -fharden-conditional-branches Harden conditional branches by checking
                              reversed conditions.
  -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-modref                Perform interprocedural modref analysis.
  -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-strict-aliasing       Assume strict aliasing rules apply across
                              (uninlined) function boundaries.
  -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=inline-clone.
  -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.
  -fmove-loop-stores          Move stores out of loops.
  -fnon-call-exceptions       Support synchronous non-call exceptions.
  -fomit-frame-pointer        When possible do not generate stack frames.
  -fopenmp-target-simd-clone= Generate SIMD clones for functions with the
                              OpenMP declare target directive.
  -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.
  -fprofile-partial-training  Do not assume that functions never executed
                              during the train run are cold.
  -fprofile-reorder-functions Enable function reordering that improves code
                              placement.
  -freciprocal-math           Same as -fassociative-math for expressions which
                              include division.
  -free                       Turn on Redundant Extensions Elimination pass.
  -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.
  -fsemantic-interposition    Allow interposing function (or variables) by ones
                              with different semantics (or initializer)
                              respectively by dynamic linker.
  -fset-stack-executable      For nested functions on stack executable
                              permission is set.
  -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|very-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.
  -fsplit-wide-types-early    Split wide types into independent registers
                              earlier.
  -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.
  -ftoplevel-reorder          Reorder top level functions, variables, and asms.
  -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.
  -ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to
                              automatic variables.
  -funconstrained-commons     Assume common declarations may be overridden with
                              ones with a larger trailing array.
  -funreachable-traps         Trap on __builtin_unreachable instead of using it
                              for optimization.
  -funroll-all-loops          Perform loop unrolling for all loops.
  -funroll-completely-grow-size This option lacks documentation.
  -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|very-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.
  -gstatement-frontiers       Emit progressive recommended breakpoint locations.

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.
  -malign-vector-insn         Use aligned vector instruction
  -mamx-bf16                  Support AMX-BF16 built-in functions and code
                              generation.
  -mamx-complex               Support AMX-COMPLEX built-in functions and code
                              generation.
  -mamx-fp16                  Support AMX-FP16 built-in functions and code
                              generation.
  -mamx-int8                  Support AMX-INT8 built-in functions and code
                              generation.
  -mamx-tile                  Support AMX-TILE built-in functions and code
                              generation.
  -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.
  -mavx512bf16                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX512BF16 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.
  -mavx512fp16                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX512-FP16 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.
  -mavx512vp2intersect        Support AVX512VP2INTERSECT 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.
  -mavxifma                   Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, and AVXIFMA built-in functions
                              and code generation.
  -mavxneconvert              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, and AVXNECONVERT build-in
                              functions and code generation.
  -mavxvnni                   Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, and AVXVNNI built-in functions
                              and code generation.
  -mavxvnniint8               Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVXVNNIINT8 built-in
                              functions and code generation.
  -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.
  -mcmpccxadd                 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, and CMPCCXADD build-in
                              functions and code generation.
  -mconsole                   Create console application.
  -mcpu=                      Same as -mtune=.  Uses of this option are
                              diagnosed.
  -mcrc32                     Support code generation of crc32 instruction.
  -mcrtdll=                   This option lacks documentation.
  -mcx16                      Support code generation of cmpxchg16b instruction.
  -mdaz-ftz                   Set the FTZ and DAZ Flags.
  -mdirect-extern-access      Do not use GOT to access external symbols.
  -mdispatch-scheduler        Do dispatch scheduling if processor is bdver1,
                              bdver2, bdver3, bdver4 or znver1 and Haifa
                              scheduling is selected.
  -mdll                       Generate code for a DLL.
  -mdump-tune-features        This option lacks documentation.
  -menqcmd                    Support ENQCMD built-in functions and code
                              generation.
  -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=fast (or, in negated form,
                              -ffp-contract=off).  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.
  -mhard-float                Use hardware fp.
  -mharden-sls=               Generate code to mitigate against straight line
                              speculation.
  -mhle                       Support Hardware Lock Elision prefixes.
  -mhreset                    Support HRESET built-in functions and code
                              generation.
  -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-cs-prefix Add CS prefix to call and jmp to indirect thunk
                              with branch target in r8-r15 registers.
  -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=intel (or, in negated form,
                              -masm=att).  Uses of this option are diagnosed.
  -mkl                        Support KL built-in functions and code generation.
  -mlam=                      -mlam=[none|u48|u57] Instrument meta data
                              position in user data pointers.
  -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.
  -mmove-max=                 Maximum number of bits that can be moved from
                              memory to memory efficiently.
  -mmpx                       Removed in GCC 9.  This switch has no effect.
  -mms-bitfields              Use native (MS) bitfield layout.
  -mmwait                     Support MWAIT and MONITOR built-in functions and
                              code generation.
  -mmwaitx                    Support MWAITX and MONITORX built-in functions
                              and code generation.
  -mneeded                    Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property.
  -mno-align-stringops        This option lacks documentation.
  -mno-align-vector-insn      Uses unaligned over aligned vector instruction
                              memonics
  -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-fun-dllimport         Ignore dllimport for functions.
  -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.
  -mpe-aligned-commons        Use the GNU extension to the PE format for
                              aligned common data.
  -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.
  -mprefetchi                 Support PREFETCHI built-in functions and code
                              generation.
  -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.
  -mraoint                    Support RAOINT built-in functions and code
                              generation.
  -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.
  -mrelax-cmpxchg-loop        Relax cmpxchg loop for
                              atomic_fetch_{or,xor,and,nand} by adding load and
                              cmp before cmpxchg, execute pause and loop back
                              to load and compare if load value is not expected.
  -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.
  -mserialize                 Support SERIALIZE built-in functions and code
                              generation.
  -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.  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.
  -mstore-max=                Maximum number of bits that can be stored to
                              memory efficiently.
  -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.
  -mthreads                   Use Mingw-specific thread support.
  -mtls-dialect=              Use given thread-local storage dialect.
  -mtls-direct-seg-refs       Use direct references against %gs when accessing
                              tls data.
  -mtsxldtrk                  Support TSXLDTRK built-in functions and code
                              generation.
  -mtune-ctrl=                Fine grain control of tune features.
  -mtune=                     Schedule code for given CPU.
  -muintr                     Support UINTR built-in functions and code
                              generation.
  -municode                   Use unicode startup and define UNICODE macro.
  -munroll-only-small-loops   Enable conservative small loop unrolling.
  -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.
  -mwidekl                    Support WIDEKL built-in functions and code
                              generation.
  -mwin32                     Set Windows defines.
  -mwindows                   Create GUI application.
  -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 choices for mitigation against straight line speculation with -mharden-sls=:
    all indirect-jmp none return

  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 rocketlake icelake-server cascadelake tigerlake cooperlake sapphirerapids emeraldrapids alderlake raptorlake meteorlake graniterapids graniterapids-d bonnell atom silvermont slm goldmont goldmont-plus tremont sierraforest grandridge knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 x86-64-v2 x86-64-v3 x86-64-v4 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 lujiazui k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 znver3 znver4 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 sierraforest grandridge knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake rocketlake graniterapids intel lujiazui geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2 znver3 znver4

The following options are language-independent:
  --completion=               Provide bash completion for options starting with
                              provided string.
  --debug                     Same as -g.
  --dumpbase                  Same as -dumpbase.
  --dumpbase-ext              Same as -dumpbase-ext.
  --dumpdir                   Same as -dumpdir.
  --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.
  --pedantic-errors           Same as -pedantic-errors.
  --profile                   Same as -p.
  --target-help               Display target specific command line options
                              (including assembler and linker options).
  --version                   This option lacks documentation.
  -Wattributes=               Do not warn about specified attributes.
  -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.
  -dumpbase <file>            Set the file basename to be used for dumps.
  -dumpbase-ext               -dumpbase-ext .<ext>    Drop a trailing .<ext>
                              from the dump basename to name auxiliary output
                              files.
  -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.
  -fanalyzer                  Enable static analysis pass.
  -fanalyzer-call-summaries   Approximate the effect of function calls to
                              simplify analysis.
  -fanalyzer-checker=         Restrict the analyzer to run just the named
                              checker.
  -fanalyzer-feasibility      Verify that paths are feasible when emitting
                              diagnostics.
  -fanalyzer-fine-grained     Avoid combining multiple statements into one
                              exploded edge.
  -fanalyzer-show-duplicate-count Issue a note when diagnostics are
                              deduplicated.
  -fanalyzer-state-merge      Merge similar-enough states during analysis.
  -fanalyzer-state-purge      Purge unneeded state during analysis.
  -fanalyzer-suppress-followups Stop exploring an execution path after certain
                              diagnostics.
  -fanalyzer-transitivity     Enable transitivity of constraints during
                              analysis.
  -fanalyzer-undo-inlining    Try to reconstruct function calls and returns
                              after inlining.
  -fanalyzer-verbose-edges    Emit more verbose descriptions of control flow in
                              diagnostics.
  -fanalyzer-verbose-state-changes Emit more verbose descriptions of state
                              changes in diagnostics.
  -fanalyzer-verbosity=       Control which events are displayed in diagnostic
                              paths.
  -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.
  -fbranch-target-load-optimize Does nothing.  Preserved for backward
                              compatibility.
  -fbranch-target-load-optimize2 Does nothing.  Preserved for backward
                              compatibility.
  -fbtr-bb-exclusive          Does nothing.  Preserved for backward
                              compatibility.
  -fcall-saved-<register>     Mark <register> as being preserved across
                              functions.
  -fcall-used-<register>      Mark <register> as being corrupted by function
                              calls.
  -fcallgraph-info            Output callgraph information on a per-file basis.
  -fcallgraph-info=           Output callgraph information on a per-file basis
                              with decorations.
  -fcanon-prefix-map          For -f*-prefix-map= options compare canonicalized
                              pathnames rather than just strings.
  -fcf-protection             Same as -fcf-protection=full.
  -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                    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_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set
                              the debug counter limit.
  -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=always (or, in
                              negated form, -fdiagnostics-color=never).
  -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
  -fdiagnostics-column-origin=<number> Set the number of the first column.  The
                              default is 1-based as per GNU style, but some
                              utilities may expect 0-based, for example.
  -fdiagnostics-column-unit=[display|byte] Select whether column numbers are
                              output as display columns (default) or raw bytes.
  -fdiagnostics-escape-format=[unicode|bytes] Select how to escape non-
                              printable-ASCII bytes in the source for
                              diagnostics that suggest it.
  -fdiagnostics-format=[text|sarif-stderr|sarif-file|json|json-stderr|json-file] 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-path-format=  Specify how to print any control-flow path
                              associated with a diagnostic.
  -fdiagnostics-plain-output  Turn off any diagnostics features that complicate
                              the output, such as line numbers, color, and
                              warning URLs.
  -fdiagnostics-show-caret    Show the source line with a caret indicating the
                              column.
  -fdiagnostics-show-cwe      Print CWE identifiers for diagnostic messages,
                              where available.
  -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.
  -fdiagnostics-show-path-depths Show stack depths of events in paths.
  -fdiagnostics-show-rules    Print any rules associated with diagnostic
                              messages.
  -fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
  -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
  -fdump-<type>               Dump various compiler internals to a file.
  -fdump-analyzer             Dump various analyzer internals to
                              SRCFILE.analyzer.txt.
  -fdump-analyzer-callgraph   Dump analyzer-specific call graph information to
                              a SRCFILE.callgraph.dot file.
  -fdump-analyzer-exploded-graph Dump the analyzer exploded graph to a
                              SRCFILE.eg.dot file.
  -fdump-analyzer-exploded-nodes Emit diagnostics showing the location of nodes
                              in the exploded graph.
  -fdump-analyzer-exploded-nodes-2 Dump a textual representation of the
                              exploded graph to SRCFILE.eg.txt.
  -fdump-analyzer-exploded-nodes-3 Dump a textual representation of the
                              exploded graph to SRCFILE.eg-ID.txt.
  -fdump-analyzer-exploded-paths Dump a textual representation of each
                              diagnostic's exploded path to
                              SRCFILE.IDX.KIND.epath.txt.
  -fdump-analyzer-feasibility Dump various analyzer internals to
                              SRCFILE.*.fg.dot and SRCFILE.*.tg.dot.
  -fdump-analyzer-json        Dump analyzer-specific data to a
                              SRCFILE.analyzer.json.gz file.
  -fdump-analyzer-state-purge Dump state-purging information to a SRCFILE.state-
                              purge.dot file.
  -fdump-analyzer-stderr      Dump various analyzer internals to stderr.
  -fdump-analyzer-supergraph  Dump the analyzer supergraph to a
                              SRCFILE.supergraph.dot file.
  -fdump-analyzer-untracked   Emit custom warnings with internal details
                              intended for analyzer developers.
  -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-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
  -ffat-lto-objects           Output lto objects containing both the
                              intermediate language and binary output.
  -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.
  -fhelp=                     Same as --help=.
  -fident                     Process #ident directives.
  -finhibit-size-directive    Do not generate .size directives.
  -finline-limit-             Same as -finline-limit=.
  -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=filename,... Do not instrument
                              functions listed in files.
  -finstrument-functions-exclude-function-list=name,... Do not instrument
                              listed functions.
  -finstrument-functions-once Instrument function entry and exit with profiling
                              calls invoked once.
  -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.
  -flarge-source-files        Improve GCC's ability to track column numbers in
                              large source files, at the expense of slower
                              compilation.
  -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=<0,19> Use zlib/zstd compression level <number> for
                              IL.
  -flto-odr-type-merging      Does nothing.  Preserved for backward
                              compatibility.
  -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.
  -fmultiflags                Building block for specs-based multilib-aware
                              TFLAGS.
  -foffload-abi=[lp64|ilp32]  Set the ABI to use in an offload compiler.
  -foffload-options=<targets>=<options> Specify options for the offloading
                              targets.
  -fopenmp-target-simd-clone  Same as -fopenmp-target-simd-clone=any (or, in
                              negated form, -fopenmp-target-simd-clone=none).
  -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 whose name
                              does not match any of the regular expressions
                              (separated by semi-colons).
  -fprofile-filter-files=     Instrument only functions from files whose name
                              matches any of the regular expressions (separated
                              by semi-colons).
  -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-info-section      Register the profile information in the
                              .gcov_info section instead of using a constructor/
                              destructor.
  -fprofile-info-section=     Register the profile information in the specified
                              section instead of using a constructor/destructor.
  -fprofile-note=             Select the name for storing the profile note file.
  -fprofile-prefix-map=<old>=<new> Map one directory name to another in GCOV
                              coverage result.
  -fprofile-prefix-path=      Remove prefix from absolute path before mangling
                              name for -fprofile-generate= and -fprofile-use=.
  -fprofile-report            Report on consistency of profile.
  -fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of
                              reproducibility of profile gathered by -fprofile-
                              generate.
  -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.
  -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-trap             This option lacks documentation.
  -fsanitize-trap=            Use traps instead of diagnostics of undefined
                              behavior sanitizers.
  -fsanitize-undefined-trap-on-error This switch is deprecated; use -fsanitize-
                              trap= instead.
  -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.
  -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.
  -ftabstop=                  -ftabstop=<number>      Distance between tab
                              stops for column reporting.
  -ftarget-help               Same as --target-help.
  -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.
  -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-ld=mold               Use the Modern linker (MOLD) 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.
  -fwritable-relocated-rdata  Put relocated read-only data into .data section.
  -fzee                       Does nothing.  Preserved for backward
                              compatibility.
  -fzero-call-used-regs=      Clear call-used registers upon function return.
  -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.
  -gbtf                       Generate BTF debug information at default level.
  -gcodeview                  Generate debug information in CodeView format.
  -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.
  -gctf                       Generate CTF debug information at default level.
  -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.
  -gdwarf32                   Use 32-bit DWARF format when emitting DWARF debug
                              information.
  -gdwarf64                   Use 64-bit DWARF format when emitting DWARF debug
                              information.
  -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                     Does nothing.  Preserved for backward
                              compatibility.
  -gstabs+                    Does nothing.  Preserved for backward
                              compatibility.
  -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                     Does nothing.  Preserved for backward
                              compatibility.
  -gxcoff+                    Does nothing.  Preserved for backward
                              compatibility.
  -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.
  -version                    Display the compiler's version.

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|zstd}]
                          compress DWARF debug sections
		            Default: none
  --nocompress-debug-sections
                          don't compress DWARF debug sections
  -D                      produce assembler debugging messages
  --dump-config           display how the assembler is configured and then exit
  --debug-prefix-map OLD=NEW
                          map OLD to NEW in debug information
  --defsym SYM=VAL        define symbol SYM to given value
  -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-<N>            generate DWARF<N> debugging information. 2 <= <N> <= 5
  --gdwarf-cie-version=<N> generate version 1, 3 or 4 DWARF CIEs
  --gdwarf-sections       generate per-function section names for DWARF line information
  --gcodeview             generate CodeView debugging information
  --hash-size=<N>         ignored
  --help                  show all assembler options
  --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)
  --multibyte-handling=<method>
                          what to do with multibyte characters encountered in the input
  -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 ignored
  --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
  -n                      do not optimize code alignment
  -O{012s}                attempt some code optimizations
  -q                      quieten some warnings
  --32/--64               generate 32bit/64bit object
  --divide                ignored
  -march=CPU[,+EXTENSION...]
                          generate code for CPU and EXTENSION, CPU is one of:
                           default, push, pop, generic32, generic64, i386, i486,
                           i586, i686, pentium, pentiumpro, pentiumii,
                           pentiumiii, pentium4, prescott, nocona, core, core2,
                           corei7, iamcu, k6, k6_2, athlon, opteron, k8,
                           amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
                           znver2, znver3, znver4, btver1, btver2
                          EXTENSION is combination of (possibly "no"-prefixed):
                           8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2,
                           sse3, sse4a, ssse3, sse4.1, sse4.2, sse4, avx, avx2,
                           avx512f, avx512cd, avx512er, avx512pf, avx512dq,
                           avx512bw, avx512vl, monitor, vmx, vmfunc, smx, xsave,
                           xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase,
                           rdrnd, f16c, bmi2, fma, fma4, xop, lwp, movbe, cx16,
                           lahf_sahf, ept, lzcnt, popcnt, hle, rtm, tsx,
                           invpcid, clflush, nop, syscall, rdtscp, 3dnow,
                           3dnowa, padlock, svme, 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, avx_vnni, clzero, mwaitx,
                           ospke, rdpid, ptwrite, ibt, shstk, gfni, vaes,
                           vpclmulqdq, wbnoinvd, pconfig, waitpkg, cldemote,
                           amx_int8, amx_bf16, amx_fp16, amx_complex, amx_tile,
                           movdiri, movdir64b, avx512_bf16, avx512_vp2intersect,
                           tdx, enqcmd, serialize, rdpru, mcommit, sev_es,
                           tsxldtrk, kl, widekl, uintr, hreset, avx512_fp16,
                           prefetchi, avx_ifma, avx_vnni_int8, cmpccxadd,
                           wrmsrns, msrlist, avx_ne_convert, rao_int, rmpquery,
                           fred, lkgs, no87
  -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, iamcu, k6, k6_2, athlon, opteron, k8,
                           amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
                           znver2, znver3, znver4, btver1, btver2
  -msse2avx               encode SSE instructions with VEX prefix
  -muse-unaligned-vector-move
                          encode aligned vector move as unaligned vector move
  -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
  -mbig-obj               generate big object files
  -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
  -mlfence-after-load=[no|yes] (default: no)
                          generate lfence after load
  -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)
                          generate lfence before indirect near branch
  -mlfence-before-ret=[none|or|not|shl|yes] (default: none)
                          generate lfence before ret
  -mamd64                 accept only AMD64 ISA [default]
  -mintel64               accept only Intel64 ISA

Report bugs to <https://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: <https://github.com/msys2/MINGW-packages/issues>

Usage: C:\GNUCOBOL-X64-VBISAM\bin/ld.exe [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
  --dependency-file FILE      Write dependency file
  --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
  --enable-non-contiguous-regions
                              Enable support of non-contiguous memory regions
  --enable-non-contiguous-regions-warnings
                              Enable warnings when --enable-non-contiguous-regions may cause unexpected behaviour
  --disable-linker-version    Disable the LINKER_VERSION linker script directive
  --enable-linker-version     Enable the LINKER_VERSION linker script directive
  -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)
  --remap-inputs-file FILE    Provide a FILE containing input remapings
  --remap-inputs PATTERN=FILE Remap input files matching PATTERN to FILE
  -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
  -Bno-symbolic               Don't bind global references locally
  -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/DIR               Write a linker map to FILE or DIR/<outputname>.map
  --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
  -w, --no-warnings           Do not display any warning or error messages
  --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
  --error-handling-script SCRIPT
                              Provide a script to help with undefined symbol errors
  --undefined-version         Allow undefined version
  --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
  --max-cache-size=SIZE       Set the maximum cache size to SIZE bytes
  --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
  -no-pie                     Create a position dependent executable (default)
  --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
  --export-dynamic-symbol SYMBOL
                              Export the specified symbol
  --export-dynamic-symbol-list FILE
                              Read export dynamic symbol list
  --warn-common               Warn about duplicate common symbols
  --warn-constructors         Warn if global constructors/destructors are seen
  --warn-execstack            Warn when creating an executable stack
  --no-warn-execstack         Do not warn when creating an executable stack
  --warn-rwx-segments         Warn when creating executable segments
  --no-warn-rwx-segments      Do not warn when creating executable segments
  --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-textrel              Warn if output 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
  --print-map-locals          Show local symbols in map file output
  --no-print-map-locals       Do not show local symbols in map file output (default)
  --ctf-variables             Emit names and types of static variables in CTF
  --no-ctf-variables          Do not emit names and types of static variables in CTF
  --ctf-share-types=<method>  How to share CTF types between translation units.
                                <method> is: share-unconflicted (default),
                                             share-duplicated
  @FILE                       Read options from FILE
C:\GNUCOBOL-X64-VBISAM\bin/ld.exe: supported targets: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 pe-i386 pei-i386 elf32-i386 elf32-iamcu pdb elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
C:\GNUCOBOL-X64-VBISAM\bin/ld.exe: supported emulations: i386pep i386pe
C:\GNUCOBOL-X64-VBISAM\bin/ld.exe: emulation specific options:
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
  --[disable-]high-entropy-va        Image is compatible with 64-bit address space
                                       layout randomization (ASLR)
  --[disable-]dynamicbase            Image base address may be relocated using
                                       address space layout randomization (ASLR)
  --enable-reloc-section             Create the base relocation table
  --disable-reloc-section            Do not create the base relocation table
  --[disable-]forceinteg             Code integrity checks are enforced
  --[disable-]nxcompat               Image is compatible with data execution
                                       prevention
  --[disable-]no-isolation           Image understands isolation but do not
                                       isolate the image
  --[disable-]no-seh                 Image does not use SEH; no SE handler may
                                       be called in this image
  --[disable-]no-bind                Do not bind this image
  --[disable-]wdmdriver              Driver uses the WDM model
  --[disable-]tsaware                Image is Terminal Server aware
  --build-id[=STYLE]                 Generate build ID
  --default-image-base-low           Default image bases under 4GB
  --default-image-base-high          Default image bases over  4GB
  --pdb=[FILENAME]                   Generate PDB file
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
  --[disable-]dynamicbase            Image base address may be relocated using
                                       address space layout randomization (ASLR)
  --enable-reloc-section             Create the base relocation table
  --disable-reloc-section            Do not create the base relocation table
  --[disable-]forceinteg             Code integrity checks are enforced
  --[disable-]nxcompat               Image is compatible with data execution
                                       prevention
  --[disable-]no-isolation           Image understands isolation but do not
                                       isolate the image
  --[disable-]no-seh                 Image does not use SEH. No SE handler may
                                       be called in this image
  --[disable-]no-bind                Do not bind this image
  --[disable-]wdmdriver              Driver uses the WDM model
  --[disable-]tsaware                Image is Terminal Server aware
  --build-id[=STYLE]                 Generate build ID
  --pdb=[FILENAME]                   Generate PDB file

Report bugs to <https://sourceware.org/bugzilla/>

For bug reporting instructions, please see:
<https://github.com/msys2/MINGW-packages/issues>
