3.1 Option Summary

Here is a summary of all the options, grouped by type. Explanations are in the following sections.

Overall Options

See Options Controlling the Kind of Output.

-c  -S  -E  -o file 
-dumpbase dumpbase  -dumpbase-ext auxdropsuf 
-dumpdir dumppfx  -x language  
-v  -###  --help[=class[,…]]  --target-help  --version 
-pass-exit-codes  -pipe  -specs=file  -wrapper  
@file  -ffile-prefix-map=old=new  
-fplugin=file  -fplugin-arg-name=arg  
-fdump-ada-spec[-slim]  -fada-spec-parent=unit  -fdump-go-spec=file
C Language Options

See Options Controlling C Dialect.

-ansi  -std=standard  -aux-info filename 
-fallow-parameterless-variadic-functions  -fno-asm  
-fno-builtin  -fno-builtin-function  -fcond-mismatch 
-ffreestanding  -fgimple  -fgnu-tm  -fgnu89-inline  -fhosted 
-flax-vector-conversions  -fms-extensions 
-foffload=arg  -foffload-options=arg 
-fopenacc  -fopenacc-dim=geom 
-fopenmp  -fopenmp-simd 
-fpermitted-flt-eval-methods=standard 
-fplan9-extensions  -fsigned-bitfields  -funsigned-bitfields 
-fsigned-char  -funsigned-char  -fsso-struct=endianness
C++ Language Options

See Options Controlling C++ Dialect.

-fabi-version=n  -fno-access-control 
-faligned-new=n  -fargs-in-order=n  -fchar8_t  -fcheck-new 
-fconstexpr-depth=n  -fconstexpr-cache-depth=n 
-fconstexpr-loop-limit=n  -fconstexpr-ops-limit=n 
-fno-elide-constructors 
-fno-enforce-eh-specs 
-fno-gnu-keywords 
-fno-implicit-templates 
-fno-implicit-inline-templates 
-fno-implement-inlines  
-fmodule-header[=kind] -fmodule-only -fmodules-ts 
-fmodule-implicit-inline 
-fno-module-lazy 
-fmodule-mapper=specification 
-fmodule-version-ignore 
-fms-extensions 
-fnew-inheriting-ctors 
-fnew-ttp-matching 
-fno-nonansi-builtins  -fnothrow-opt  -fno-operator-names 
-fno-optional-diags  -fpermissive 
-fno-pretty-templates 
-fno-rtti  -fsized-deallocation 
-ftemplate-backtrace-limit=n 
-ftemplate-depth=n 
-fno-threadsafe-statics  -fuse-cxa-atexit 
-fno-weak  -nostdinc++ 
-fvisibility-inlines-hidden 
-fvisibility-ms-compat 
-fext-numeric-literals 
-flang-info-include-translate[=header] 
-flang-info-include-translate-not 
-flang-info-module-cmi[=module] 
-stdlib=libstdc++,libc++ 
-Wabi-tag  -Wcatch-value  -Wcatch-value=n 
-Wno-class-conversion  -Wclass-memaccess 
-Wcomma-subscript  -Wconditionally-supported 
-Wno-conversion-null  -Wctad-maybe-unsupported 
-Wctor-dtor-privacy  -Wno-delete-incomplete 
-Wdelete-non-virtual-dtor  -Wno-deprecated-array-compare 
-Wdeprecated-copy -Wdeprecated-copy-dtor 
-Wno-deprecated-enum-enum-conversion -Wno-deprecated-enum-float-conversion 
-Weffc++  -Wno-exceptions -Wextra-semi  -Wno-inaccessible-base 
-Wno-inherited-variadic-ctor  -Wno-init-list-lifetime 
-Winvalid-imported-macros 
-Wno-invalid-offsetof  -Wno-literal-suffix 
-Wmismatched-new-delete -Wmismatched-tags 
-Wmultiple-inheritance  -Wnamespaces  -Wnarrowing 
-Wnoexcept  -Wnoexcept-type  -Wnon-virtual-dtor 
-Wpessimizing-move  -Wno-placement-new  -Wplacement-new=n 
-Wrange-loop-construct -Wredundant-move -Wredundant-tags 
-Wreorder  -Wregister 
-Wstrict-null-sentinel  -Wno-subobject-linkage  -Wtemplates 
-Wno-non-template-friend  -Wold-style-cast 
-Woverloaded-virtual  -Wno-pmf-conversions -Wsign-promo 
-Wsized-deallocation  -Wsuggest-final-methods 
-Wsuggest-final-types  -Wsuggest-override  
-Wno-terminate  -Wuseless-cast  -Wno-vexing-parse  
-Wvirtual-inheritance  
-Wno-virtual-move-assign  -Wvolatile  -Wzero-as-null-pointer-constant
Objective-C and Objective-C++ Language Options

See Options Controlling Objective-C and Objective-C++ Dialects.

-fconstant-string-class=class-name 
-fgnu-runtime  -fnext-runtime 
-fno-nil-receivers 
-fobjc-abi-version=n 
-fobjc-call-cxx-cdtors 
-fobjc-direct-dispatch 
-fobjc-exceptions 
-fobjc-gc 
-fobjc-nilcheck 
-fobjc-std=objc1 
-fno-local-ivars 
-fivar-visibility=[public|protected|private|package] 
-freplace-objc-classes 
-fzero-link 
-gen-decls 
-Wassign-intercept  -Wno-property-assign-default 
-Wno-protocol -Wobjc-root-class -Wselector 
-Wstrict-selector-match 
-Wundeclared-selector
Diagnostic Message Formatting Options

See Options to Control Diagnostic Messages Formatting.

-fmessage-length=n  
-fdiagnostics-plain-output 
-fdiagnostics-show-location=[once|every-line]  
-fdiagnostics-color=[auto|never|always]  
-fdiagnostics-urls=[auto|never|always]  
-fdiagnostics-format=[text|json]  
-fno-diagnostics-show-option  -fno-diagnostics-show-caret 
-fno-diagnostics-show-labels  -fno-diagnostics-show-line-numbers 
-fno-diagnostics-show-cwe  
-fdiagnostics-minimum-margin-width=width 
-fdiagnostics-parseable-fixits  -fdiagnostics-generate-patch 
-fdiagnostics-show-template-tree  -fno-elide-type 
-fdiagnostics-path-format=[none|separate-events|inline-events] 
-fdiagnostics-show-path-depths 
-fno-show-column 
-fdiagnostics-column-unit=[display|byte] 
-fdiagnostics-column-origin=origin 
-fdiagnostics-escape-format=[unicode|bytes]
Warning Options

See Options to Request or Suppress Warnings.

