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

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

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

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

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

The following options are specific to just the language C:
  -fgimple                    Enable parsing GIMPLE.
  -lang-asm                   This option lacks documentation.

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

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

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

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

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

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

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

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

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

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

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

The following options are target specific:
  -m128bit-long-double        sizeof(long double) is 16.
  -m16                        Generate 16bit i386 code.
  -m32                        Generate 32bit i386 code.
  -m3dnow                     Support 3DNow! built-in functions.
  -m3dnowa                    Support Athlon 3Dnow! built-in functions.
  -m64                        Generate 64bit x86-64 code.
  -m80387                     Use hardware fp.
  -m8bit-idiv                 Expand 32bit/64bit integer divide into 8bit
                              unsigned integer divide with run-time check.
  -m96bit-long-double         sizeof(long double) is 12.
  -mabi=                      Generate code that conforms to the given ABI.
  -mabm                       Support code generation of Advanced Bit
                              Manipulation (ABM) instructions.
  -maccumulate-outgoing-args  Reserve space for outgoing arguments in the
                              function prologue.
  -maddress-mode=             Use given address mode.
  -madx                       Support flag-preserving add-carry instructions.
  -maes                       Support AES built-in functions and code
                              generation.
  -malign-data=               Use the given data alignment.
  -malign-double              Align some doubles on dword boundary.
  -malign-functions=          Function starts are aligned to this power of 2.
  -malign-jumps=              Jump targets are aligned to this power of 2.
  -malign-loops=              Loop code aligned to this power of 2.
  -malign-stringops           Align destination of the string operations.
  -march=                     Generate code for given CPU.
  -masm=                      Use given assembler dialect.
  -mavx                       Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2 and AVX built-in functions and code
                              generation.
  -mavx2                      Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX and AVX2 built-in functions and code
                              generation.
  -mavx256-split-unaligned-load Split 32-byte AVX unaligned load.
  -mavx256-split-unaligned-store Split 32-byte AVX unaligned store.
  -mavx5124fmaps              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-
                              in functions and code generation.
  -mavx5124vnniw              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-
                              in functions and code generation.
  -mavx512bitalg              Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-
                              in functions and code generation.
  -mavx512bw                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-
                              in functions and code generation.
  -mavx512cd                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-
                              in functions and code generation.
  -mavx512dq                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-
                              in functions and code generation.
  -mavx512er                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-
                              in functions and code generation.
  -mavx512f                   Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F built-in functions
                              and code generation.
  -mavx512ifma                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA
                              built-in functions and code generation.
  -mavx512pf                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-
                              in functions and code generation.
  -mavx512vbmi                Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI
                              built-in functions and code generation.
  -mavx512vbmi2               Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-
                              in functions and code generation.
  -mavx512vl                  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-
                              in functions and code generation.
  -mavx512vnni                Support AVX512VNNI built-in functions and code
                              generation.
  -mavx512vpopcntdq           Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ
                              built-in functions and code generation.
  -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.
  -mconsole                   Create console application.
  -mcpu=                      Same as -mtune=.  Use the latter option instead. 
                              Uses of this option are diagnosed.
  -mcrc32                     Support code generation of crc32 instruction.
  -mcx16                      Support code generation of cmpxchg16b instruction.
  -mdispatch-scheduler        Do dispatch scheduling if processor is bdver1,
                              bdver2, bdver3, bdver4 or znver1 and Haifa
                              scheduling is selected.
  -mdll                       Generate code for a DLL.
  -mdump-tune-features        This option lacks documentation.
  -mf16c                      Support F16C built-in functions and code
                              generation.
  -mfancy-math-387            Generate sin, cos, sqrt for FPU.
  -mfentry                    Emit profiling counter call at function entry
                              before prologue.
  -mfentry-name=              Set name of __fentry__ symbol called at function
                              entry.
  -mfentry-section=           Set name of section to record mrecord-mcount
                              calls.
  -mfma                       Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
                              SSE4.2, AVX and FMA built-in functions and code
                              generation.
  -mfma4                      Support FMA4 built-in functions and code
                              generation.
  -mforce-drap                Always use Dynamic Realigned Argument Pointer
                              (DRAP) to realign stack.
  -mforce-indirect-call       Make all function calls indirect.
  -mfp-ret-in-387             Return values of functions in FPU registers.
  -mfpmath=                   Generate floating point mathematics using given
                              instruction set.
  -mfsgsbase                  Support FSGSBASE built-in functions and code
                              generation.
  -mfunction-return=          Convert function return to call and return thunk.
  -mfused-madd                Same as -ffp-contract=.  Use the latter option
                              instead.  Uses of this option are diagnosed.
  -mfxsr                      Support FXSAVE and FXRSTOR instructions.
  -mgeneral-regs-only         Generate code which uses only the general
                              registers.
  -mgfni                      Support GFNI built-in functions and code
                              generation.
  -mhard-float                Use hardware fp.
  -mhle                       Support Hardware Lock Elision prefixes.
  -miamcu                     Generate code that conforms to Intel MCU psABI.
  -mieee-fp                   Use IEEE math for fp comparisons.
  -mincoming-stack-boundary=  Assume incoming stack aligned to this power of 2.
  -mindirect-branch-register  Force indirect call and jump via register.
  -mindirect-branch=          Convert indirect call and jump to call and return
                              thunks.
  -minline-all-stringops      Inline all known string operations.
  -minline-stringops-dynamically Inline memset/memcpy string operations, but
                              perform inline version only for small blocks.
  -minstrument-return=        Instrument function exit in instrumented
                              functions with __fentry__.
  -mintel-syntax              Same as -masm=.  Use the latter option instead. 
                              Uses of this option are diagnosed.
  -mlarge-data-threshold=<number> Data greater than given threshold will go
                              into .ldata section in x86-64 medium model.
  -mlong-double-128           Use 128-bit long double.
  -mlong-double-64            Use 64-bit long double.
  -mlong-double-80            Use 80-bit long double.
  -mlwp                       Support LWP built-in functions and code
                              generation.
  -mlzcnt                     Support LZCNT built-in function and code
                              generation.
  -mmanual-endbr              Insert ENDBR instruction at function entry only
                              via cf_check attribute for CET instrumentation.
  -mmemcpy-strategy=          Specify memcpy expansion strategy when expected
                              size is known.
  -mmemset-strategy=          Specify memset expansion strategy when expected
                              size is known.
  -mmitigate-rop              This option lacks documentation.
  -mmmx                       Support MMX built-in functions.
  -mmovbe                     Support code generation of movbe instruction.
  -mmovdir64b                 Support MOVDIR64B built-in functions and code
                              generation.
  -mmovdiri                   Support MOVDIRI built-in functions and code
                              generation.
  -mmpx                       Deprecated in GCC 9.  This switch has no effect.
  -mms-bitfields              Use native (MS) bitfield layout.
  -mmwaitx                    Support MWAITX and MONITORX built-in functions
                              and code generation.
  -mno-align-stringops        This option lacks documentation.
  -mno-default                Clear all tune features.
  -mno-fancy-math-387         This option lacks documentation.
  -mno-push-args              This option lacks documentation.
  -mno-red-zone               This option lacks documentation.
  -mno-sse4                   Do not support SSE4.1 and SSE4.2 built-in
                              functions and code generation.
  -mnop-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.
  -mprefetchwt1               Support PREFETCHWT1 built-in functions and code
                              generation.
  -mprfchw                    Support PREFETCHW instruction.
  -mptwrite                   Support PTWRITE built-in functions and code
                              generation.
  -mpush-args                 Use push instructions to save outgoing arguments.
  -mrdpid                     Support RDPID built-in functions and code
                              generation.
  -mrdrnd                     Support RDRND built-in functions and code
                              generation.
  -mrdseed                    Support RDSEED instruction.
  -mrecip                     Generate reciprocals instead of divss and sqrtss.
  -mrecip=                    Control generation of reciprocal estimates.
  -mrecord-mcount             Generate __mcount_loc section with all mcount or
                              __fentry__ calls.
  -mrecord-return             Generate a __return_loc section pointing to all
                              return instrumentation code.
  -mred-zone                  Use red-zone in the x86-64 code.
  -mregparm=                  Number of registers used to pass integer
                              arguments.
  -mrtd                       Alternate calling convention.
  -mrtm                       Support RTM built-in functions and code
                              generation.
  -msahf                      Support code generation of sahf instruction in
                              64bit x86-64 code.
  -msgx                       Support SGX built-in functions and code
                              generation.
  -msha                       Support SHA1 and SHA256 built-in functions and
                              code generation.
  -mshstk                     Enable shadow stack built-in functions from
                              Control-flow Enforcement Technology (CET).
  -mskip-rax-setup            Skip setting up RAX register when passing
                              variable arguments.
  -msoft-float                Do not use hardware fp.
  -msse                       Support MMX and SSE built-in functions and code
                              generation.
  -msse2                      Support MMX, SSE and SSE2 built-in functions and
                              code generation.
  -msse2avx                   Encode SSE instructions with VEX prefix.
  -msse3                      Support MMX, SSE, SSE2 and SSE3 built-in
                              functions and code generation.
  -msse4                      Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and
                              SSE4.2 built-in functions and code generation.
  -msse4.1                    Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1
                              built-in functions and code generation.
  -msse4.2                    Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and
                              SSE4.2 built-in functions and code generation.
  -msse4a                     Support MMX, SSE, SSE2, SSE3 and SSE4A built-in
                              functions and code generation.
  -msse5                      Same as -mavx.  Use the latter option instead. 
                              Uses of this option are diagnosed.
  -msseregparm                Use SSE register passing conventions for SF and
                              DF mode.
  -mssse3                     Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in
                              functions and code generation.
  -mstack-arg-probe           Enable stack probing.
  -mstack-protector-guard-offset= Use the given offset for addressing the stack-
                              protector guard.
  -mstack-protector-guard-reg= Use the given base register for addressing the
                              stack-protector guard.
  -mstack-protector-guard-symbol= Use the given symbol for addressing the stack-
                              protector guard.
  -mstack-protector-guard=    Use given stack-protector guard.
  -mstackrealign              Realign stack in prologue.
  -mstringop-strategy=        Chose strategy to generate stringop using.
  -mstv                       Disable Scalar to Vector optimization pass
                              transforming 64-bit integer computations into a
                              vector ones.
  -mtbm                       Support TBM built-in functions and code
                              generation.
  -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.
  -mtune-ctrl=                Fine grain control of tune features.
  -mtune=                     Schedule code for given CPU.
  -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.
  -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 indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
    keep thunk thunk-extern thunk-inline

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

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

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

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

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

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

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

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

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

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