-fsyntax-only  -fmax-errors=n  -Wpedantic 
-pedantic-errors 
-w  -Wextra  -Wall  -Wabi=n 
-Waddress  -Wno-address-of-packed-member  -Waggregate-return 
-Walloc-size-larger-than=byte-size  -Walloc-zero 
-Walloca  -Walloca-larger-than=byte-size 
-Wno-aggressive-loop-optimizations 
-Warith-conversion 
-Warray-bounds  -Warray-bounds=n  -Warray-compare 
-Wno-attributes  -Wattribute-alias=n -Wno-attribute-alias 
-Wno-attribute-warning  
-Wbidi-chars=[none|unpaired|any|ucn] 
-Wbool-compare  -Wbool-operation 
-Wno-builtin-declaration-mismatch 
-Wno-builtin-macro-redefined  -Wc90-c99-compat  -Wc99-c11-compat 
-Wc11-c2x-compat 
-Wc++-compat  -Wc++11-compat  -Wc++14-compat  -Wc++17-compat  
-Wc++20-compat   
-Wno-c++11-extensions  -Wno-c++14-extensions -Wno-c++17-extensions  
-Wno-c++20-extensions  -Wno-c++23-extensions  
-Wcast-align  -Wcast-align=strict  -Wcast-function-type  -Wcast-qual  
-Wchar-subscripts 
-Wclobbered  -Wcomment 
-Wconversion  -Wno-coverage-mismatch  -Wno-cpp 
-Wdangling-else  -Wdangling-pointer  -Wdangling-pointer=n  
-Wdate-time 
-Wno-deprecated  -Wno-deprecated-declarations  -Wno-designated-init 
-Wdisabled-optimization 
-Wno-discarded-array-qualifiers  -Wno-discarded-qualifiers 
-Wno-div-by-zero  -Wdouble-promotion 
-Wduplicated-branches  -Wduplicated-cond 
-Wempty-body  -Wno-endif-labels  -Wenum-compare  -Wenum-conversion 
-Werror  -Werror=*  -Wexpansion-to-defined  -Wfatal-errors 
-Wfloat-conversion  -Wfloat-equal  -Wformat  -Wformat=2 
-Wno-format-contains-nul  -Wno-format-extra-args  
-Wformat-nonliteral  -Wformat-overflow=n 
-Wformat-security  -Wformat-signedness  -Wformat-truncation=n 
-Wformat-y2k  -Wframe-address 
-Wframe-larger-than=byte-size  -Wno-free-nonheap-object 
-Wno-if-not-aligned  -Wno-ignored-attributes 
-Wignored-qualifiers  -Wno-incompatible-pointer-types 
-Wimplicit  -Wimplicit-fallthrough  -Wimplicit-fallthrough=n 
-Wno-implicit-function-declaration  -Wno-implicit-int 
-Winfinite-recursion 
-Winit-self  -Winline  -Wno-int-conversion  -Wint-in-bool-context 
-Wno-int-to-pointer-cast  -Wno-invalid-memory-model 
-Winvalid-pch  -Wjump-misses-init  -Wlarger-than=byte-size 
-Wlogical-not-parentheses  -Wlogical-op  -Wlong-long 
-Wno-lto-type-mismatch -Wmain  -Wmaybe-uninitialized 
-Wmemset-elt-size  -Wmemset-transposed-args 
-Wmisleading-indentation  -Wmissing-attributes  -Wmissing-braces 
-Wmissing-field-initializers  -Wmissing-format-attribute 
-Wmissing-include-dirs  -Wmissing-noreturn  -Wno-missing-profile 
-Wno-multichar  -Wmultistatement-macros  -Wnonnull  -Wnonnull-compare 
-Wnormalized=[none|id|nfc|nfkc] 
-Wnull-dereference  -Wno-odr  
-Wopenacc-parallelism  
-Wopenmp-simd  
-Wno-overflow  -Woverlength-strings  -Wno-override-init-side-effects 
-Wpacked  -Wno-packed-bitfield-compat  -Wpacked-not-aligned  -Wpadded 
-Wparentheses  -Wno-pedantic-ms-format 
-Wpointer-arith  -Wno-pointer-compare  -Wno-pointer-to-int-cast 
-Wno-pragmas  -Wno-prio-ctor-dtor  -Wredundant-decls 
-Wrestrict  -Wno-return-local-addr  -Wreturn-type 
-Wno-scalar-storage-order  -Wsequence-point 
-Wshadow  -Wshadow=global  -Wshadow=local  -Wshadow=compatible-local 
-Wno-shadow-ivar 
-Wno-shift-count-negative  -Wno-shift-count-overflow  -Wshift-negative-value 
-Wno-shift-overflow  -Wshift-overflow=n 
-Wsign-compare  -Wsign-conversion 
-Wno-sizeof-array-argument 
-Wsizeof-array-div 
-Wsizeof-pointer-div  -Wsizeof-pointer-memaccess 
-Wstack-protector  -Wstack-usage=byte-size  -Wstrict-aliasing 
-Wstrict-aliasing=n  -Wstrict-overflow  -Wstrict-overflow=n 
-Wstring-compare 
-Wno-stringop-overflow -Wno-stringop-overread 
-Wno-stringop-truncation 
-Wsuggest-attribute=[pure|const|noreturn|format|malloc] 
-Wswitch  -Wno-switch-bool  -Wswitch-default  -Wswitch-enum 
-Wno-switch-outside-range  -Wno-switch-unreachable  -Wsync-nand 
-Wsystem-headers  -Wtautological-compare  -Wtrampolines  -Wtrigraphs 
-Wtrivial-auto-var-init -Wtsan -Wtype-limits  -Wundef 
-Wuninitialized  -Wunknown-pragmas 
-Wunsuffixed-float-constants  -Wunused 
-Wunused-but-set-parameter  -Wunused-but-set-variable 
-Wunused-const-variable  -Wunused-const-variable=n 
-Wunused-function  -Wunused-label  -Wunused-local-typedefs 
-Wunused-macros 
-Wunused-parameter  -Wno-unused-result 
-Wunused-value  -Wunused-variable 
-Wno-varargs  -Wvariadic-macros 
-Wvector-operation-performance 
-Wvla  -Wvla-larger-than=byte-size  -Wno-vla-larger-than 
-Wvolatile-register-var  -Wwrite-strings 
-Wzero-length-bounds
Static Analyzer Options
-fanalyzer 
-fanalyzer-call-summaries 
-fanalyzer-checker=name 
-fno-analyzer-feasibility 
-fanalyzer-fine-grained 
-fno-analyzer-state-merge 
-fno-analyzer-state-purge 
-fanalyzer-transitivity 
-fanalyzer-verbose-edges 
-fanalyzer-verbose-state-changes 
-fanalyzer-verbosity=level 
-fdump-analyzer 
-fdump-analyzer-callgraph 
-fdump-analyzer-exploded-graph 
-fdump-analyzer-exploded-nodes 
-fdump-analyzer-exploded-nodes-2 
-fdump-analyzer-exploded-nodes-3 
-fdump-analyzer-exploded-paths 
-fdump-analyzer-feasibility 
-fdump-analyzer-json 
-fdump-analyzer-state-purge 
-fdump-analyzer-stderr 
-fdump-analyzer-supergraph 
-fdump-analyzer-untracked 
-Wno-analyzer-double-fclose 
-Wno-analyzer-double-free 
-Wno-analyzer-exposure-through-output-file 
-Wno-analyzer-file-leak 
-Wno-analyzer-free-of-non-heap 
-Wno-analyzer-malloc-leak 
-Wno-analyzer-mismatching-deallocation 
-Wno-analyzer-null-argument 
-Wno-analyzer-null-dereference 
-Wno-analyzer-possible-null-argument 
-Wno-analyzer-possible-null-dereference 
-Wno-analyzer-shift-count-negative 
-Wno-analyzer-shift-count-overflow 
-Wno-analyzer-stale-setjmp-buffer 
-Wno-analyzer-tainted-allocation-size 
-Wno-analyzer-tainted-array-index 
-Wno-analyzer-tainted-divisor 
-Wno-analyzer-tainted-offset 
-Wno-analyzer-tainted-size 
-Wanalyzer-too-complex 
-Wno-analyzer-unsafe-call-within-signal-handler 
-Wno-analyzer-use-after-free 
-Wno-analyzer-use-of-pointer-in-stale-stack-frame 
-Wno-analyzer-use-of-uninitialized-value 
-Wno-analyzer-write-to-const 
-Wno-analyzer-write-to-string-literal 

C and Objective-C-only Warning Options
-Wbad-function-cast  -Wmissing-declarations 
-Wmissing-parameter-type  -Wmissing-prototypes  -Wnested-externs 
-Wold-style-declaration  -Wold-style-definition 
-Wstrict-prototypes  -Wtraditional  -Wtraditional-conversion 
-Wdeclaration-after-statement  -Wpointer-sign
Debugging Options

See Options for Debugging Your Program.

-g  -glevel  -gdwarf  -gdwarf-version 
-gbtf -gctf  -gctflevel 
-ggdb  -grecord-gcc-switches  -gno-record-gcc-switches 
-gstabs  -gstabs+  -gstrict-dwarf  -gno-strict-dwarf 
-gas-loc-support  -gno-as-loc-support 
-gas-locview-support  -gno-as-locview-support 
-gcolumn-info  -gno-column-info  -gdwarf32  -gdwarf64 
-gstatement-frontiers  -gno-statement-frontiers 
-gvariable-location-views  -gno-variable-location-views 
-ginternal-reset-location-views  -gno-internal-reset-location-views 
-ginline-points  -gno-inline-points 
-gvms  -gxcoff  -gxcoff+  -gz[=type] 
-gsplit-dwarf  -gdescribe-dies  -gno-describe-dies 
-fdebug-prefix-map=old=new  -fdebug-types-section 
-fno-eliminate-unused-debug-types 
-femit-struct-debug-baseonly  -femit-struct-debug-reduced 
-femit-struct-debug-detailed[=spec-list] 
-fno-eliminate-unused-debug-symbols  -femit-class-debug-always 
-fno-merge-debug-strings  -fno-dwarf2-cfi-asm 
-fvar-tracking  -fvar-tracking-assignments
Optimization Options

See Options that Control Optimization.

-faggressive-loop-optimizations 
-falign-functions[=n[:m:[n2[:m2]]]] 
-falign-jumps[=n[:m:[n2[:m2]]]] 
-falign-labels[=n[:m:[n2[:m2]]]] 
-falign-loops[=n[:m:[n2[:m2]]]] 
-fno-allocation-dce -fallow-store-data-races 
-fassociative-math  -fauto-profile  -fauto-profile[=path] 
-fauto-inc-dec  -fbranch-probabilities 
-fcaller-saves 
-fcombine-stack-adjustments  -fconserve-stack 
-fcompare-elim  -fcprop-registers  -fcrossjumping 
-fcse-follow-jumps  -fcse-skip-blocks  -fcx-fortran-rules 
-fcx-limited-range 
-fdata-sections  -fdce  -fdelayed-branch 
-fdelete-null-pointer-checks  -fdevirtualize  -fdevirtualize-speculatively 
-fdevirtualize-at-ltrans  -fdse 
-fearly-inlining  -fipa-sra  -fexpensive-optimizations  -ffat-lto-objects 
-ffast-math  -ffinite-math-only  -ffloat-store  -fexcess-precision=style 
-ffinite-loops 
-fforward-propagate  -ffp-contract=style  -ffunction-sections 
-fgcse  -fgcse-after-reload  -fgcse-las  -fgcse-lm  -fgraphite-identity 
-fgcse-sm  -fhoist-adjacent-loads  -fif-conversion 
-fif-conversion2  -findirect-inlining 
-finline-functions  -finline-functions-called-once  -finline-limit=n 
-finline-small-functions -fipa-modref -fipa-cp  -fipa-cp-clone 
-fipa-bit-cp  -fipa-vrp  -fipa-pta  -fipa-profile  -fipa-pure-const 
-fipa-reference  -fipa-reference-addressable 
-fipa-stack-alignment  -fipa-icf  -fira-algorithm=algorithm 
-flive-patching=level 
-fira-region=region  -fira-hoist-pressure 
-fira-loop-pressure  -fno-ira-share-save-slots 
-fno-ira-share-spill-slots 
-fisolate-erroneous-paths-dereference  -fisolate-erroneous-paths-attribute 
-fivopts  -fkeep-inline-functions  -fkeep-static-functions 
-fkeep-static-consts  -flimit-function-alignment  -flive-range-shrinkage 
-floop-block  -floop-interchange  -floop-strip-mine 
-floop-unroll-and-jam  -floop-nest-optimize 
-floop-parallelize-all  -flra-remat  -flto  -flto-compression-level 
-flto-partition=alg  -fmerge-all-constants 
-fmerge-constants  -fmodulo-sched  -fmodulo-sched-allow-regmoves 
-fmove-loop-invariants  -fmove-loop-stores  -fno-branch-count-reg 
-fno-defer-pop  -fno-fp-int-builtin-inexact  -fno-function-cse 
-fno-guess-branch-probability  -fno-inline  -fno-math-errno  -fno-peephole 
-fno-peephole2  -fno-printf-return-value  -fno-sched-interblock 
-fno-sched-spec  -fno-signed-zeros 
-fno-toplevel-reorder  -fno-trapping-math  -fno-zero-initialized-in-bss 
-fomit-frame-pointer  -foptimize-sibling-calls 
-fpartial-inlining  -fpeel-loops  -fpredictive-commoning 
-fprefetch-loop-arrays 
-fprofile-correction 
-fprofile-use  -fprofile-use=path -fprofile-partial-training 
-fprofile-values -fprofile-reorder-functions 
-freciprocal-math  -free  -frename-registers  -freorder-blocks 
-freorder-blocks-algorithm=algorithm 
-freorder-blocks-and-partition  -freorder-functions 
-frerun-cse-after-loop  -freschedule-modulo-scheduled-loops 
-frounding-math  -fsave-optimization-record 
-fsched2-use-superblocks  -fsched-pressure 
-fsched-spec-load  -fsched-spec-load-dangerous 
-fsched-stalled-insns-dep[=n]  -fsched-stalled-insns[=n] 
-fsched-group-heuristic  -fsched-critical-path-heuristic 
-fsched-spec-insn-heuristic  -fsched-rank-heuristic 
-fsched-last-insn-heuristic  -fsched-dep-count-heuristic 
-fschedule-fusion 
-fschedule-insns  -fschedule-insns2  -fsection-anchors 
-fselective-scheduling  -fselective-scheduling2 
-fsel-sched-pipelining  -fsel-sched-pipelining-outer-loops 
-fsemantic-interposition  -fshrink-wrap  -fshrink-wrap-separate 
-fsignaling-nans 
-fsingle-precision-constant  -fsplit-ivs-in-unroller  -fsplit-loops
-fsplit-paths 
-fsplit-wide-types  -fsplit-wide-types-early  -fssa-backprop  -fssa-phiopt 
-fstdarg-opt  -fstore-merging  -fstrict-aliasing -fipa-strict-aliasing 
-fthread-jumps  -ftracer  -ftree-bit-ccp 
-ftree-builtin-call-dce  -ftree-ccp  -ftree-ch 
-ftree-coalesce-vars  -ftree-copy-prop  -ftree-dce  -ftree-dominator-opts 
-ftree-dse  -ftree-forwprop  -ftree-fre  -fcode-hoisting 
-ftree-loop-if-convert  -ftree-loop-im 
-ftree-phiprop  -ftree-loop-distribution  -ftree-loop-distribute-patterns 
-ftree-loop-ivcanon  -ftree-loop-linear  -ftree-loop-optimize 
-ftree-loop-vectorize 
-ftree-parallelize-loops=n  -ftree-pre  -ftree-partial-pre  -ftree-pta 
-ftree-reassoc  -ftree-scev-cprop  -ftree-sink  -ftree-slsr  -ftree-sra 
-ftree-switch-conversion  -ftree-tail-merge 
-ftree-ter  -ftree-vectorize  -ftree-vrp  -ftrivial-auto-var-init 
-funconstrained-commons -funit-at-a-time  -funroll-all-loops 
-funroll-loops -funsafe-math-optimizations  -funswitch-loops 
-fipa-ra  -fvariable-expansion-in-unroller  -fvect-cost-model  -fvpt 
-fweb  -fwhole-program  -fwpa  -fuse-linker-plugin -fzero-call-used-regs 
--param name=value
-O  -O0  -O1  -O2  -O3  -Os  -Ofast  -Og  -Oz
Program Instrumentation Options

See Program Instrumentation Options.

-p  -pg  -fprofile-arcs  --coverage  -ftest-coverage 
-fprofile-abs-path 
-fprofile-dir=path  -fprofile-generate  -fprofile-generate=path 
-fprofile-info-section  -fprofile-info-section=name 
-fprofile-note=path -fprofile-prefix-path=path 
-fprofile-update=method -fprofile-filter-files=regex 
-fprofile-exclude-files=regex 
-fprofile-reproducible=[multithreaded|parallel-runs|serial] 
-fsanitize=style  -fsanitize-recover  -fsanitize-recover=style 
-fasan-shadow-offset=number  -fsanitize-sections=s1,s2,... 
-fsanitize-undefined-trap-on-error  -fbounds-check 
-fcf-protection=[full|branch|return|none|check] 
-fharden-compares -fharden-conditional-branches 
-fstack-protector  -fstack-protector-all  -fstack-protector-strong 
-fstack-protector-explicit  -fstack-check 
-fstack-limit-register=reg  -fstack-limit-symbol=sym 
-fno-stack-limit  -fsplit-stack 
-fvtable-verify=[std|preinit|none] 
-fvtv-counts  -fvtv-debug 
-finstrument-functions 
-finstrument-functions-exclude-function-list=sym,sym,… 
-finstrument-functions-exclude-file-list=file,file,…

-fprofile-prefix-map=old=new

Preprocessor Options

See Options Controlling the Preprocessor.

-Aquestion=answer 
-A-question[=answer] 
-C  -CC  -Dmacro[=defn] 
-dD  -dI  -dM  -dN  -dU 
-fdebug-cpp  -fdirectives-only  -fdollars-in-identifiers  
-fexec-charset=charset  -fextended-identifiers  
-finput-charset=charset  -flarge-source-files  
-fmacro-prefix-map=old=new -fmax-include-depth=depth 
-fno-canonical-system-headers  -fpch-deps  -fpch-preprocess  
-fpreprocessed  -ftabstop=width  -ftrack-macro-expansion  
-fwide-exec-charset=charset  -fworking-directory 
-H  -imacros file  -include file 
-M  -MD  -MF  -MG  -MM  -MMD  -MP  -MQ  -MT -Mno-modules 
-no-integrated-cpp  -P  -pthread  -remap 
-traditional  -traditional-cpp  -trigraphs 
-Umacro  -undef  
-Wp,option  -Xpreprocessor option
Assembler Options