The following options are language-independent:
  --completion=               Provide bash completion for options starting with
                              provided string.
  --debug                     Same as -g.  Use the latter option instead.
  --dumpbase                  Same as -dumpbase.  Use the latter option instead.
  --dumpdir                   Same as -dumpdir.  Use the latter option instead.
  --help                      Display this information.
  --help=<class>              Display descriptions of a specific class of
                              options.  <class> is one or more of optimizers,
                              target, warnings, undocumented, params.
  --optimize                  Same as -O.  Use the latter option instead.
  --param <param>=<value>     Set parameter <param> to value.  See below for a
                              complete list of parameters.
  --param=                    Same as --param.  Use the latter option instead.
  --pedantic-errors           Same as -pedantic-errors.  Use the latter option
                              instead.
  --profile                   Same as -p.  Use the latter option instead.
  --target-help               Alias for --help=target.
  --version                   This option lacks documentation.
  -Werror=                    Treat specified warning as error.
  -Wfatal-errors              Exit on the first error occurred.
  -aux-info <file>            Emit declaration information into <file>.
  -aux-info=                  Same as -aux-info.  Use the latter option instead.
  -auxbase                    This option lacks documentation.
  -auxbase-strip              This option lacks documentation.
  -dumpbase <file>            Set the file basename to be used for dumps.
  -dumpdir <dir>              Set the directory name to be used for dumps.
  -fPIC                       Generate position-independent code if possible
                              (large mode).
  -fPIE                       Generate position-independent code for
                              executables if possible (large mode).
  -fabi-version=              The version of the C++ ABI in use.
  -fargument-alias            Does nothing. Preserved for backward
                              compatibility.
  -fargument-noalias          Does nothing. Preserved for backward
                              compatibility.
  -fargument-noalias-anything Does nothing. Preserved for backward
                              compatibility.
  -fargument-noalias-global   Does nothing. Preserved for backward
                              compatibility.
  -fasan-shadow-offset=<number> Use custom shadow memory offset.
  -fauto-profile              Use sample profile information for call graph
                              node weights. The default profile file is
                              fbdata.afdo in 'pwd'.
  -fauto-profile=             Use sample profile information for call graph
                              node weights. The profile file is specified in
                              the argument.
  -fcall-saved-<register>     Mark <register> as being preserved across
                              functions.
  -fcall-used-<register>      Mark <register> as being corrupted by function
                              calls.
  -fcf-protection             Same as -fcf-protection=.  Use the latter option
                              instead.
  -fcf-protection=[full|branch|return|none] Instrument functions with checks to
                              verify jump/call/return control-flow transfer
                              instructions have valid targets.
  -fcheck-data-deps           This switch is deprecated; do not use.
  -fcheck-new                 Check the return value of new in C++.
  -fchecking                  Perform internal consistency checkings.
  -fchecking=                 Perform internal consistency checkings.
  -fcommon                    Do not put uninitialized globals in the common
                              section.
  -fcompare-debug-second      Run only the second compilation of -fcompare-
                              debug.
  -fcompare-debug[=<opts>]    Compile with and without e.g. -gtoggle, and
                              compare the final-insns dump.
  -fcse-skip-blocks           Does nothing.  Preserved for backward
                              compatibility.
  -fdata-sections             Place data items into their own section.
  -fdbg-cnt-list              List all available debugging counters with their
                              limits and counts.
  -fdbg-cnt=<counter>[:<lower_limit>]:<upper_limit>[,<counter>:...] Set the
                              debug counter limit.
  -fdebug-prefix-map=         -fdebug-prefix-map=<old>=<new> Map one directory
                              name to another in debug information.
  -fdebug-types-section       Output .debug_types section when using DWARF v4
                              debuginfo.
  -fdevirtualize-at-ltrans    Stream extra data to support more aggressive
                              devirtualization in LTO local transformation mode.
  -fdiagnostics-color         Same as -fdiagnostics-color=.  Use the latter
                              option instead.
  -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
  -fdiagnostics-format=       -fdiagnostics-format=[text|json] Select output
                              format.
  -fdiagnostics-generate-patch Print fix-it hints to stderr in unified diff
                              format.
  -fdiagnostics-minimum-margin-width= Set minimum width of left margin of
                              source code when showing source.
  -fdiagnostics-parseable-fixits Print fix-it hints in machine-readable form.
  -fdiagnostics-show-caret    Show the source line with a caret indicating the
                              column.
  -fdiagnostics-show-labels   Show labels annotating ranges of source code when
                              showing source.
  -fdiagnostics-show-line-numbers Show line numbers in the left margin when
                              showing source.
  -fdiagnostics-show-location=[once|every-line] How often to emit source
                              location at the beginning of line-wrapped
                              diagnostics.
  -fdiagnostics-show-option   Amend appropriate diagnostic messages with the
                              command line option that controls them.
  -fdisable-                  -fdisable-[tree|rtl|ipa]-<pass>=range1+range2
                              disables an optimization pass.
  -fdump-<type>               Dump various compiler internals to a file.
  -fdump-final-insns=filename Dump to filename the insns at the end of
                              translation.
  -fdump-go-spec=filename     Write all declarations to file as Go code.
  -fdump-internal-locations   Dump detailed information on GCC's internal
                              representation of source code locations.
  -fdump-noaddr               Suppress output of addresses in debugging dumps.
  -fdump-passes               Dump optimization passes.
  -fdump-unnumbered           Suppress output of instruction numbers, line
                              number notes and addresses in debugging dumps.
  -fdump-unnumbered-links     Suppress output of previous and next insn numbers
                              in debugging dumps.
  -fdwarf2-cfi-asm            Enable CFI tables via GAS assembler directives.
  -feliminate-dwarf2-dups     Does nothing.  Preserved for backward
                              compatibility.
  -feliminate-unused-debug-symbols Perform unused symbol elimination in debug
                              info.
  -feliminate-unused-debug-types Perform unused type elimination in debug info.
  -femit-class-debug-always   Do not suppress C++ class debug information.
  -fenable-                   -fenable-[tree|rtl|ipa]-<pass>=range1+range2
                              enables an optimization pass.
  -fexcess-precision=[fast|standard] Specify handling of excess floating-point
                              precision.
  -ffat-lto-objects           Output lto objects containing both the
                              intermediate language and binary output.
  -ffile-prefix-map=          -ffile-prefix-map=<old>=<new> Map one directory
                              name to another in compilation result.
  -ffixed-<register>          Mark <register> as being unavailable to the
                              compiler.
  -fforce-addr                Does nothing.  Preserved for backward
                              compatibility.
  -ffunction-sections         Place each function into its own section.
  -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings
                              and standard DWARF emitted in the debug
                              information.
  -fgnu-tm                    Enable support for GNU transactional memory.
  -fgnu-unique                Use STB_GNU_UNIQUE if supported by the assembler.
  -fhelp                      Same as --help.  Use the latter option instead.
  -fhelp=                     Same as --help=.  Use the latter option instead.
  -fident                     Process #ident directives.
  -finhibit-size-directive    Do not generate .size directives.
  -finline-limit-             Same as -finline-limit=.  Use the latter option
                              instead.
  -finline-limit=<number>     Limit the size of inlined functions to <number>.
  -finstrument-functions      Instrument function entry and exit with profiling
                              calls.
  -finstrument-functions-exclude-file-list= -finstrument-functions-exclude-file-
                              list=filename,...  Do not instrument functions
                              listed in files.
  -finstrument-functions-exclude-function-list= -finstrument-functions-exclude-
                              function-list=name,...  Do not instrument listed
                              functions.
  -fipa-cp-alignment          Does nothing.  Preserved for backward
                              compatibility.
  -fipa-matrix-reorg          Does nothing. Preserved for backward
                              compatibility.
  -fipa-struct-reorg          Does nothing. Preserved for backward
                              compatibility.
  -fira-verbose=<number>      Control IRA's level of diagnostic messages.
  -fkeep-inline-functions     Generate code for functions even if they are
                              fully inlined.
  -fkeep-static-consts        Emit static const variables even if they are not
                              used.
  -fkeep-static-functions     Generate code for static functions even if they
                              are never called.
  -fleading-underscore        Give external symbols a leading underscore.
  -floop-block                Enable loop nest transforms.  Same as -floop-nest-
                              optimize.  Same as -floop-nest-optimize.
  -floop-flatten              Does nothing. Preserved for backward
                              compatibility.
  -floop-optimize             Does nothing.  Preserved for backward
                              compatibility.
  -floop-strip-mine           Enable loop nest transforms.  Same as -floop-nest-
                              optimize.  Same as -floop-nest-optimize.
  -flto                       Enable link-time optimization.
  -flto-compression-level=<number>	Use  Use zlib compression level <number> for
                              IL.
  -flto-odr-type-merging      Merge C++ types using One Definition Rule.
  -flto-partition=            Specify the algorithm to partition symbols and
                              vars at linktime.
  -flto-report                Report various link-time optimization statistics.
  -flto-report-wpa            Report various link-time optimization statistics
                              for WPA only.
  -flto=                      Link-time optimization with number of parallel
                              jobs or jobserver.
  -fmax-errors=<number>       Maximum number of errors to report.
  -fmem-report                Report on permanent memory allocation.
  -fmem-report-wpa            Report on permanent memory allocation in WPA only.
  -fmerge-all-constants       Attempt to merge identical constants and constant
                              variables.
  -fmerge-constants           Attempt to merge identical constants across
                              compilation units.
  -fmerge-debug-strings       Attempt to merge identical debug strings across
                              compilation units.
  -fmessage-length=<number>   Limit diagnostics to <number> characters per
                              line.  0 suppresses line-wrapping.
  -foffload-abi=              -foffload-abi=[lp64|ilp32]     Set the ABI to use
                              in an offload compiler.
  -foffload=                  -foffload=<targets>=<options>  Specify offloading
                              targets and options for them.
  -fopt-info[-<type>=filename] Dump compiler optimization details.
  -foptimize-register-move    Does nothing. Preserved for backward
                              compatibility.
  -fpcc-struct-return         Return small aggregates in memory, not registers.
  -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of
                              FLT_EVAL_METHOD are permitted.
  -fpic                       Generate position-independent code if possible
                              (small mode).
  -fpie                       Generate position-independent code for
                              executables if possible (small mode).
  -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin
                              <name>.
  -fplugin=                   Specify a plugin to load.
  -fpost-ipa-mem-report       Report on memory allocation before
                              interprocedural optimization.
  -fpre-ipa-mem-report        Report on memory allocation before
                              interprocedural optimization.
  -fprofile                   Enable basic program profiling code.
  -fprofile-abs-path          Generate absolute source path names for gcov.
  -fprofile-arcs              Insert arc-based program profiling code.
  -fprofile-correction        Enable correction of flow inconsistent profile
                              data input.
  -fprofile-dir=              Set the top-level directory for storing the
                              profile data. The default is 'pwd'.
  -fprofile-exclude-files=    Instrument only functions from files where names
                              do not match all the regular expressions
                              (separated by a semi-colon).
  -fprofile-filter-files=     Instrument only functions from files where names
                              match any regular expression (separated by a semi-
                              colon).
  -fprofile-generate          Enable common options for generating profile info
                              for profile feedback directed optimizations.
  -fprofile-generate=         Enable common options for generating profile info
                              for profile feedback directed optimizations, and
                              set -fprofile-dir=.
  -fprofile-reorder-functions Enable function reordering that improves code
                              placement.
  -fprofile-report            Report on consistency of profile.
  -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
  -fprofile-use               Enable common options for performing profile
                              feedback directed optimizations.
  -fprofile-use=              Enable common options for performing profile
                              feedback directed optimizations, and set
                              -fprofile-dir=.
  -fprofile-values            Insert code to profile values of expressions.
  -frandom-seed               This option lacks documentation.
  -frandom-seed=<string>      Make compile reproducible using <string>.
  -frecord-gcc-switches       Record gcc command line switches in the object
                              file.
  -free                       Turn on Redundant Extensions Elimination pass.
  -fregmove                   Does nothing. Preserved for backward
                              compatibility.
  -freport-bug                Collect and dump debug information into temporary
                              file if ICE in C/C++ compiler occurred.
  -frerun-loop-opt            Does nothing.  Preserved for backward
                              compatibility.
  -fsanitize-address-use-after-scope This option lacks documentation.
  -fsanitize-coverage=        Select type of coverage sanitization.
  -fsanitize-recover          This switch is deprecated; use -fsanitize-
                              recover= instead.
  -fsanitize-recover=         After diagnosing undefined behavior attempt to
                              continue execution.
  -fsanitize-sections=<sec1,sec2,...> Sanitize global variables in user-defined
                              sections.
  -fsanitize-undefined-trap-on-error Use trap instead of a library function for
                              undefined behavior sanitization.
  -fsanitize=                 Select what to sanitize.
  -fsched-verbose=<number>    Set the verbosity level of the scheduler.
  -fsched2-use-traces         Does nothing.  Preserved for backward
                              compatibility.
  -fsee                       Does nothing.  Preserved for backward
                              compatibility.
  -fself-test=                Run self-tests, using the given path to locate
                              test files.
  -fsemantic-interposition    Allow interposing function (or variables) by ones
                              with different semantics (or initializer)
                              respectively by dynamic linker.
  -fshow-column               Show column numbers in diagnostics, when
                              available.  Default on.
  -fsplit-stack               Generate discontiguous stack frames.
  -fstack-check               Insert stack checking code into the program. 
                              Same as -fstack-check=specific.  Same as -fstack-
                              check=.
  -fstack-limit               This option lacks documentation.
  -fstack-limit-register=<register> Trap if the stack goes past <register>.
  -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
  -fstack-usage               Output stack usage information on a per-function
                              basis.
  -fstrength-reduce           Does nothing.  Preserved for backward
                              compatibility.
  -fstrict-overflow           Treat signed overflow as undefined.  Negated as
                              -fwrapv -fwrapv-pointer.
  -fsync-libcalls             Implement __atomic operations via libcalls to
                              legacy __sync functions.
  -fsyntax-only               Check for syntax errors, then stop.
  -ftarget-help               Same as --target-help.  Use the latter option
                              instead.
  -ftest-coverage             Create data files needed by "gcov".
  -ftime-report               Report the time taken by each compiler pass.
  -ftime-report-details       Record times taken by sub-phases separately.
  -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the
                              default thread-local storage code generation
                              model.
  -ftoplevel-reorder          Reorder top level functions, variables, and asms.
  -ftrampolines               For targets that normally need trampolines for
                              nested functions, always generate them instead of
                              using descriptors.
  -ftree-coalesce-inlined-vars Does nothing.  Preserved for backward
                              compatibility.
  -ftree-copyrename           Does nothing.  Preserved for backward
                              compatibility.
  -ftree-loop-if-convert-stores Does nothing. Preserved for backward
                              compatibility.
  -ftree-loop-linear          Enable loop nest transforms.  Same as -floop-nest-
                              optimize.  Same as -floop-nest-optimize.
  -ftree-salias               Does nothing.  Preserved for backward
                              compatibility.
  -ftree-store-ccp            Does nothing.  Preserved for backward
                              compatibility.
  -ftree-store-copy-prop      Does nothing.  Preserved for backward
                              compatibility.
  -ftree-vect-loop-version    Does nothing. Preserved for backward
                              compatibility.
  -ftree-vectorizer-verbose=  Does nothing.  Preserved for backward
                              compatibility.
  -funit-at-a-time            Compile whole compilation unit at a time.
  -funsafe-loop-optimizations Does nothing.  Preserved for backward
                              compatibility.
  -fuse-ld=bfd                Use the bfd linker instead of the default linker.
  -fuse-ld=gold               Use the gold linker instead of the default linker.
  -fuse-ld=lld                Use the lld LLVM linker instead of the default
                              linker.
  -fuse-linker-plugin         This option lacks documentation.
  -fvect-cost-model           Enables the dynamic vectorizer cost model. 
                              Preserved for backward compatibility.  Same as
                              -fvect-cost-model=.
  -fverbose-asm               Add extra commentary to assembler output.
  -fversion                   This option lacks documentation.
  -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-initialized-in-bss   Put zero initialized data in the bss section.
  -g                          Generate debug information in default format.
  -gas-loc-support            Assume assembler support for (DWARF2+) .loc
                              directives.
  -gas-locview-support        Assume assembler support for view in (DWARF2+)
                              .loc directives.
  -gcoff                      Does nothing.  Preserved for backward
                              compatibility.
  -gcoff1                     Does nothing.  Preserved for backward
                              compatibility.
  -gcoff2                     Does nothing.  Preserved for backward
                              compatibility.
  -gcoff3                     Does nothing.  Preserved for backward
                              compatibility.
  -gcolumn-info               Record DW_AT_decl_column and DW_AT_call_column in
                              DWARF.
  -gdescribe-dies             Add description attributes to some DWARF DIEs
                              that have no name attribute.
  -gdwarf                     Generate debug information in default version of
                              DWARF format.
  -gdwarf-                    Generate debug information in DWARF v2 (or later)
                              format.
  -ggdb                       Generate debug information in default extended
                              format.
  -ggnu-pubnames              Generate DWARF pubnames and pubtypes sections
                              with GNU extensions.
  -ginline-points             Generate extended entry point information for
                              inlined functions.
  -ginternal-reset-location-views Compute locview reset points based on insn
                              length estimates.
  -gno-pubnames               Don't generate DWARF pubnames and pubtypes
                              sections.
  -gpubnames                  Generate DWARF pubnames and pubtypes sections.
  -grecord-gcc-switches       Record gcc command line switches in DWARF
                              DW_AT_producer.
  -gsplit-dwarf               Generate debug information in separate .dwo files.
  -gstabs                     Generate debug information in STABS format.
  -gstabs+                    Generate debug information in extended STABS
                              format.
  -gstatement-frontiers       Emit progressive recommended breakpoint locations.
  -gstrict-dwarf              Don't emit DWARF additions beyond selected
                              version.
  -gtoggle                    Toggle debug information generation.
  -gvariable-location-views   Augment variable location lists with progressive
                              views.
  -gvariable-location-views=incompat5 This option lacks documentation.
  -gvms                       Generate debug information in VMS format.
  -gxcoff                     Generate debug information in XCOFF format.
  -gxcoff+                    Generate debug information in extended XCOFF
                              format.
  -gz                         Generate compressed debug sections.
  -gz=<format>                Generate compressed debug sections in format
                              <format>.
  -imultiarch <dir>           Set <dir> to be the multiarch include
                              subdirectory.
  -iplugindir=<dir>           Set <dir> to be the default plugin directory.
  -p                          Enable function profiling.
  -pedantic-errors            Like -pedantic but issue them as errors.
  -quiet                      Do not display functions compiled or elapsed time.
  -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}]
                          compress DWARF debug sections using zlib
  --nocompress-debug-sections
                          don't compress DWARF debug sections [default]
  -D                      produce assembler debugging messages
  --debug-prefix-map OLD=NEW
                          map OLD to NEW in debug information
  --defsym SYM=VAL        define symbol SYM to given value
  -f                      skip whitespace and comment preprocessing
  -g --gen-debug          generate debugging information
  --gstabs                generate STABS debugging information
  --gstabs+               generate STABS debug info with GNU extensions
  --gdwarf-2              generate DWARF2 debugging information
  --gdwarf-sections       generate per-function section names for DWARF line information
  --hash-size=<value>     set the hash table size close to <value>
  --help                  show this message and exit
  --target-help           show target specific options
  -I DIR                  add DIR to search list for .include directives
  -J                      don't warn about signed overflow
  -K                      warn when differences altered for long displacements
  -L,--keep-locals        keep local symbols (e.g. starting with `L')
  -M,--mri                assemble in MRI compatibility mode
  --MD FILE               write dependency information in FILE (default none)
  -nocpp                  ignored
  -no-pad-sections        do not pad the end of sections to alignment boundaries
  -o OBJFILE              name the object-file output OBJFILE (default a.out)
  -R                      fold data section into text section
  --reduce-memory-overheads 
                          prefer smaller memory use at the cost of longer
                          assembly times
  --statistics            print various measured statistics from execution
  --strip-local-absolute  strip local absolute symbols
  --traditional-format    Use same format as native assembler when possible
  --version               print assembler version number and exit
  -W  --no-warn           suppress warnings
  --warn                  don't suppress warnings
  --fatal-warnings        treat warnings as errors
  -w                      ignored
  -X                      ignored
  -Z                      generate object file even after errors
  --listing-lhs-width     set the width in words of the output data column of
                          the listing
  --listing-lhs-width2    set the width in words of the continuation lines
                          of the output data column; ignored if smaller than
                          the width of the first line
  --listing-rhs-width     set the max width in characters of the lines from
                          the source file
  --listing-cont-lines    set the maximum number of continuation lines used
                          for the output data column of the listing
  @FILE                   read options from FILE
  -n                      Do not optimize code alignment
  -q                      quieten some warnings
  --divide                ignored
  -march=CPU[,+EXTENSION...]
                          generate code for CPU and EXTENSION, CPU is one of:
                           generic32, generic64, i386, i486, i586, i686,
                           pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
                           prescott, nocona, core, core2, corei7, l1om, k1om,
                           iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
                           bdver1, bdver2, bdver3, bdver4, znver1, znver2,
                           btver1, btver2
                          EXTENSION is combination of:
                           8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2,
                           sse3, ssse3, sse4.1, sse4.2, sse4, avx, avx2,
                           avx512f, avx512cd, avx512er, avx512pf, avx512dq,
                           avx512bw, avx512vl, vmx, vmfunc, smx, xsave,
                           xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase,
                           rdrnd, f16c, bmi2, fma, fma4, xop, lwp, movbe, cx16,
                           ept, lzcnt, hle, rtm, invpcid, clflush, nop, syscall,
                           rdtscp, 3dnow, 3dnowa, padlock, svme, sse4a, abm,
                           bmi, tbm, adx, rdseed, prfchw, smap, mpx, sha,
                           clflushopt, prefetchwt1, se1, clwb, avx512ifma,
                           avx512vbmi, avx512_4fmaps, avx512_4vnniw,
                           avx512_vpopcntdq, avx512_vbmi2, avx512_vnni,
                           avx512_bitalg, clzero, mwaitx, ospke, rdpid, ptwrite,
                           ibt, shstk, gfni, vaes, vpclmulqdq, wbnoinvd,
                           pconfig, waitpkg, cldemote, movdiri, movdir64b, no87,
                           no287, no387, no687, nocmov, nofxsr, nommx, nosse,
                           nosse2, nosse3, nossse3, nosse4.1, nosse4.2, nosse4,
                           noavx, noavx2, noavx512f, noavx512cd, noavx512er,
                           noavx512pf, noavx512dq, noavx512bw, noavx512vl,
                           noavx512ifma, noavx512vbmi, noavx512_4fmaps,
                           noavx512_4vnniw, noavx512_vpopcntdq, noavx512_vbmi2,
                           noavx512_vnni, noavx512_bitalg, noibt, noshstk,
                           nomovdiri, nomovdir64b
  -mtune=CPU              optimize for CPU, CPU is one of:
                           generic32, generic64, i8086, i186, i286, i386, i486,
                           i586, i686, pentium, pentiumpro, pentiumii,
                           pentiumiii, pentium4, prescott, nocona, core, core2,
                           corei7, l1om, k1om, iamcu, k6, k6_2, athlon, opteron,
                           k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
                           znver2, btver1, btver2
  -msse2avx               encode SSE instructions with VEX prefix
  -msse-check=[none|error|warning] (default: warning)
                          check SSE instructions
  -moperand-check=[none|error|warning] (default: warning)
                          check operand combinations for validity
  -mavxscalar=[128|256] (default: 128)
                          encode scalar AVX instructions with specific vector
                           length
  -mvexwig=[0|1] (default: 0)
                          encode VEX instructions with specific VEX.W value
                           for VEX.W bit ignored instructions
  -mevexlig=[128|256|512] (default: 128)
                          encode scalar EVEX instructions with specific vector
                           length
  -mevexwig=[0|1] (default: 0)
                          encode EVEX instructions with specific EVEX.W value
                           for EVEX.W bit ignored instructions
  -mevexrcig=[rne|rd|ru|rz] (default: rne)
                          encode EVEX instructions with specific EVEX.RC value
                           for SAE-only ignored instructions
  -mmnemonic=[att|intel] (default: att)
                          use AT&T/Intel mnemonic
  -msyntax=[att|intel] (default: att)
                          use AT&T/Intel syntax
  -mindex-reg             support pseudo index registers
  -mnaked-reg             don't require `%' prefix for registers
  -madd-bnd-prefix        add BND prefix for all valid branches
  -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
  -mamd64                 accept only AMD64 ISA [default]
  -mintel64               accept only Intel64 ISA

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

Overview: https://gcc.gnu.org/onlinedocs/gccint/Collect2.html
Report bugs: <https://gcc.gnu.org/bugs/>

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

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

For bug reporting instructions, please see:
<https://gcc.gnu.org/bugs/>