See Passing Options to the Assembler.

-Wa,option  -Xassembler option
Linker Options

See Options for Linking.

object-file-name  -fuse-ld=linker  -llibrary 
-nostartfiles  -nodefaultlibs  -nolibc  -nostdlib 
-e entry  --entry=entry 
-pie  -pthread  -r  -rdynamic 
-s  -static  -static-pie  -static-libgcc  -static-libstdc++ 
-static-libasan  -static-libtsan  -static-liblsan  -static-libubsan 
-shared  -shared-libgcc  -symbolic 
-T script  -Wl,option  -Xlinker option 
-u symbol  -z keyword
Directory Options

See Options for Directory Search.

-Bprefix  -Idir  -I- 
-idirafter dir 
-imacros file  -imultilib dir 
-iplugindir=dir  -iprefix file 
-iquote dir  -isysroot dir  -isystem dir 
-iwithprefix dir  -iwithprefixbefore dir  
-Ldir  -no-canonical-prefixes  --no-sysroot-suffix 
-nostdinc  -nostdinc++  --sysroot=dir
Code Generation Options

See Options for Code Generation Conventions.

-fcall-saved-reg  -fcall-used-reg 
-ffixed-reg  -fexceptions 
-fnon-call-exceptions  -fdelete-dead-exceptions  -funwind-tables 
-fasynchronous-unwind-tables 
-fno-gnu-unique 
-finhibit-size-directive  -fcommon  -fno-ident 
-fpcc-struct-return  -fpic  -fPIC  -fpie  -fPIE  -fno-plt 
-fno-jump-tables -fno-bit-tests 
-frecord-gcc-switches 
-freg-struct-return  -fshort-enums  -fshort-wchar 
-fverbose-asm  -fpack-struct[=n]  
-fleading-underscore  -ftls-model=model 
-fstack-reuse=reuse_level 
-ftrampolines  -ftrapv  -fwrapv 
-fvisibility=[default|internal|hidden|protected] 
-fstrict-volatile-bitfields  -fsync-libcalls
Developer Options

See GCC Developer Options.

-dletters  -dumpspecs  -dumpmachine  -dumpversion 
-dumpfullversion  -fcallgraph-info[=su,da]
-fchecking  -fchecking=n
-fdbg-cnt-list   -fdbg-cnt=counter-value-list 
-fdisable-ipa-pass_name 
-fdisable-rtl-pass_name 
-fdisable-rtl-pass-name=range-list 
-fdisable-tree-pass_name 
-fdisable-tree-pass-name=range-list 
-fdump-debug  -fdump-earlydebug 
-fdump-noaddr  -fdump-unnumbered  -fdump-unnumbered-links 
-fdump-final-insns[=file] 
-fdump-ipa-all  -fdump-ipa-cgraph  -fdump-ipa-inline 
-fdump-lang-all 
-fdump-lang-switch 
-fdump-lang-switch-options 
-fdump-lang-switch-options=filename 
-fdump-passes 
-fdump-rtl-pass  -fdump-rtl-pass=filename 
-fdump-statistics 
-fdump-tree-all 
-fdump-tree-switch 
-fdump-tree-switch-options 
-fdump-tree-switch-options=filename 
-fcompare-debug[=opts]  -fcompare-debug-second 
-fenable-kind-pass 
-fenable-kind-pass=range-list 
-fira-verbose=n 
-flto-report  -flto-report-wpa  -fmem-report-wpa 
-fmem-report  -fpre-ipa-mem-report  -fpost-ipa-mem-report 
-fopt-info  -fopt-info-options[=file] 
-fprofile-report 
-frandom-seed=string  -fsched-verbose=n 
-fsel-sched-verbose  -fsel-sched-dump-cfg  -fsel-sched-pipelining-verbose 
-fstats  -fstack-usage  -ftime-report  -ftime-report-details 
-fvar-tracking-assignments-toggle  -gtoggle 
-print-file-name=library  -print-libgcc-file-name 
-print-multi-directory  -print-multi-lib  -print-multi-os-directory 
-print-prog-name=program  -print-search-dirs  -Q 
-print-sysroot  -print-sysroot-headers-suffix 
-save-temps  -save-temps=cwd  -save-temps=obj  -time[=file]
Machine-Dependent Options

See Machine-Dependent Options.

AArch64 Options

-mabi=name  -mbig-endian  -mlittle-endian 
-mgeneral-regs-only 
-mcmodel=tiny  -mcmodel=small  -mcmodel=large 
-mstrict-align  -mno-strict-align 
-momit-leaf-frame-pointer 
-mtls-dialect=desc  -mtls-dialect=traditional 
-mtls-size=size 
-mfix-cortex-a53-835769  -mfix-cortex-a53-843419 
-mlow-precision-recip-sqrt  -mlow-precision-sqrt  -mlow-precision-div 
-mpc-relative-literal-loads 
-msign-return-address=scope 
-mbranch-protection=none|standard|pac-ret[+leaf
+b-key]|bti 
-mharden-sls=opts 
-march=name  -mcpu=name  -mtune=name  
-moverride=string  -mverbose-cost-dump 
-mstack-protector-guard=guard -mstack-protector-guard-reg=sysreg 
-mstack-protector-guard-offset=offset -mtrack-speculation 
-moutline-atomics 

Adapteva Epiphany Options

-mhalf-reg-file  -mprefer-short-insn-regs 
-mbranch-cost=num  -mcmove  -mnops=num  -msoft-cmpsf 
-msplit-lohi  -mpost-inc  -mpost-modify  -mstack-offset=num 
-mround-nearest  -mlong-calls  -mshort-calls  -msmall16 
-mfp-mode=mode  -mvect-double  -max-vect-align=num 
-msplit-vecmove-early  -m1reg-reg

AMD GCN Options

-march=gpu -mtune=gpu -mstack-size=bytes

ARC Options

-mbarrel-shifter  -mjli-always 
-mcpu=cpu  -mA6  -mARC600  -mA7  -mARC700 
-mdpfp  -mdpfp-compact  -mdpfp-fast  -mno-dpfp-lrsr 
-mea  -mno-mpy  -mmul32x16  -mmul64  -matomic 
-mnorm  -mspfp  -mspfp-compact  -mspfp-fast  -msimd  -msoft-float  -mswap 
-mcrc  -mdsp-packa  -mdvbf  -mlock  -mmac-d16  -mmac-24  -mrtsc  -mswape 
-mtelephony  -mxy  -misize  -mannotate-align  -marclinux  -marclinux_prof 
-mlong-calls  -mmedium-calls  -msdata  -mirq-ctrl-saved 
-mrgf-banked-regs  -mlpc-width=width  -G num 
-mvolatile-cache  -mtp-regno=regno 
-malign-call  -mauto-modify-reg  -mbbit-peephole  -mno-brcc 
-mcase-vector-pcrel  -mcompact-casesi  -mno-cond-exec  -mearly-cbranchsi 
-mexpand-adddi  -mindexed-loads  -mlra  -mlra-priority-none 
-mlra-priority-compact -mlra-priority-noncompact  -mmillicode 
-mmixed-code  -mq-class  -mRcq  -mRcw  -msize-level=level 
-mtune=cpu  -mmultcost=num  -mcode-density-frame 
-munalign-prob-threshold=probability  -mmpy-option=multo 
-mdiv-rem  -mcode-density  -mll64  -mfpu=fpu  -mrf16  -mbranch-index

ARM Options

-mapcs-frame  -mno-apcs-frame 
-mabi=name 
-mapcs-stack-check  -mno-apcs-stack-check 
-mapcs-reentrant  -mno-apcs-reentrant 
-mgeneral-regs-only 
-msched-prolog  -mno-sched-prolog 
-mlittle-endian  -mbig-endian 
-mbe8  -mbe32 
-mfloat-abi=name 
-mfp16-format=name
-mthumb-interwork  -mno-thumb-interwork 
-mcpu=name  -march=name  -mfpu=name  
-mtune=name  -mprint-tune-info 
-mstructure-size-boundary=n 
-mabort-on-noreturn 
-mlong-calls  -mno-long-calls 
-msingle-pic-base  -mno-single-pic-base 
-mpic-register=reg 
-mnop-fun-dllimport 
-mpoke-function-name 
-mthumb  -marm  -mflip-thumb 
-mtpcs-frame  -mtpcs-leaf-frame 
-mcaller-super-interworking  -mcallee-super-interworking 
-mtp=name  -mtls-dialect=dialect 
-mword-relocations 
-mfix-cortex-m3-ldrd 
-mfix-cortex-a57-aes-1742098 
-mfix-cortex-a72-aes-1655431 
-munaligned-access 
-mneon-for-64bits 
-mslow-flash-data 
-masm-syntax-unified 
-mrestrict-it 
-mverbose-cost-dump 
-mpure-code 
-mcmse 
-mfix-cmse-cve-2021-35465 
-mstack-protector-guard=guard -mstack-protector-guard-offset=offset 
-mfdpic

AVR Options

-mmcu=mcu  -mabsdata  -maccumulate-args 
-mbranch-cost=cost 
-mcall-prologues  -mgas-isr-prologues  -mint8 
-mdouble=bits -mlong-double=bits 
-mn_flash=size  -mno-interrupts 
-mmain-is-OS_task  -mrelax  -mrmw  -mstrict-X  -mtiny-stack 
-mfract-convert-truncate 
-mshort-calls  -nodevicelib  -nodevicespecs 
-Waddr-space-convert  -Wmisspelled-isr

Blackfin Options

-mcpu=cpu[-sirevision] 
-msim  -momit-leaf-frame-pointer  -mno-omit-leaf-frame-pointer 
-mspecld-anomaly  -mno-specld-anomaly  -mcsync-anomaly  -mno-csync-anomaly 
-mlow-64k  -mno-low64k  -mstack-check-l1  -mid-shared-library 
-mno-id-shared-library  -mshared-library-id=n 
-mleaf-id-shared-library  -mno-leaf-id-shared-library 
-msep-data  -mno-sep-data  -mlong-calls  -mno-long-calls 
-mfast-fp  -minline-plt  -mmulticore  -mcorea  -mcoreb  -msdram 
-micplb

C6X Options

-mbig-endian  -mlittle-endian  -march=cpu 
-msim  -msdata=sdata-type

CRIS Options

-mcpu=cpu  -march=cpu
-mtune=cpu -mmax-stack-frame=n 
-metrax4  -metrax100  -mpdebug  -mcc-init  -mno-side-effects 
-mstack-align  -mdata-align  -mconst-align 
-m32-bit  -m16-bit  -m8-bit  -mno-prologue-epilogue 
-melf  -maout  -sim  -sim2 
-mmul-bug-workaround  -mno-mul-bug-workaround

CR16 Options

-mmac 
-mcr16cplus  -mcr16c 
-msim  -mint32  -mbit-ops
-mdata-model=model

C-SKY Options

-march=arch  -mcpu=cpu 
-mbig-endian  -EB  -mlittle-endian  -EL 
-mhard-float  -msoft-float  -mfpu=fpu  -mdouble-float  -mfdivdu 
-mfloat-abi=name 
-melrw  -mistack  -mmp  -mcp  -mcache  -msecurity  -mtrust 
-mdsp  -medsp  -mvdsp 
-mdiv  -msmart  -mhigh-registers  -manchor 
-mpushpop  -mmultiple-stld  -mconstpool  -mstack-size  -mccrt 
-mbranch-cost=n  -mcse-cc  -msched-prolog -msim

Darwin Options

-all_load  -allowable_client  -arch  -arch_errors_fatal 
-arch_only  -bind_at_load  -bundle  -bundle_loader 
-client_name  -compatibility_version  -current_version 
-dead_strip 
-dependency-file  -dylib_file  -dylinker_install_name 
-dynamic  -dynamiclib  -exported_symbols_list 
-filelist  -flat_namespace  -force_cpusubtype_ALL 
-force_flat_namespace  -headerpad_max_install_names 
-iframework 
-image_base  -init  -install_name  -keep_private_externs 
-multi_module  -multiply_defined  -multiply_defined_unused 
-noall_load   -no_dead_strip_inits_and_terms 
-nofixprebinding  -nomultidefs  -noprebind  -noseglinkedit 
-pagezero_size  -prebind  -prebind_all_twolevel_modules 
-private_bundle  -read_only_relocs  -sectalign 
-sectobjectsymbols  -whyload  -seg1addr 
-sectcreate  -sectobjectsymbols  -sectorder 
-segaddr  -segs_read_only_addr  -segs_read_write_addr 
-seg_addr_table  -seg_addr_table_filename  -seglinkedit 
-segprot  -segs_read_only_addr  -segs_read_write_addr 
-single_module  -static  -sub_library  -sub_umbrella 
-twolevel_namespace  -umbrella  -undefined 
-unexported_symbols_list  -weak_reference_mismatches 
-whatsloaded  -F  -gused  -gfull  -mmacosx-version-min=version 
-mkernel  -mone-byte-bool

DEC Alpha Options

-mno-fp-regs  -msoft-float 
-mieee  -mieee-with-inexact  -mieee-conformant 
-mfp-trap-mode=mode  -mfp-rounding-mode=mode 
-mtrap-precision=mode  -mbuild-constants 
-mcpu=cpu-type  -mtune=cpu-type 
-mbwx  -mmax  -mfix  -mcix 
-mfloat-vax  -mfloat-ieee 
-mexplicit-relocs  -msmall-data  -mlarge-data 
-msmall-text  -mlarge-text 
-mmemory-latency=time

eBPF Options

-mbig-endian -mlittle-endian -mkernel=version
-mframe-limit=bytes -mxbpf -mco-re -mno-co-re
-mjmpext -mjmp32 -malu32 -mcpu=version

FR30 Options

-msmall-model  -mno-lsim

FT32 Options

-msim  -mlra  -mnodiv  -mft32b  -mcompress  -mnopm

FRV Options

-mgpr-32  -mgpr-64  -mfpr-32  -mfpr-64 
-mhard-float  -msoft-float 
-malloc-cc  -mfixed-cc  -mdword  -mno-dword 
-mdouble  -mno-double 
-mmedia  -mno-media  -mmuladd  -mno-muladd 
-mfdpic  -minline-plt  -mgprel-ro  -multilib-library-pic 
-mlinked-fp  -mlong-calls  -malign-labels 
-mlibrary-pic  -macc-4  -macc-8 
-mpack  -mno-pack  -mno-eflags  -mcond-move  -mno-cond-move 
-moptimize-membar  -mno-optimize-membar 
-mscc  -mno-scc  -mcond-exec  -mno-cond-exec 
-mvliw-branch  -mno-vliw-branch 
-mmulti-cond-exec  -mno-multi-cond-exec  -mnested-cond-exec 
-mno-nested-cond-exec  -mtomcat-stats 
-mTLS  -mtls 
-mcpu=cpu

GNU/Linux Options

-mglibc  -muclibc  -mmusl  -mbionic  -mandroid 
-tno-android-cc  -tno-android-ld

H8/300 Options

-mrelax  -mh  -ms  -mn  -mexr  -mno-exr  -mint32  -malign-300

HPPA Options

-march=architecture-type 
-mcaller-copies  -mdisable-fpregs  -mdisable-indexing 
-mfast-indirect-calls  -mgas  -mgnu-ld   -mhp-ld 
-mfixed-range=register-range 
-mjump-in-delay  -mlinker-opt  -mlong-calls 
-mlong-load-store  -mno-disable-fpregs 
-mno-disable-indexing  -mno-fast-indirect-calls  -mno-gas 
-mno-jump-in-delay  -mno-long-load-store 
-mno-portable-runtime  -mno-soft-float 
-mno-space-regs  -msoft-float  -mpa-risc-1-0 
-mpa-risc-1-1  -mpa-risc-2-0  -mportable-runtime 
-mschedule=cpu-type  -mspace-regs  -msio  -mwsio 
-munix=unix-std  -nolibdld  -static  -threads

IA-64 Options

-mbig-endian  -mlittle-endian  -mgnu-as  -mgnu-ld  -mno-pic 
-mvolatile-asm-stop  -mregister-names  -msdata  -mno-sdata 
-mconstant-gp  -mauto-pic  -mfused-madd 
-minline-float-divide-min-latency 
-minline-float-divide-max-throughput 
-mno-inline-float-divide 
-minline-int-divide-min-latency 
-minline-int-divide-max-throughput  
-mno-inline-int-divide 
-minline-sqrt-min-latency  -minline-sqrt-max-throughput 
-mno-inline-sqrt 
-mdwarf2-asm  -mearly-stop-bits 
-mfixed-range=register-range  -mtls-size=tls-size 
-mtune=cpu-type  -milp32  -mlp64 
-msched-br-data-spec  -msched-ar-data-spec  -msched-control-spec 
-msched-br-in-data-spec  -msched-ar-in-data-spec  -msched-in-control-spec 
-msched-spec-ldc  -msched-spec-control-ldc 
-msched-prefer-non-data-spec-insns  -msched-prefer-non-control-spec-insns 
-msched-stop-bits-after-every-cycle  -msched-count-spec-in-critical-path 
-msel-sched-dont-check-control-spec  -msched-fp-mem-deps-zero-cost 
-msched-max-memory-insns-hard-limit  -msched-max-memory-insns=max-insns

LM32 Options

-mbarrel-shift-enabled  -mdivide-enabled  -mmultiply-enabled 
-msign-extend-enabled  -muser-enabled

LoongArch Options

-march=cpu-type  -mtune=cpu-type -mabi=base-abi-type 
-mfpu=fpu-type -msoft-float -msingle-float -mdouble-float 
-mbranch-cost=n  -mcheck-zero-division -mno-check-zero-division 
-mcond-move-int  -mno-cond-move-int 
-mcond-move-float  -mno-cond-move-float 
-memcpy  -mno-memcpy -mstrict-align -mno-strict-align 
-mmax-inline-memcpy-size=n 
-mcmodel=code-model

M32R/D Options

-m32r2  -m32rx  -m32r 
-mdebug 
-malign-loops  -mno-align-loops 
-missue-rate=number 
-mbranch-cost=number 
-mmodel=code-size-model-type 
-msdata=sdata-type 
-mno-flush-func  -mflush-func=name 
-mno-flush-trap  -mflush-trap=number 
-G num

M32C Options

-mcpu=cpu  -msim  -memregs=number

M680x0 Options

-march=arch  -mcpu=cpu  -mtune=tune 
-m68000  -m68020  -m68020-40  -m68020-60  -m68030  -m68040 
-m68060  -mcpu32  -m5200  -m5206e  -m528x  -m5307  -m5407 
-mcfv4e  -mbitfield  -mno-bitfield  -mc68000  -mc68020 
-mnobitfield  -mrtd  -mno-rtd  -mdiv  -mno-div  -mshort 
-mno-short  -mhard-float  -m68881  -msoft-float  -mpcrel 
-malign-int  -mstrict-align  -msep-data  -mno-sep-data 
-mshared-library-id=n  -mid-shared-library  -mno-id-shared-library 
-mxgot  -mno-xgot  -mlong-jump-table-offsets

MCore Options

-mhardlit  -mno-hardlit  -mdiv  -mno-div  -mrelax-immediates 
-mno-relax-immediates  -mwide-bitfields  -mno-wide-bitfields 
-m4byte-functions  -mno-4byte-functions  -mcallgraph-data 
-mno-callgraph-data  -mslow-bytes  -mno-slow-bytes  -mno-lsim 
-mlittle-endian  -mbig-endian  -m210  -m340  -mstack-increment

MeP Options

-mabsdiff  -mall-opts  -maverage  -mbased=n  -mbitops 
-mc=n  -mclip  -mconfig=name  -mcop  -mcop32  -mcop64  -mivc2 
-mdc  -mdiv  -meb  -mel  -mio-volatile  -ml  -mleadz  -mm  -mminmax 
-mmult  -mno-opts  -mrepeat  -ms  -msatur  -msdram  -msim  -msimnovec  -mtf 
-mtiny=n

MicroBlaze Options

-msoft-float  -mhard-float  -msmall-divides  -mcpu=cpu 
-mmemcpy  -mxl-soft-mul  -mxl-soft-div  -mxl-barrel-shift 
-mxl-pattern-compare  -mxl-stack-check  -mxl-gp-opt  -mno-clearbss 
-mxl-multiply-high  -mxl-float-convert  -mxl-float-sqrt 
-mbig-endian  -mlittle-endian  -mxl-reorder  -mxl-mode-app-model 
-mpic-data-is-text-relative

MIPS Options

-EL  -EB  -march=arch  -mtune=arch 
-mips1  -mips2  -mips3  -mips4  -mips32  -mips32r2  -mips32r3  -mips32r5 
-mips32r6  -mips64  -mips64r2  -mips64r3  -mips64r5  -mips64r6 
-mips16  -mno-mips16  -mflip-mips16 
-minterlink-compressed  -mno-interlink-compressed 
-minterlink-mips16  -mno-interlink-mips16 
-mabi=abi  -mabicalls  -mno-abicalls 
-mshared  -mno-shared  -mplt  -mno-plt  -mxgot  -mno-xgot 
-mgp32  -mgp64  -mfp32  -mfpxx  -mfp64  -mhard-float  -msoft-float 
-mno-float  -msingle-float  -mdouble-float 
-modd-spreg  -mno-odd-spreg 
-mabs=mode  -mnan=encoding 
-mdsp  -mno-dsp  -mdspr2  -mno-dspr2 
-mmcu  -mmno-mcu 
-meva  -mno-eva 
-mvirt  -mno-virt 
-mxpa  -mno-xpa 
-mcrc  -mno-crc 
-mginv  -mno-ginv 
-mmicromips  -mno-micromips 
-mmsa  -mno-msa 
-mloongson-mmi  -mno-loongson-mmi 
-mloongson-ext  -mno-loongson-ext 
-mloongson-ext2  -mno-loongson-ext2 
-mfpu=fpu-type 
-msmartmips  -mno-smartmips 
-mpaired-single  -mno-paired-single  -mdmx  -mno-mdmx 
-mips3d  -mno-mips3d  -mmt  -mno-mt  -mllsc  -mno-llsc 
-mlong64  -mlong32  -msym32  -mno-sym32 
-Gnum  -mlocal-sdata  -mno-local-sdata 
-mextern-sdata  -mno-extern-sdata  -mgpopt  -mno-gopt 
-membedded-data  -mno-embedded-data 
-muninit-const-in-rodata  -mno-uninit-const-in-rodata 
-mcode-readable=setting 
-msplit-addresses  -mno-split-addresses 
-mexplicit-relocs  -mno-explicit-relocs 
-mcheck-zero-division  -mno-check-zero-division 
-mdivide-traps  -mdivide-breaks 
-mload-store-pairs  -mno-load-store-pairs 
-munaligned-access  -mno-unaligned-access 
-mmemcpy  -mno-memcpy  -mlong-calls  -mno-long-calls 
-mmad  -mno-mad  -mimadd  -mno-imadd  -mfused-madd  -mno-fused-madd  -nocpp 
-mfix-24k  -mno-fix-24k 
-mfix-r4000  -mno-fix-r4000  -mfix-r4400  -mno-fix-r4400 
-mfix-r5900  -mno-fix-r5900 
-mfix-r10000  -mno-fix-r10000  -mfix-rm7000  -mno-fix-rm7000 
-mfix-vr4120  -mno-fix-vr4120 
-mfix-vr4130  -mno-fix-vr4130  -mfix-sb1  -mno-fix-sb1 
-mflush-func=func  -mno-flush-func 
-mbranch-cost=num  -mbranch-likely  -mno-branch-likely 
-mcompact-branches=policy 
-mfp-exceptions  -mno-fp-exceptions 
-mvr4130-align  -mno-vr4130-align  -msynci  -mno-synci 
-mlxc1-sxc1  -mno-lxc1-sxc1  -mmadd4  -mno-madd4 
-mrelax-pic-calls  -mno-relax-pic-calls  -mmcount-ra-address 
-mframe-header-opt  -mno-frame-header-opt

MMIX Options

-mlibfuncs  -mno-libfuncs  -mepsilon  -mno-epsilon  -mabi=gnu 
-mabi=mmixware  -mzero-extend  -mknuthdiv  -mtoplevel-symbols 
-melf  -mbranch-predict  -mno-branch-predict  -mbase-addresses 
-mno-base-addresses  -msingle-exit  -mno-single-exit

MN10300 Options

-mmult-bug  -mno-mult-bug 
-mno-am33  -mam33  -mam33-2  -mam34 
-mtune=cpu-type 
-mreturn-pointer-on-d0 
-mno-crt0  -mrelax  -mliw  -msetlb

Moxie Options

-meb  -mel  -mmul.x  -mno-crt0

MSP430 Options

-msim  -masm-hex  -mmcu=  -mcpu=  -mlarge  -msmall  -mrelax 
-mwarn-mcu 
-mcode-region=  -mdata-region= 
-msilicon-errata=  -msilicon-errata-warn= 
-mhwmult=  -minrt  -mtiny-printf  -mmax-inline-shift=

NDS32 Options

-mbig-endian  -mlittle-endian 
-mreduced-regs  -mfull-regs 
-mcmov  -mno-cmov 
-mext-perf  -mno-ext-perf 
-mext-perf2  -mno-ext-perf2 
-mext-string  -mno-ext-string 
-mv3push  -mno-v3push 
-m16bit  -mno-16bit 
-misr-vector-size=num 
-mcache-block-size=num 
-march=arch 
-mcmodel=code-model 
-mctor-dtor  -mrelax

Nios II Options

-G num  -mgpopt=option  -mgpopt  -mno-gpopt 
-mgprel-sec=regexp  -mr0rel-sec=regexp 
-mel  -meb 
-mno-bypass-cache  -mbypass-cache 
-mno-cache-volatile  -mcache-volatile 
-mno-fast-sw-div  -mfast-sw-div 
-mhw-mul  -mno-hw-mul  -mhw-mulx  -mno-hw-mulx  -mno-hw-div  -mhw-div 
-mcustom-insn=N  -mno-custom-insn 
-mcustom-fpu-cfg=name 
-mhal  -msmallc  -msys-crt0=name  -msys-lib=name 
-march=arch  -mbmx  -mno-bmx  -mcdx  -mno-cdx

Nvidia PTX Options

-m64  -mmainkernel  -moptimize

OpenRISC Options

-mboard=name  -mnewlib  -mhard-mul  -mhard-div 
-msoft-mul  -msoft-div 
-msoft-float  -mhard-float  -mdouble-float -munordered-float 
-mcmov  -mror  -mrori  -msext  -msfimm  -mshftimm 
-mcmodel=code-model

PDP-11 Options

-mfpu  -msoft-float  -mac0  -mno-ac0  -m40  -m45  -m10 
-mint32  -mno-int16  -mint16  -mno-int32 
-msplit  -munix-asm  -mdec-asm  -mgnu-asm  -mlra

picoChip Options

-mae=ae_type  -mvliw-lookahead=N 
-msymbol-as-address  -mno-inefficient-warnings

PowerPC Options See RS/6000 and PowerPC Options.

PRU Options

-mmcu=mcu  -minrt  -mno-relax  -mloop 
-mabi=variant 

RISC-V Options

-mbranch-cost=N-instruction 
-mplt  -mno-plt 
-mabi=ABI-string 
-mfdiv  -mno-fdiv 
-mdiv  -mno-div 
-misa-spec=ISA-spec-string 
-march=ISA-string 
-mtune=processor-string 
-mpreferred-stack-boundary=num 
-msmall-data-limit=N-bytes 
-msave-restore  -mno-save-restore 
-mshorten-memrefs  -mno-shorten-memrefs 
-mstrict-align  -mno-strict-align 
-mcmodel=medlow  -mcmodel=medany 
-mexplicit-relocs  -mno-explicit-relocs 
-mrelax  -mno-relax 
-mriscv-attribute  -mmo-riscv-attribute 
-malign-data=type 
-mbig-endian  -mlittle-endian 
-mstack-protector-guard=guard -mstack-protector-guard-reg=reg 
-mstack-protector-guard-offset=offset

RL78 Options

-msim  -mmul=none  -mmul=g13  -mmul=g14  -mallregs 
-mcpu=g10  -mcpu=g13  -mcpu=g14  -mg10  -mg13  -mg14 
-m64bit-doubles  -m32bit-doubles  -msave-mduc-in-interrupts

RS/6000 and PowerPC Options

-mcpu=cpu-type 
-mtune=cpu-type 
-mcmodel=code-model 
-mpowerpc64 
-maltivec  -mno-altivec 
-mpowerpc-gpopt  -mno-powerpc-gpopt 
-mpowerpc-gfxopt  -mno-powerpc-gfxopt 
-mmfcrf  -mno-mfcrf  -mpopcntb  -mno-popcntb  -mpopcntd  -mno-popcntd 
-mfprnd  -mno-fprnd 
-mcmpb  -mno-cmpb  -mhard-dfp  -mno-hard-dfp 
-mfull-toc   -mminimal-toc  -mno-fp-in-toc  -mno-sum-in-toc 
-m64  -m32  -mxl-compat  -mno-xl-compat  -mpe 
-malign-power  -malign-natural 
-msoft-float  -mhard-float  -mmultiple  -mno-multiple 
-mupdate  -mno-update 
-mavoid-indexed-addresses  -mno-avoid-indexed-addresses 
-mfused-madd  -mno-fused-madd  -mbit-align  -mno-bit-align 
-mstrict-align  -mno-strict-align  -mrelocatable 
-mno-relocatable  -mrelocatable-lib  -mno-relocatable-lib 
-mtoc  -mno-toc  -mlittle  -mlittle-endian  -mbig  -mbig-endian 
-mdynamic-no-pic  -mswdiv  -msingle-pic-base 
-mprioritize-restricted-insns=priority 
-msched-costly-dep=dependence_type 
-minsert-sched-nops=scheme 
-mcall-aixdesc  -mcall-eabi  -mcall-freebsd  
-mcall-linux  -mcall-netbsd  -mcall-openbsd  
-mcall-sysv  -mcall-sysv-eabi  -mcall-sysv-noeabi 
-mtraceback=traceback_type 
-maix-struct-return  -msvr4-struct-return 
-mabi=abi-type  -msecure-plt  -mbss-plt 
-mlongcall  -mno-longcall  -mpltseq  -mno-pltseq  
-mblock-move-inline-limit=num 
-mblock-compare-inline-limit=num 
-mblock-compare-inline-loop-limit=num 
-mno-block-ops-unaligned-vsx 
-mstring-compare-inline-limit=num 
-misel  -mno-isel 
-mvrsave  -mno-vrsave 
-mmulhw  -mno-mulhw 
-mdlmzb  -mno-dlmzb 
-mprototype  -mno-prototype 
-msim  -mmvme  -mads  -myellowknife  -memb  -msdata 
-msdata=opt  -mreadonly-in-sdata  -mvxworks  -G num 
-mrecip  -mrecip=opt  -mno-recip  -mrecip-precision 
-mno-recip-precision 
-mveclibabi=type  -mfriz  -mno-friz 
-mpointers-to-nested-functions  -mno-pointers-to-nested-functions 
-msave-toc-indirect  -mno-save-toc-indirect 
-mpower8-fusion  -mno-mpower8-fusion  -mpower8-vector  -mno-power8-vector 
-mcrypto  -mno-crypto  -mhtm  -mno-htm 
-mquad-memory  -mno-quad-memory 
-mquad-memory-atomic  -mno-quad-memory-atomic 
-mcompat-align-parm  -mno-compat-align-parm 
-mfloat128  -mno-float128  -mfloat128-hardware  -mno-float128-hardware 
-mgnu-attribute  -mno-gnu-attribute 
-mstack-protector-guard=guard -mstack-protector-guard-reg=reg 
-mstack-protector-guard-offset=offset -mprefixed -mno-prefixed 
-mpcrel -mno-pcrel -mmma -mno-mmma -mrop-protect -mno-rop-protect 
-mprivileged -mno-privileged

RX Options

-m64bit-doubles  -m32bit-doubles  -fpu  -nofpu
-mcpu=
-mbig-endian-data  -mlittle-endian-data 
-msmall-data 
-msim  -mno-sim
-mas100-syntax  -mno-as100-syntax
-mrelax
-mmax-constant-size=
-mint-register=
-mpid
-mallow-string-insns  -mno-allow-string-insns
-mjsr
-mno-warn-multiple-fast-interrupts
-msave-acc-in-interrupts

S/390 and zSeries Options

-mtune=cpu-type  -march=cpu-type 
-mhard-float  -msoft-float  -mhard-dfp  -mno-hard-dfp 
-mlong-double-64  -mlong-double-128 
-mbackchain  -mno-backchain  -mpacked-stack  -mno-packed-stack 
-msmall-exec  -mno-small-exec  -mmvcle  -mno-mvcle 
-m64  -m31  -mdebug  -mno-debug  -mesa  -mzarch 
-mhtm  -mvx  -mzvector 
-mtpf-trace  -mno-tpf-trace  -mtpf-trace-skip  -mno-tpf-trace-skip 
-mfused-madd  -mno-fused-madd 
-mwarn-framesize  -mwarn-dynamicstack  -mstack-size  -mstack-guard 
-mhotpatch=halfwords,halfwords

Score Options

-meb  -mel 
-mnhwloop 
-muls 
-mmac 
-mscore5  -mscore5u  -mscore7  -mscore7d

SH Options

-m1  -m2  -m2e 
-m2a-nofpu  -m2a-single-only  -m2a-single  -m2a 
-m3  -m3e 
-m4-nofpu  -m4-single-only  -m4-single  -m4 
-m4a-nofpu  -m4a-single-only  -m4a-single  -m4a  -m4al 
-mb  -ml  -mdalign  -mrelax 
-mbigtable  -mfmovd  -mrenesas  -mno-renesas  -mnomacsave 
-mieee  -mno-ieee  -mbitops  -misize  -minline-ic_invalidate  -mpadstruct 
-mprefergot  -musermode  -multcost=number  -mdiv=strategy 
-mdivsi3_libfunc=name  -mfixed-range=register-range 
-maccumulate-outgoing-args 
-matomic-model=atomic-model 
-mbranch-cost=num  -mzdcbranch  -mno-zdcbranch 
-mcbranch-force-delay-slot 
-mfused-madd  -mno-fused-madd  -mfsca  -mno-fsca  -mfsrra  -mno-fsrra 
-mpretend-cmove  -mtas

Solaris 2 Options

-mclear-hwcap  -mno-clear-hwcap  -mimpure-text  -mno-impure-text 
-pthreads

SPARC Options

-mcpu=cpu-type 
-mtune=cpu-type 
-mcmodel=code-model 
-mmemory-model=mem-model 
-m32  -m64  -mapp-regs  -mno-app-regs 
-mfaster-structs  -mno-faster-structs  -mflat  -mno-flat 
-mfpu  -mno-fpu  -mhard-float  -msoft-float 
-mhard-quad-float  -msoft-quad-float 
-mstack-bias  -mno-stack-bias 
-mstd-struct-return  -mno-std-struct-return 
-munaligned-doubles  -mno-unaligned-doubles 
-muser-mode  -mno-user-mode 
-mv8plus  -mno-v8plus  -mvis  -mno-vis 
-mvis2  -mno-vis2  -mvis3  -mno-vis3 
-mvis4  -mno-vis4  -mvis4b  -mno-vis4b 
-mcbcond  -mno-cbcond  -mfmaf  -mno-fmaf  -mfsmuld  -mno-fsmuld  
-mpopc  -mno-popc  -msubxc  -mno-subxc 
-mfix-at697f  -mfix-ut699  -mfix-ut700  -mfix-gr712rc 
-mlra  -mno-lra

System V Options

-Qy  -Qn  -YP,paths  -Ym,dir

TILE-Gx Options

-mcpu=CPU  -m32  -m64  -mbig-endian  -mlittle-endian 
-mcmodel=code-model

TILEPro Options

-mcpu=cpu  -m32

V850 Options

-mlong-calls  -mno-long-calls  -mep  -mno-ep 
-mprolog-function  -mno-prolog-function  -mspace 
-mtda=n  -msda=n  -mzda=n 
-mapp-regs  -mno-app-regs 
-mdisable-callt  -mno-disable-callt 
-mv850e2v3  -mv850e2  -mv850e1  -mv850es 
-mv850e  -mv850  -mv850e3v5 
-mloop 
-mrelax 
-mlong-jumps 
-msoft-float 
-mhard-float 
-mgcc-abi 
-mrh850-abi 
-mbig-switch

VAX Options

-mg  -mgnu  -munix  -mlra

Visium Options

-mdebug  -msim  -mfpu  -mno-fpu  -mhard-float  -msoft-float 
-mcpu=cpu-type  -mtune=cpu-type  -msv-mode  -muser-mode

VMS Options

-mvms-return-codes  -mdebug-main=prefix  -mmalloc64 
-mpointer-size=size

VxWorks Options

-mrtp  -non-static  -Bstatic  -Bdynamic 
-Xbind-lazy  -Xbind-now

x86 Options

-mtune=cpu-type  -march=cpu-type 
-mtune-ctrl=feature-list  -mdump-tune-features  -mno-default 
-mfpmath=unit 
-masm=dialect  -mno-fancy-math-387 
-mno-fp-ret-in-387  -m80387  -mhard-float  -msoft-float 
-mno-wide-multiply  -mrtd  -malign-double 
-mpreferred-stack-boundary=num 
-mincoming-stack-boundary=num 
-mcld  -mcx16  -msahf  -mmovbe  -mcrc32 -mmwait 
-mrecip  -mrecip=opt 
-mvzeroupper  -mprefer-avx128  -mprefer-vector-width=opt 
-mmove-max=bits -mstore-max=bits 
-mmmx  -msse  -msse2  -msse3  -mssse3  -msse4.1  -msse4.2  -msse4  -mavx 
-mavx2  -mavx512f  -mavx512pf  -mavx512er  -mavx512cd  -mavx512vl 
-mavx512bw  -mavx512dq  -mavx512ifma  -mavx512vbmi  -msha  -maes 
-mpclmul  -mfsgsbase  -mrdrnd  -mf16c  -mfma  -mpconfig  -mwbnoinvd  
-mptwrite  -mprefetchwt1  -mclflushopt  -mclwb  -mxsavec  -mxsaves 
-msse4a  -m3dnow  -m3dnowa  -mpopcnt  -mabm  -mbmi  -mtbm  -mfma4  -mxop 
-madx  -mlzcnt  -mbmi2  -mfxsr  -mxsave  -mxsaveopt  -mrtm  -mhle  -mlwp 
-mmwaitx  -mclzero  -mpku  -mthreads  -mgfni  -mvaes  -mwaitpkg 
-mshstk -mmanual-endbr -mforce-indirect-call  -mavx512vbmi2 -mavx512bf16 -menqcmd 
-mvpclmulqdq  -mavx512bitalg  -mmovdiri  -mmovdir64b  -mavx512vpopcntdq 
-mavx5124fmaps  -mavx512vnni  -mavx5124vnniw  -mprfchw  -mrdpid 
-mrdseed  -msgx -mavx512vp2intersect -mserialize -mtsxldtrk
-mamx-tile  -mamx-int8  -mamx-bf16 -muintr -mhreset -mavxvnni
-mavx512fp16 
-mcldemote  -mms-bitfields  -mno-align-stringops  -minline-all-stringops 
-minline-stringops-dynamically  -mstringop-strategy=alg 
-mkl -mwidekl 
-mmemcpy-strategy=strategy  -mmemset-strategy=strategy 
-mpush-args  -maccumulate-outgoing-args  -m128bit-long-double 
-m96bit-long-double  -mlong-double-64  -mlong-double-80  -mlong-double-128 
-mregparm=num  -msseregparm 
-mveclibabi=type  -mvect8-ret-in-mem 
-mpc32  -mpc64  -mpc80  -mstackrealign 
-momit-leaf-frame-pointer  -mno-red-zone  -mno-tls-direct-seg-refs 
-mcmodel=code-model  -mabi=name  -maddress-mode=mode 
-m32  -m64  -mx32  -m16  -miamcu  -mlarge-data-threshold=num 
-msse2avx  -mfentry  -mrecord-mcount  -mnop-mcount  -m8bit-idiv 
-minstrument-return=type -mfentry-name=name -mfentry-section=name 
-mavx256-split-unaligned-load  -mavx256-split-unaligned-store 
-malign-data=type  -mstack-protector-guard=guard 
-mstack-protector-guard-reg=reg 
-mstack-protector-guard-offset=offset 
-mstack-protector-guard-symbol=symbol 
-mgeneral-regs-only  -mcall-ms2sysv-xlogues -mrelax-cmpxchg-loop 
-mindirect-branch=choice  -mfunction-return=choice 
-mindirect-branch-register -mharden-sls=choice 
-mindirect-branch-cs-prefix -mneeded -mno-direct-extern-access

x86 Windows Options

-mconsole  -mcygwin  -mno-cygwin  -mdll 
-mnop-fun-dllimport  -mthread 
-municode  -mwin32  -mwindows  -fno-set-stack-executable

Xstormy16 Options

-msim

Xtensa Options

-mconst16  -mno-const16 
-mfused-madd  -mno-fused-madd 
-mforce-no-pic 
-mserialize-volatile  -mno-serialize-volatile 
-mtext-section-literals  -mno-text-section-literals 
-mauto-litpools  -mno-auto-litpools 
-mtarget-align  -mno-target-align 
-mlongcalls  -mno-longcalls 
-mabi=abi-type

zSeries Options See S/390 and zSeries Options.