GCC(1) GNU GCC(1) (NAME) gcc - C ++C (SYNOPSIS) gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-Wpedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... . g++ gcc . (DESCRIPTION) GCC . << >> (overall options) . -c . . . . . GCC C ( ++C) . . GCC gcc machine-gcc (cross-compiling) machine-gcc-version GCC. ++C GCC g++ . gcc . : -dv -d -v . . . -L . -l . -f -W --- -fmove-loop-invariants -Wformat . -ffoo -fno-foo . . (=) . . (unsigned) () . 0x . "kB" "KiB" "MB" "MiB" "GB" "GiB" . byte-size . NIST IEC ..SH " (OPTIONS)" (Option Summary) . . (Overall Options) -c -S -E -o file -dumpbase dumpbase -dumpbase-ext auxdropsuf -dumpdir dumppfx -x language -v -### --help[=class[,...]] --target-help --version -pass-exit-codes -pipe -wrapper @file -ffile-prefix-map=old=new -fcanon-prefix-map -fplugin=file -fplugin-arg-name=arg -fdump-ada-spec[-slim] -fada-spec-parent=unit -fdump-go-spec=file --assemble --compile --dumpbase dumpbase --dumpbase-ext auxdropsuf --dumpdir dumppfx --language=language --output=file --pass-exit-codes --pipe --preprocess --verbose C (C Language Options) -ansi -std=standard -aux-info filename -fno-asm -fno-builtin -fno-builtin-function -fcond-mismatch -ffreestanding -fgimple -fgnu-tm -fgnu89-inline -fhosted -flax-vector-conversions -fms-extensions -fpermitted-flt-eval-methods=standard -fplan9-extensions -fsigned-bitfields -funsigned-bitfields -fsigned-char -funsigned-char -fstrict-flex-arrays[=n] -fsso-struct=endianness --ansi ++C (C++ Language Options) --compile-std-module -fabi-compat-version=n -fabi-version=n -fno-access-control -faligned-new=[n] -fno-assume-sane-operators-new-delete -fchar8_t -fcheck-new -fconcepts -fconcepts-diagnostics-depth=n -fconstexpr-depth=n -fconstexpr-cache-depth=n -fconstexpr-loop-limit=n -fconstexpr-ops-limit=n -fcontracts -fcontract-evaluation-semantic=[ignore|observe|enforce|quick_enforce] -fcontracts-conservative-ipa -fcontract-checks-outlined -fcontract-disable-optimized-checks -fcontracts-client-check=[none|pre|all] -fcontracts-definition-check=[on|off] -fcoroutines -fdiagnostics-all-candidates -fno-elide-constructors -fno-enforce-eh-specs -fext-numeric-literals -fno-gnu-keywords -fno-immediate-escalation -fno-implement-inlines -fimplicit-constexpr -fno-implicit-inline-templates -fno-implicit-templates -fmodule-header[=kind] -fmodule-implicit-inline -fno-module-lazy -fmodule-mapper=specification -fmodule-only -fmodules -fms-extensions -fnew-inheriting-ctors -fnew-ttp-matching -fno-nonansi-builtins -fnothrow-opt -fno-operator-names -fno-optional-diags -fno-pretty-templates -frange-for-ext-temps -freflection -fno-rtti -fsized-deallocation -fstrict-enums -fstrong-eval-order[=kind] -ftemplate-backtrace-limit=n -ftemplate-depth=n -fno-threadsafe-statics -fuse-cxa-atexit -fno-use-cxa-get-exception-ptr -fno-weak -nostdinc++ -fvisibility-inlines-hidden -fvisibility-ms-compat -flang-info-include-translate[=header] -flang-info-include-translate-not -flang-info-module-cmi[=module] -stdlib=libstdc++,libc++ -Wabbreviated-auto-in-template-arg -Wabi-tag -Waligned-new[=kind] -Wcatch-value -Wcatch-value=n -Wno-class-conversion -Wclass-memaccess -Wcomma-subscript -Wconditionally-supported -Wno-conversion-null -Wctad-maybe-unsupported -Wctor-dtor-privacy -Wdangling-reference -Wno-defaulted-function-deleted -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 -Wno-deprecated-literal-operator -Wdeprecated-variadic-comma-omission -Weffc++ -Wno-elaborated-enum-base -Wno-exceptions -Wno-expose-global-module-tu-local -Wno-external-tu-local -Wextra-semi -Wno-global-module -Wno-inaccessible-base -Wno-inherited-variadic-ctor -Wno-init-list-lifetime -Winvalid-constexpr -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 -Wno-sfinae-incomplete -Wstrict-null-sentinel -Wno-subobject-linkage -Wtemplates -Wno-non-c-typedef-for-linkage -Wno-non-template-friend -Wold-style-cast -Woverloaded-virtual -Wno-pmf-conversions -Wself-move -Wsign-promo -Wsized-deallocation -Wsuggest-final-methods -Wsuggest-final-types -Wsuggest-override -Wno-template-body -Wno-template-id-cdtor -Wtemplate-names-tu-local -Wno-terminate -Wno-vexing-parse -Wvirtual-inheritance -Wno-virtual-move-assign -Wvolatile Objective-C ++Objective-C (Objective-C and Objective-C++ Language Options) -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 OpenMP OpenACC (OpenMP and OpenACC Options) -foffload=arg -foffload-options=arg -fopenacc -fopenacc-dim=geom -fopenmp -fopenmp-simd -fopenmp-target-simd-clone[=device-type] (Diagnostic Message Formatting Options) -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|sarif-stderr|sarif-file] -fdiagnostics-add-output=DIAGNOSTICS-OUTPUT-SPEC -fdiagnostics-set-output=DIAGNOSTICS-OUTPUT-SPEC -fno-diagnostics-json-formatting -fno-diagnostics-show-option -fno-diagnostics-show-caret -fno-diagnostics-show-event-links -fno-diagnostics-show-labels -fno-diagnostics-show-line-numbers -fno-diagnostics-show-cwe -fno-diagnostics-show-rules -fno-diagnostics-show-highlight-colors -fno-diagnostics-show-nesting -fno-diagnostics-show-nesting-locations -fdiagnostics-show-nesting-levels -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] -fdiagnostics-text-art-charset=[none|ascii|unicode|emoji] -fdiagnostics-show-context[=depth] (Warning Options) -fsyntax-only -fmax-errors=n -Wpedantic -pedantic-errors -fpermissive -w -Wextra -Wall -Wabi=n -Waddress -Wno-address-of-packed-member -Waggregate-return -Walloc-size -Walloc-size-larger-than=byte-size -Walloc-zero -Walloca -Walloca-larger-than=byte-size -Wauto-profile -Wno-aggressive-loop-optimizations -Warith-conversion -Warray-bounds -Warray-bounds=n -Warray-compare -Warray-parameter -Warray-parameter=n -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-c23-compat -Wc23-c2y-compat -Wc++-compat -Wc++11-compat -Wc++14-compat -Wc++17-compat -Wc++20-compat -Wc++26-compat -Wno-c++11-extensions -Wno-c++14-extensions -Wno-c++17-extensions -Wno-c++20-extensions -Wno-c++23-extensions -Wcalloc-transposed-args -Wcannot-profile -Wcast-align -Wcast-align=strict -Wcast-function-type -Wcast-qual -Wchar-subscripts -Wclobbered -Wcomment -Wcompare-distinct-pointer-types -Wno-complain-wrong-lang -Wconversion -Wno-coverage-mismatch -Wno-cpp -Wdangling-else -Wdangling-pointer -Wdangling-pointer=n -Wdate-time -Wno-deprecated -Wno-deprecated-declarations -Wno-designated-init -Wno-deprecated-openmp -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 -Wenum-int-mismatch -Werror -Werror=* -Wexpansion-to-defined -Wfatal-errors -Wflex-array-member-not-at-end -Wfloat-conversion -Wfloat-equal -Wformat -Wformat=2 -Wno-format-contains-nul -Wno-format-diag -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 -Wheader-guard -Wno-if-not-aligned -Wno-ignored-attributes -Wignored-qualifiers -Wno-incompatible-pointer-types -Whardened -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 -Winvalid-utf8 -Wno-unicode -Wjump-misses-init -Wkeyword-macro -Wlarger-than=byte-size -Wleading-whitespace=kind -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 -Wmusttail-local-addr -Wmaybe-musttail-local-addr -Wno-missing-profile -Wno-multichar -Wmultistatement-macros -Wnonnull -Wnonnull-compare -Wnormalized=[none|id|nfc|nfkc] -Wnull-dereference -Wno-odr -Wopenacc-parallelism -Wopenmp -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-pragma-once-outside-header -Wno-prio-ctor-dtor -Wno-psabi -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 -Wstrict-flex-arrays -Wsuggest-attribute=attribute-name -Wswitch -Wno-switch-bool -Wswitch-default -Wswitch-enum -Wno-switch-outside-range -Wno-switch-unreachable -Wsync-nand -Wsystem-headers -Wtautological-compare -Wtrailing-whitespace -Wtrailing-whitespace=kind -Wtrampolines -Wtrigraphs -Wtrivial-auto-var-init -Wno-tsan -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunsuffixed-float-constants -Wunterminated-string-initialization -Wunused -Wunused-but-set-parameter -Wunused-but-set-parameter=n -Wunused-but-set-variable -Wunused-but-set-variable=n -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 -Wuse-after-free -Wuse-after-free=n -Wuseless-cast -Wno-varargs -Wvariadic-macros -Wvector-operation-performance -Wvla -Wvla-larger-than=byte-size -Wno-vla-larger-than -Wvolatile-register-var -Wwrite-strings -Wno-xor-used-as-pow -Wzero-as-null-pointer-constant -Wzero-length-bounds --all-warnings --extra-warnings --no-warnings --pedantic --pedantic-errors.IP " " 4 -fanalyzer -fanalyzer-assume-nothrow -fanalyzer-call-summaries -fanalyzer-checker=name -fno-analyzer-feasibility -fanalyzer-show-events-in-system-headers -fno-analyzer-state-merge -fno-analyzer-state-purge -fno-analyzer-suppress-followups -fanalyzer-transitivity -fno-analyzer-undo-inlining -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-infinite-loop -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-exposure-through-uninit-copy -Wno-analyzer-fd-access-mode-mismatch -Wno-analyzer-fd-double-close -Wno-analyzer-fd-leak -Wno-analyzer-fd-phase-mismatch -Wno-analyzer-fd-type-mismatch -Wno-analyzer-fd-use-after-close -Wno-analyzer-fd-use-without-check -Wno-analyzer-file-leak -Wno-analyzer-free-of-non-heap -Wno-analyzer-imprecise-fp-arithmetic -Wno-analyzer-infinite-loop -Wno-analyzer-infinite-recursion -Wno-analyzer-jump-through-null -Wno-analyzer-malloc-leak -Wno-analyzer-mismatching-deallocation -Wno-analyzer-null-argument -Wno-analyzer-null-dereference -Wno-analyzer-out-of-bounds -Wno-analyzer-overlapping-buffers -Wno-analyzer-possible-null-argument -Wno-analyzer-possible-null-dereference -Wno-analyzer-putenv-of-auto-var -Wno-analyzer-shift-count-negative -Wno-analyzer-shift-count-overflow -Wno-analyzer-stale-setjmp-buffer -Wno-analyzer-tainted-allocation-size -Wno-analyzer-tainted-assertion -Wno-analyzer-tainted-array-index -Wno-analyzer-tainted-divisor -Wno-analyzer-tainted-offset -Wno-analyzer-tainted-size -Wno-analyzer-throw-of-unexpected-type -Wanalyzer-symbol-too-complex -Wanalyzer-too-complex -Wno-analyzer-undefined-behavior-ptrdiff -Wno-analyzer-undefined-behavior-strtok -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-va-arg-type-mismatch -Wno-analyzer-va-list-exhausted -Wno-analyzer-va-list-leak -Wno-analyzer-va-list-use-after-va-end -Wno-analyzer-write-to-const -Wno-analyzer-write-to-string-literal C Objective-C -Wbad-function-cast -Wdeprecated-non-prototype -Wfree-labels -Wmissing-declarations -Wmissing-parameter-name -Wmissing-parameter-type -Wdeclaration-missing-parameter-type -Wmissing-prototypes -Wmissing-variable-declarations -Wmultiple-parameter-fwd-decl-lists -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wstrict-prototypes -Wtraditional -Wtraditional-conversion -Wdeclaration-after-statement -Wpointer-sign -g -glevel -gdwarf -gdwarf-version -gbtf -gctf -gctflevel -gno-prune-btf -ggdb -gno-record-gcc-switches -gstrict-dwarf -gas-loc-support -gas-locview-support -gcodeview -gcolumn-info -gdwarf32 -gdwarf64 -gno-statement-frontiers -gno-variable-location-views -gvariable-location-views=incompat5 -ginternal-reset-location-views -ginline-points -gvms -gz[=type] -gsplit-dwarf -gdescribe-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 -fvar-tracking-uninit --debug -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]]]] -fmin-function-alignment=[n] -fno-allocation-dce -fallow-store-data-races -fassociative-math -fauto-profile -fauto-profile[=path] -fauto-profile-inlining -fauto-inc-dec -fbranch-probabilities -fcaller-saves -fcombine-stack-adjustments -fconserve-stack -ffold-mem-offsets -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules -fcx-limited-range -fcx-method -fdata-sections -fdce -fdelayed-branch -fdelete-null-pointer-checks -fdep-fusion -fdevirtualize -fdevirtualize-speculatively -fdevirtualize-at-ltrans -fdse -fearly-inlining -fexcess-precision=style -fexpensive-optimizations -fext-dce -ffast-math -ffat-lto-objects -ffinite-loops -ffinite-math-only -ffloat-store -fforward-propagate -ffp-contract=style -ffp-int-builtin-inexact -ffunction-sections -ffuse-ops-with-volatile-access -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity -fgcse-sm -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining -finline-atomics -finline-functions -finline-functions-called-once -finline-limit=n -finline-small-functions -finline-stringops[=fn] -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-reorder-for-locality -fipa-sra -fipa-stack-alignment -fipa-icf -fipa-icf-functions -fipa-icf-variables -fira-algorithm=algorithm -flate-combine-instructions -flifetime-dse -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=n -flto-toplevel-asm-heuristics -flto-partition=alg -flto-incremental=path -flto-incremental-cache-size=n -fmalloc-dce -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-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-crc -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 -fspeculatively-call-stored-functions -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-cselim -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 -O -O0 -O1 -O2 -O3 -Os -Ofast -Og -Oz --optimize.IP " " 4 -p -pg -fprofile-arcs -coverage -ftest-coverage -fcondition-coverage -fpath-coverage -fprofile -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 -fsanitize-trap -fsanitize-trap=style -fasan-shadow-offset=number -fsanitize-sections=s1,s2,... -fsanitize-undefined-trap-on-error -fcf-protection -fcf-protection=[full|branch|return|none|check] -fharden-compares -fharden-conditional-branches -fhardened -fharden-control-flow-redundancy -fhardcfr-skip-leaf -fhardcfr-check-exceptions -fhardcfr-check-returning-calls -fhardcfr-check-noreturn-calls=[always|no-xthrow|nothrow|never] -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 -fstrub=disable -fstrub=strict -fstrub=relaxed -fstrub=all -fstrub=at-calls -fstrub=internal -fvtable-verify=[std|preinit|none] -fvtv-counts -fvtv-debug -finstrument-functions -finstrument-functions-once -finstrument-functions-exclude-function-list=sym,sym,... -finstrument-functions-exclude-file-list=file,file,... -fprofile-prefix-map=old=new -fpatchable-function-entry=N[,M] --coverage --profile -C -CC -Dmacro[=defn] -dD -dI -dM -dN -dU -fdebug-cpp -fdirectives-only -fdollars-in-identifiers -fexec-charset=charset -fextended-identifiers -finput-charset=charset -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 --comments --comments-in-macros --define-macro=macro[=defn] --dependencies --dump=letters --imacros=file --include=file --no-integrated-cpp --no-line-commands --print-missing-file-dependencies --traditional --traditional-cpp --trigraphs --trace-includes --undefine-macro=macro --user-dependencies --write-dependencies --write-user-dependencies -Wa,option -Xassembler option --for-assembler=option object-file-name -flink-libatomic -fuse-ld=linker -llibrary -nostartfiles -nodefaultlibs -nolibc -nostdlib -nostdlib++ -e entry -pie -pthread -r -rdynamic -s -static -static-pie -static-libgcc -static-libstdc++ -static-libasan -static-libhwasan -static-liblsan -static-libtsan -static-libubsan -shared -shared-libgcc -symbolic -T script -Wl,option -Xlinker option -u symbol -Tbss=addr -Tdata=addr -Ttext=addr -N -n -t -Z -z keyword --entry=entry --for-linker=option --force-link=symbol --no-standard-library --pie --static --static-pie --symbolic -Bprefix -Idir -I- -idirafter dir -imacros file -imultilib dir -imultiarch dir -iplugindir=dir -iprefix file -iquote dir -isysroot dir -isystem dir -iwithprefix dir -iwithprefixbefore dir -Ldir -no-canonical-prefixes --no-sysroot-suffix -nostdinc -nostdinc++ --embed-dir=dir --embed-directory=dir --include-barrier --include-directory=dir --include-directory-after=dir --include-prefix=prefix --include-with-prefix=prefix --include-with-prefix-after=prefix --include-with-prefix-before=prefix --no-canonical-prefixes --no-standard-includes --prefix=prefix --sysroot=dir -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 -ftrampoline-impl=[stack|heap] -ftrapv -fwrapv -fwrapv-pointer -fvisibility=[default|internal|hidden|protected] -fstrict-volatile-bitfields -fsync-libcalls -fzero-init-padding-bits=value -Qy -Qn -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-internal-locations -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] -fmultiflags -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-autofdo-gcov-version -print-file-name=library -print-libgcc-file-name -print-multi-directory -print-multi-lib -print-multi-os-directory -print-multiarch -print-prog-name=program -print-search-dirs -Q -print-sysroot -print-sysroot-headers-suffix -save-temps -save-temps=cwd -save-temps=obj -specs=file -time[=file] --dump=letters --print-autofdo-gcov-version --print-file-name=library --print-libgcc-file-file-name --print-multi-directory --print-multi-lib --print-multi-os-directory --print-multiarch --print-prog-name=program --print-search-dirs --print-sysroot --print-sysroot-headers-suffix --save-temps --specs=file --param name=value AArch64 (AArch64 Options) -mabi=name -mbig-endian -mlittle-endian -menable-sysreg-checking -mgeneral-regs-only -mcmodel=tiny -mcmodel=small -mcmodel=large -mstrict-align -momit-leaf-frame-pointer -mtls-dialect=desc -mtls-dialect=traditional -mtls-size=size -mtp=name -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 -mlow-precision-recip-sqrt -mlow-precision-sqrt -mlow-precision-div -mmax-vectorization -mautovec-preference=name -mpc-relative-literal-loads -msign-return-address=scope -mbranch-protection=features -mharden-sls=opts -march=name -mcpu=name -mtune=name -moverride=string -mstack-protector-guard=guard -mstack-protector-guard-reg=sysreg -mstack-protector-guard-offset=offset -mtrack-speculation -moutline-atomics -mearly-ra -mearly-ldp-fusion -mlate-ldp-fusion -mnarrow-gp-writes -msve-vector-bits=bits Adapteva Epiphany (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 -mmay-round-for-trunc -mfp-iarith -mvect-double -max-vect-align=num -msplit-vecmove-early -m1reg-reg AMD GCN (AMD GCN Options) -march=gpu -mtune=gpu -mgang-private-size=bytes -msram-ecc=[on|off|any] -mxnack=[on|off|any] -Wopenacc-dims ARC (ARC Options) -mbarrel-shifter -mjli-always -mcpu=cpu -mA6 -mARC600 -mA7 -mARC700 -mdpfp -mdpfp-compact -mdpfp-fast -mno-dpfp-lrsr -mea -mmul32x16 -mmul64 -matomic -mnorm -mspfp -mspfp-compact -mspfp-fast -msimd -msoft-float -mswap -mlock -mswape -mxy -misize -marclinux -marclinux_prof -mlong-calls -mmedium-calls -msdata -mirq-ctrl-saved -mrgf-banked-regs -mlpc-width=width -G num -mvolatile-cache -mtp-regno=regno -mbitops -mcmem -munaligned-access -mauto-modify-reg -mno-brcc -mcase-vector-pcrel -mno-cond-exec -mearly-cbranchsi -mindexed-loads -mlra-priority-none -mlra-priority-compact -mlra-priority-noncompact -mmillicode -msize-level=level -mtune=cpu -mmultcost=num -mcode-density-frame -mmpy-option=multo -mdiv-rem -mcode-density -mll64 -mfpu=fpu -mrf16 -mbranch-index ARM (ARM Options) -mapcs-frame -mapcs -mabi=name -mgeneral-regs-only -mno-sched-prolog -mlittle-endian -mbig-endian -mbe8 -mbe32 -mfloat-abi=name -mfp16-format=name -mthumb-interwork -mcpu=name -march=name -mfpu=name -mtune=name -mstructure-size-boundary=n -mabort-on-noreturn -mlong-calls -msingle-pic-base -mpic-register=reg -mpic-data-is-text-relative -mnop-fun-dllimport -mpoke-function-name -mthumb -marm -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 -mslow-flash-data -masm-syntax-unified -mrestrict-it -mpure-code -mcmse -mfix-cmse-cve-2021-35465 -mstack-protector-guard=guard -mstack-protector-guard-offset=offset -mfdpic -mbranch-protection=features -mvectorize-with-neon-quad -mvectorize-with-neon-double.Sp AVR (AVR Options) -mmcu=mcu -mabsdata -maccumulate-args -mcvt -mbranch-cost=cost -mfuse-add=level -mfuse-move=level -mfuse-move2 -mcall-prologues -mgas-isr-prologues -mint8 -mflmap -mdouble=bits -mlong-double=bits -mno-call-main -mn_flash=size -mfract-convert-truncate -mno-interrupts -mmain-is-OS_task -mrelax -mpmem-wrap-around -mrmw -mstrict-X -mtiny-stack -mrodata-in-ram -msplit-bit-shift -msplit-ldst -mshort-calls -mskip-bug -muse-nonzero-bits -nodevicelib -nodevicespecs -Waddr-space-convert -Wmisspelled-isr Blackfin (Blackfin Options) -mcpu=cpu[-sirevision] -msim -momit-leaf-frame-pointer -mspecld-anomaly -mcsync-anomaly -mlow-64k -mstack-check-l1 -mid-shared-library -mleaf-id-shared-library -mshared-library-id=n -msep-data -mlong-calls -mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram -micplb C6X (C6X Options) -mbig-endian -mlittle-endian -march=cpu -msim -msdata=sdata-type -mdsbt -mlong-calls CRIS (CRIS Options) -mcpu=cpu -march=cpu -mtune=cpu -mmax-stackframe=n -metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects -mstack-align -mdata-align -mconst-align -m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mbest-lib-options -moverride-best-lib-options -mtrap-using-break8 -mtrap-unaligned-atomic -munaligned-atomic-may-use-library -sim -sim2 -mmul-bug-workaround C-SKY (C-SKY Options) -march=arch -mcpu=cpu -mbig-endian -mlittle-endian -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 -msched-prolog -msim Cygwin MinGW (Cygwin and MinGW Options) -mconsole -mcrtdll=library -mdll -mnop-fun-dllimport -mthreads -municode -mwin32 -mwindows -fno-set-stack-executable -fwritable-relocated-rdata -mpe-aligned-commons -muse-libstdc-wrappers Darwin (Darwin Options) -all_load -allowable_client -arch name -arch_errors_fatal -asm_macosx_version_min=version -bind_at_load -bundle -bundle_loader -client_name -compatibility_version -current_version -dead_strip -dependency-file -dylib_file -dylinker -dylinker_install_name -dynamic -dynamiclib -exported_symbols_list -fapple-kext -fconstant-cfstrings -ffix-and-continue -filelist -findirect-data -flat_namespace -force_cpusubtype_ALL -force_flat_namespace -framework name -gfull -gused -headerpad_max_install_names -iframework -image_base -init symbol-name -install_name -keep_private_externs -matt-stubs -mconstant-cfstrings -mdynamic-no-pic -mfix-and-continue -mkernel -mmacosx-version-min=version -mone-byte-bool -msymbol-stubs -mtarget-linker[=]version -nodefaultexport -nodefaultrpaths -pagezero_size -preload -read_only_relocs -sectalign -sectcreate -seg_addr_table -seg1addr -segaddr -segprot -segs_read_only_addr -segs_read_write_addr -sub_library -sub_umbrella -twolevel_namespace -twolevel_namespace_hints -umbrella -undefined -unexported_symbols_list -weak_framework name -weak_reference_mismatches -whatsloaded -whyload -F -ObjC -ObjC++ -Wnonportable-cfstrings DEC Alpha (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 -msafe-bwa -msafe-partial -mfloat-vax -mfloat-ieee -mexplicit-relocs -msmall-data -mlarge-data -msmall-text -mlarge-text -mmemory-latency=time -mtls-kernel -mtls-size=bitsize -mlong-double-128 -mlong-double-64 eBPF (eBPF Options) -mbig-endian -mlittle-endian -mframe-limit=bytes -mxbpf -mco-re -mjmpext -mjmp32 -malu32 -mv3-atomics -mbswap -msdiv -msmov -mcpu=version -masm=dialect -minline-memops-threshold=bytes -Wco-re FR30 (FR30 Options) -msmall-model -mno-lsim FRV (FRV Options) -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -mhard-float -msoft-float -malloc-cc -mfixed-cc -mdword -mdouble -mmedia -mmuladd -mfdpic -minline-plt -mgprel-ro -multilib-library-pic -mlinked-fp -mlong-calls -malign-labels -mlibrary-pic -macc-4 -macc-8 -mpack -mno-eflags -mno-cond-move -mno-optimize-membar -mno-scc -mno-cond-exec -mno-vliw-branch -mno-multi-cond-exec -mno-nested-cond-exec -mtomcat-stats -mTLS -mtls -mcpu=cpu FT32 (FT32 Options) -msim -mnodiv -mft32b -mcompress -mnopm GNU/Linux (GNU/Linux Options) -mglibc -muclibc -mmusl -mbionic -mandroid -tno-android-cc -tno-android-ld H8/300 (H8/300 Options) -mrelax -mh -ms -mn -msx -ms2600 -mquickcall -mslowbyte -mexr -mint32 -malign-300 HPPA (HPPA Options) -march=architecture-type -mno-atomic-libcalls -mcaller-copies -mdisable-fpregs -mdisable-indexing -mordered -mfast-indirect-calls -mgas -mgnu-ld -mhp-ld -mfixed-range=register-range -mcoherent-ldcw -mlinker-opt -mlong-calls -mlong-load-store -mno-space-regs -msoft-float -mpa-risc-1-0 -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime -mschedule=cpu-type -msoft-mult -msio -mwsio -munix=unix-std -nolibdld -static -threads IA-64 (IA-64 Options) -mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic -mvolatile-asm-stop -mregister-names -msdata -mconstant-gp -mauto-pic -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-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 (LM32 Options) -mbarrel-shift-enabled -mdivide-enabled -mmultiply-enabled -msign-extend-enabled -muser-enabled LoongArch (LoongArch Options) -march=arch-type -mtune=tune-type -mabi=base-abi-type -mfpu=fpu-type -msimd=simd-type -msoft-float -msingle-float -mdouble-float -mlsx -mlasx -mbranch-cost=n -maddr-reg-reg-cost=n -mcheck-zero-division -mbreak-code=code -mcond-move-int -mcond-move-float -memcpy -mstrict-align -G num -mmax-inline-memcpy-size=n -mexplicit-relocs=style -mexplicit-relocs -mno-explicit-relocs -mdirect-extern-access -mcmodel=code-model -mrelax -mpass-mrelax-to-as -mrecip -mrecip=opt -mfrecipe -mdiv32 -mlam-bh -mlamcas -mld-seq-sa -mscq -mtls-dialect=opt -mannotate-tablejump LynxOS (LynxOS Options) -mshared -mthreads -mlegacy-threads M32C (M32C Options) -mcpu=cpu -msim -memregs=number M32R/D (M32R/D Options) -m32r2 -m32rx -m32r -mdebug -malign-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 M680x0 (M680x0 Options) -march=arch -mcpu=cpu -mtune=tune -m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 -m68060 -m68302 -m68332 -m68851 -mcpu32 -mfidoa -m5200 -m5206e -m528x -m5307 -m5407 -mcfv4e -mbitfield -mc68000 -mc68020 -mrtd -mdiv -mshort -mhard-float -m68881 -msoft-float -mpcrel -malign-int -mstrict-align -msep-data -mshared-library-id=n -mid-shared-library -mxgot -mxtls -mlong-jump-table-offsets MCore (MCore Options) -mhardlit -mdiv -mrelax-immediates -mwide-bitfields -m4byte-functions -mcallgraph-data -mslow-bytes -mno-lsim -mlittle-endian -mbig-endian -m210 -m340 -mstack-increment MicroBlaze (MicroBlaze Options) -msoft-float -mhard-float -msmall-divides -mcpu=cpu -mmemcpy -mxl-soft-mul -mxl-soft-div -mxl-barrel-shift -mxl-pattern-compare -mxl-gp-opt -mxl-multiply-high -mxl-float-convert -mxl-float-sqrt -mbig-endian -mlittle-endian -mxl-reorder -mxl-mode-app-model -mxl-prefetch -mpic-data-is-text-relative MIPS (MIPS Options) -EL -EB -mel -meb -march=arch -mtune=arch -mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 -mips32r3 -mips32r5 -mips32r6 -mips64 -mips64r2 -mips64r3 -mips64r5 -mips64r6 -mips16 -mmips16e2 -mflip-mips16 -minterlink-compressed -minterlink-mips16 -mabi=abi -mabicalls -mshared -mplt -mxgot -mgp32 -mgp64 -mfp32 -mfpxx -mfp64 -mhard-float -msoft-float -mno-float -msingle-float -mdouble-float -modd-spreg -mabs=mode -mnan=encoding -mdsp -mdspr2 -mmcu -meva -mvirt -mxpa -mcrc -mginv -mmicromips -mmsa -mloongson-mmi -mloongson-ext -mloongson-ext2 -mfpu=fpu-type -msmartmips -mpaired-single -mdmx -mips3d -mmt -mllsc -mlong64 -mlong32 -msym32 -Gnum -mno-local-sdata -mno-extern-sdata -mno-gopt -membedded-data -muninit-const-in-rodata -mcode-readable=setting -mno-data-in-code -mcode-xonly -msplit-addresses -mexplicit-relocs -mexplicit-relocs=release -mno-check-zero-division -mdivide-traps -mdivide-breaks -mno-load-store-pairs -mstrict-align -mno-unaligned-access -mmemcpy -mlong-calls -mmad -mimadd -mno-fused-madd -nocpp -mfix-24k -mfix-r4000 -mfix-r4400 -mfix-r5900 -mfix-r10000 -mfix-rm7000 -mfix-vr4120 -mfix-vr4130 -mfix-sb1 -mfix4300 -mr10k-cache-barrier=setting -mflush-func=func -mno-flush-func -mbranch-cost=num -mbranch-likely -mcompact-branches=policy -mno-fp-exceptions -mvr4130-align -msynci -mno-lxc1-sxc1 -mno-madd4 -mno-relax-pic-calls -mmcount-ra-address -mframe-header-opt.Sp MMIX ( MMIX) -mlibfuncs -mepsilon -mabi=gnu -mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols -melf -mbranch-predict -mbase-addresses -msingle-exit -mset-data-start=address -mset-program-start=address -mno-set-program-start MN10300 ( MN10300) -mmult-bug -mno-mult-bug -mam33 -mam33-2 -mam34 -mtune=cpu-type -mno-return-pointer-on-d0 -mno-crt0 -mrelax -mno-liw -mno-setlb Moxie ( Moxie) -meb -mel -mmul.x -mno-crt0 MSP430 ( MSP430) -msim -masm-hex -mmcu=name -mlarge -msmall -mrelax -mwarn-mcu -mwarn-devices-csv -mcode-region=where -mdata-region=where -muse-lower-region-prefix -msilicon-errata=name[,name...] -msilicon-errata-warn=name[,name...] -mhwmult=type -minrt -mtiny-printf -mmax-inline-shift=n NDS32 ( NDS32) -mbig-endian -mlittle-endian -EB -EL -mabi=name -mfloat-abi=name -mreduced-regs -mfull-regs -malways-align -malign-functions -mfp-as-gp -mcmov -mhw-abs -mext-perf -mext-perf2 -mext-string -mext-dsp -mext-fpu-fma -mext-fpu-sp -mext-fpu-dp -mv3push -m16-bit -mvh -misr-vector-size=num -misr-secure=num -mcache-block-size=num -march=arch -mcpu=cpu -mconfig-fpu=num -mconfig-mul=type -mconfig-register-ports=kind -mcmodel=code-model -mctor-dtor -mrelax -mrelax-hint -msched-prolog-epilog -mno-ret-in-naked-func -malways-save-lp -munaligned-access -minline-asm-r15 Nvidia PTX ( Nvidia PTX) -m64 -march=arch -misa=arch -march-map=arch -mptx=version -mmainkernel -moptimize -msoft-stack -msoft-stack-reserve-local=size -muniform-simt -mgomp OpenRISC ( OpenRISC) -mboard=name -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 ( PDP-11) -mfpu -msoft-float -mac0 -m40 -m45 -m10 -mint32 -mint16 -msplit -munix-asm -mdec-asm -mgnu-asm -mlra Picolibc ( Picolibc) --oslib=library --crt0=[none|minimal|hosted|semihost] --printf=[d|f|l|i|m] --scanf=[d|f|l|i|m] PowerPC RS/6000 PowerPC . PRU ( PRU) -mmcu=mcu -minrt -mno-relax -mloop -mmul -mfillzero -mabi=variant RISC-V ( RISC-V) -mbranch-cost=N-instruction -mabi=ABI-string -mfdiv -mdiv -mno-fence-tso -misa-spec=ISA-spec-string -march=[ISA|Profile|Profile_ISA|processor-string] -mcpu=processor-string -mtune=processor-string -mpreferred-stack-boundary=num -msmall-data-limit=N-bytes -msave-restore -mno-shorten-memrefs -mstrict-align -mscalar-strict-align -mno-vector-strict-align -mcmodel=medlow -mcmodel=medany -mcmodel=large -mexplicit-relocs -mrelax -mriscv-attribute -malign-data=type -mbig-endian -mlittle-endian -mstack-protector-guard=guard -mstack-protector-guard-reg=reg -mstack-protector-guard-offset=offset -mcsr-check -momit-leaf-frame-pointer -mmovcc -mno-inline-atomics -mno-inline-strlen -mno-inline-strcmp -mno-inline-strncmp -mstringop-strategy=strategy -mtls-dialect=desc -mtls-dialect=trad -mrvv-vector-bits=value -mrvv-max-lmul=value -madjust-lmul-cost -mmax-vectorization -mno-autovec-segment RL78 ( RL78) -msim -mallregs -mrelax -mes0 -mmul=none -mmul=g13 -mmul=g14 -mmul=rl78 -mcpu=g10 -mcpu=g13 -mcpu=g14 -mcpu=rl78 -mg10 -mg13 -mg14 -mrl78 -msave-mduc-in-interrupts RS/6000 PowerPC ( RS/6000 PowerPC) -mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model -mprofile-kernel -mpowerpc64 -maltivec -mpowerpc-gpopt -mpowerpc-gfxopt -mmfcrf -mpopcntb -mpopcntd -mfprnd -mcmpb -mhard-dfp -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc -maix64 -maix32 -m64 -m32 -mxl-compat -mpe -malign-power -malign-natural -msoft-float -mhard-float -mmultiple -mupdate -mavoid-indexed-addresses -mfused-madd -mbit-align -mbit-word -mstrict-align -mrelocatable -mrelocatable-lib -mlittle -mlittle-endian -mbig -mbig-endian -mdynamic-no-pic -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 -msplit-patch-nops -mregnames -mlongcall -mpltseq -mtls-markers -mblock-move-inline-limit=num -mblock-compare-inline-limit=num -mblock-compare-inline-loop-limit=num -mblock-ops-unaligned-vsx -mstring-compare-inline-limit=num -misel -mvsx -mvrsave -mmulhw -mdlmzb -mprototype -msim -mmvme -mads -myellowknife -memb -meabi -msdata -msdata=opt -mreadonly-in-sdata -mvxworks -G num -mrecip -mrecip=opt -mno-recip -mrecip-precision -mveclibabi=type -mfriz -mpointers-to-nested-functions -msave-toc-indirect -mpower8-fusion -mcrypto -mhtm -mquad-memory -mquad-memory-atomic -mcompat-align-parm -mfloat128 -mfloat128-hardware -mgnu-attribute -mstack-protector-guard=guard -mstack-protector-guard-reg=reg -mstack-protector-guard-offset=offset -mprefixed -mpcrel -mmma -mdense-math -mrop-protect -mprivileged -mno-splat-word-constant -mno-splat-float-constant -mno-ieee128-constant -mno-warn-altivec-long RX ( RX) -m64bit-doubles -m32bit-doubles -fpu -nofpu -mcpu=name -mbig-endian-data -mlittle-endian-data -msmall-data-limit=N -msim -mas100-syntax -mrelax -mmax-constant-size=N -mint-register=N -mpid -mno-allow-string-insns -mjsr -mno-warn-multiple-fast-interrupts -msave-acc-in-interrupts -mlra S/390 zSeries ( S/390 zSeries) -mtune=cpu-type -march=cpu-type -mhard-float -msoft-float -mhard-dfp -mlong-double-64 -mlong-double-128 -mbackchain -mpacked-stack -msmall-exec -mmvcle -m64 -m31 -mdebug -mesa -mzarch -mhtm -mvx -mzvector -mtpf-trace -mtpf-trace-skip -mmain -mfused-madd -mno-fused-madd -mwarn-framesize=framesize -mwarn-dynamicstack -mstack-size=stack-size -mno-stack-size -mstack-guard=stack-guard -mno-stack-guard -mstack-protector-guard=guard -mstack-protector-guard-record -mhotpatch=pre-halfwords,post-halfwords -mno-pic-data-is-text-relative -mindirect-branch=choice -mindirect-branch-jump=choice -mindirect-branch-call=choice -mfunction-return=choice -mfunction-return-mem=choice -mfunction-return-reg=choice -mindirect-branch-table -mfentry -mrecord-mcount -mnop-mcount -mpreserve-args -munaliged-symbols SH ( SH) -m1 -m2 -m2e -m2a -m2a-nofpu -m2a-single -m2a-single-only -m3 -m3e -m4 -m4-nofpu -m4-single -m4-single-only -m4-100 -m4-100-nofpu -m4-100-single -m4-100-single-only -m4-200 -m4-200-nofpu -m4-200-single -m4-200-single-only -m4-300 -m4-300-nofpu -m4-300-single -m4-300-single-only -m4-340 -m4-400 -m4-500 -m4a -m4al -m4a-nofpu -m4a-single -m4a-single-only -mb -ml -mdalign -mrelax -mbigtable -mbitops -mfmovd -mrenesas -mnomacsave -mieee -misize -minline-ic_invalidate -mprefergot -musermode -multcost=number -mdiv=strategy -mdivsi3_libfunc=name -mfixed-range=register-range -maccumulate-outgoing-args -matomic-model=atomic-model -mbranch-cost=num -mzdcbranch -mcbranch-force-delay-slot -mfsca -mfsrra -mpretend-cmove -mfdpic -mtas -mlra Solaris 2 ( Solaris 2) -mclear-hwcap -mno-clear-hwcap -mimpure-text -mno-impure-text -gsctf SPARC ( SPARC) -mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model -mmemory-model=mem-model -m32 -m64 -mptr32 -mptr64 -mapp-regs -mfaster-structs -mflat -mfpu -mhard-float -msoft-float -mhard-quad-float -msoft-quad-float -mstack-bias -mstd-struct-return -munaligned-doubles -muser-mode -mv8plus -mvis -mvis2 -mvis3 -mvis3b -mvis4 -mvis4b -mcbcond -mfmaf -mfsmuld -mpopc -msubxc -mfix-at697f -mfix-ut699 -mfix-ut700 -mfix-gr712rc System V ( System V) -YP,paths -Ym,dir V850 ( V850) -mlong-calls -mep -mprolog-function -mspace -mtda=n -msda=n -mzda=n -mv850 -mv850e3v5 -m850e2v4 -mv850e2v3 -mv850e2 -mv850e1 -mv850es -mv850e -mdisable-callt -mrelax -mlong-jumps -msoft-float -mhard-float -mloop -mrh850-abi -mghs -mgcc-abi -m8byte-align -mbig-switch -mapp-regs -msmall-sld -mno-strict-align -mjump-tables-in-data-section VAX ( VAX) -munix -mgnu -md -md-float -mg -mg-float -mlra -mvaxc-alignment -mqmath.Sp Visium (Visium Options) -mdebug -msim -mfpu -mhard-float -msoft-float -mcpu=cpu-type -mtune=cpu-type -msv-mode -muser-mode VMS (VMS Options) -mvms-return-codes -mdebug-main=prefix -mmalloc64 -mpointer-size=size VxWorks (VxWorks Options) -mrtp -msmp -mvthreads -non-static -Bstatic -Bdynamic -Xbind-lazy -Xbind-now x86 (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 -mieee-fp -mrtd -malign-double -mpreferred-stack-boundary=num -mincoming-stack-boundary=num -mcld -mcx16 -msahf -mmovbe -mcrc32 -mmwait -mrecip -mrecip=opt -mvzeroupper -mstv -mprefer-avx128 -mprefer-vector-width=opt -mpartial-vector-fp-math -mmove-max=bits -mstore-max=bits -mnoreturn-no-callee-saved-registers -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi -msha -maes -mpclmul -mfsgsbase -mrdrnd -mf16c -mfma -mpconfig -mwbnoinvd -mptwrite -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 -mgfni -mvaes -mwaitpkg -mshstk -mmanual-endbr -mcet-switch -mforce-indirect-call -mavx512vbmi2 -mavx512bf16 -menqcmd -mvpclmulqdq -mavx512bitalg -mmovdiri -mmovdir64b -mavx512vpopcntdq -mavx512vnni -mprfchw -mrdpid -mrdseed -msgx -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -muintr -mhreset -mavxvnni -mamx-fp8 -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mapxf -musermsr -mavx10.1 -mavx10.2 -mamx-avx512 -mamx-tf32 -mmovrs -mamx-movrs -mavx512bmm -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 -mdaz-ftz -mstackrealign -mstack-arg-probe -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 -mrecord-return -mfentry-name=name -mfentry-section=name -mskip-rax-setup -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 -mtls-dialect=type -mrelax-cmpxchg-loop -mindirect-branch=choice -mfunction-return=choice -mindirect-branch-register -mharden-sls=choice -mindirect-branch-cs-prefix -mapx-inline-asm-use-gpr32 -mgather -mscatter -mneeded -mno-direct-extern-access -munroll-only-small-loops -mdispatch-scheduler -mlam=choice x86 Cygwin MinGW . Xstormy16 (Xstormy16 Options) -msim Xtensa (Xtensa Options) -mconst16 -mforce-no-pic -mno-serialize-volatile -mtext-section-literals -mauto-litpools -mno-target-align -mlongcalls -mabi=abi-type -mextra-l32r-costs=cycles -mstrict-align zSeries S/390 zSeries ..SS " (Options Controlling the Kind of Output)" : . GCC (object file) ( ) . : file.c C . file.i C . file.ii ++C . file.m Objective-C. Objective-C libobjc . file.mi Objective-C . file.mm file.M ++Objective-C. ++Objective-C libobjc . .M M . file.mii ++Objective-C . file.h (header) C ++C Objective-C ++Objective-C () C ++C Ada ( -fdump-ada-spec). file.cc file.cp file.cxx file.cpp file.CPP file.c++ file.C ++C . .cxx x . .C C . file.mm file.M ++Objective-C . file.mii ++Objective-C . file.hh file.H file.hp file.hxx file.hpp file.HPP file.h++ file.tcc ++C Ada. file.f file.for file.ftn file.fi Fortran (fixed form) . file.F file.FOR file.fpp file.FPP file.FTN Fortran ( ). file.f90 file.f95 file.f03 file.f08 file.fii Fortran (free form) . file.F90 file.F95 file.F03 file.F08 Fortran ( ). file.cob file.COB file.cbl file.CBL COBOL. file.go Go. file.d D. file.di (interface) D. file.dd D ( Ddoc). file.ads Ada ( generic generic) ( generic ). specs . file.adb Ada ( ). bodies . file.s ..IP file.S 4 file.sx . other . . -x : -x language --language=language --language language (language) ( ). -x . language : c c-header cpp-output c++ c++-header c++-system-header c++-user-header c++-cpp-output c++-system-module objective-c objective-c-header objective-c-cpp-output objc-cpp-output objective-c++ objective-c++-header objective-c++-cpp-output objc++-cpp-output assembler assembler-with-cpp ada adascil adawhy cobol d f77 f77-cpp-input f95 f95-cpp-input go modula-2 modula-2-cpp-output rust algol68 lto -x . -x f77 -std=legacy . -x none ( -x ). -x ( ) gcc -c -S -E gcc . ( -x cpp-output -E) gcc . -c --compile . . . .c .i .s .o . . -S --assemble (assemble) . . .c .i .s . . -E --preprocess . . . -o file --output=file --output file file . C . -o a.out source.suffix source.o source.s source.suffix.gch C . -o (dump) . . . . ( ) . ( ) . gcc -c foo.c ... foo.o foo.dwo -gsplit-dwarf foo.c.???r.final -fdump-rtl-final. : gcc -c foo.c -o dir/foobar.o ... dir/foobar.* dir/foobar.c.* . : gcc foo.c bar.c -o dir/foobar ... dir/foobar-foo.* dir/foobar-bar.* dir/foobar-foo.c.* dir/foobar-bar.c.* . : gcc foo.c -o dir/foo ... dir/foo.* dir/foo.c.* . -dumpbase -dumpbase-ext -dumpdir -save-temps=cwd -save-temps=obj . -dumpbase dumpbase --dumpbase dumpbase . . : gcc -save-temps -S foo.c ( ) foo.i () foo.s : gcc -save-temps -dumpbase save-foo -c foo.c save-foo.i save-foo.s ( ) () foo.o . dump (aux) ( ) : dump ( -fdump-* ) ( dump "-save-temps" "-gsplit-dwarf" "-fcallgraph-info") . dump -dumpbase basename.suf -dumpbase-ext .suf . dumpbase dumppfx ( -dumpdir -save-temps=*) dumpbase : gcc foo.c -c -o dir/foo.o -dumpbase alt/foo \ -dumpdir pfx- -save-temps=cwd ... dump alt/foo.* dir/ -o ./ -save-temps=cwd pfx- -dumpdir . -dumpbase dumppfx -dumpdir . dumppfx dumpbase auxdropsuf : gcc foo.c bar.c -c -dumpbase main ... foo.o bar.o dumpbase dump dump main-foo.* main-bar.* . dumpbase dump : gcc -c foo.c -o dir/foobar.o -dumpbase " ... dir/foo.* dump dir/foo.c.* . . dumpbase : gcc foo.c bar.c -o dir/foobar -dumpbase " -flto ... dir/foo.* dir/bar.* dump dir/foo.c.* dir/bar.c.* . LTO dir/foobar. dump . -dumpbase-ext auxdropsuf --dumpbase-ext auxdropsuf ( dump) auxdropsuf dumpbase . dumpbase -dumpbase dumpbase dumppfx . gcc foo.c -c -o dir/foo.o -dumpbase x-foo.c -dumpbase-ext .c ... dir/foo.o dir/x-foo.* .c dumpbase . dump : dir/x-foo.c.*. dumpbase dumppfx : gcc foo.c bar.c -o main.out -dumpbase-ext .out ... main.out auxdropsuf dump main-foo.* main-bar.* dump main-foo.c.* main-bar.c.* . -dumpdir dumppfx --dumpdir dumppfx dump dumppfx : gcc -dumpdir pfx- -c foo.c ... foo.o pfx-foo.* dumppfx dumpbase ( ) . dump : pfx-foo.c.*. dumppfx : gcc -dumpdir dir/ -c foo.c -o obj/bar.o ... obj/bar.o dir/bar.* dumppfx dumpbase . dump : dir/bar.c.*. "/dev/null" . -save-temps=cwd -save-temps=obj -dumpdir . : gcc -dumpdir pfx- -c foo.c -save-temps=obj ... foo.o foo.* -save-temps=* dumppfx -dumpdir . =obj -save-temps . dump foo.c.* . -dumpbase dumpbase auxdropsuf dumppfx ( ) dump . gcc foo.c bar.c -c -dumpdir dir/pfx- -dumpbase main ... dump dir/pfx-main-foo.* dir/pfx-main-bar.* dumpbase- dumppfx . dump : dir/pfx-main-foo.c.* dir/pfx-main-bar.c.*. : gcc foo.c -c -dumpdir dir/pfx- -dumpbase main ... -dumpbase dumpbase . dump dir/pfx-main.* . dumppfx dumpbase ( foo.c bar.c -c). -dumpdir -dumpbase auxdropsuf ( ) ( ) dumppfx . : gcc foo.c bar.c -dumpdir dir/pfx- -o main ... main dumppfx -dumpdir . dumppfx -dumpbase . dumppfx . -dumpdir -save-temps=* : gcc foo.c -dumpdir alt/pfx- -o dir/main.exe -save-temps=cwd ... foo.* dump foo.c.* -save-temps=cwd . : (basename) dumppfx -dumpdir -save-temps=* dumpbase -dumpbase . dumpbase dumppfx . dumppfx dumpbase dump dumpbase . dump LTO dumppfx dumpbase ( ) ( ) -dumpdir lto-wrapper -dumpbase -dumpbase-ext . lto-wrapper LTO dumppfx -dumpdir -dumpbase . -v --verbose ( ) . . -### -v - "./-_" . . --help gcc ( ) . -v --help gcc . -Wextra ( --help) . --target-help ( ) . . --help={class|[^]qualifier}[,...] ( ) . : optimizers . warnings . target . --target-help --help= . params --param . language language language GCC . common . common . : undocumented . joined : --help=target. separate : -o output-file. : --help=target,undocumented ^ ( ) : --help=warnings,^joined,^undocumented --help= . . target . : --help=target,optimizers --help= . . --help --help= . -Q --help= --help= . ( --help= ). ARM gcc : % gcc -Q -mabi=2 --help=target -c The following options are target specific: -mabi= 2 -mabort-on-noreturn [disabled] -mapcs [disabled] -O2 : -Q -O2 --help=optimizers -O3 : gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts diff /tmp/O2-opts /tmp/O3-opts | grep enabled --version GCC . -pass-exit-codes --pass-exit-codes gcc . -pass-exit-codes gcc . C C++ Fortran . -pipe --pipe (pipe) . GNU . -wrapper (wrapper) . . gcc -c t.c -wrapper gdb,--args gcc gdb --args cc1 gdb --args cc1 ... . -ffile-prefix-map=old=new old new . -f*-prefix-map . (reproducible builds) . (directives) . : -fmacro-prefix-map -fdebug-prefix-map -fprofile-prefix-map -fcanon-prefix-map. -fcanon-prefix-map -f*-prefix-map old DOS . -fcanon-prefix-map (canonicalized) old . -fplugin=name.so name.so (shared object) dlopen' . ( -fplugin-arg-name-key=value ). (callback) (Plugins API) . -fplugin-arg-name-key=value key value name . -fdump-ada-spec[-slim] (include) C C++ Ada ( Ada specs) . -fada-spec-parent=unit -fdump-ada-spec[-slim] Ada unit . -fdump-go-spec=file Go file . "const" "type" "var" "func" Go Go . @file file . @file . file . file (whitespace) . . ( ) . file @file ..SS " C++ (Compiling C++ Programs)" C++ .C .cc .cpp .CPP .c++ .cp .cxx C++ .hh .hpp .H ( ) .tcc C++ .ii C++20 .ixx .cppm .cxxm .c++m .ccm . GCC C++ C ( gcc) . gcc C++ . g++ GCC (linking) C++ . .c .h .i C C++ -x . C .h C++ . g++ c++ . C++ C C++ . C (Options Controlling C Dialect) C ( C C++ Objective-C Objective-C++) : -ansi --ansi C -std=c90 . C++ -std=c++98 . -std= . C C++ . c90 c++98 GNU gnu90 gnu++98 . GNU . -std=c90 GCC ISO C90 "asm" "typeof" GNU ISO C90 "?:" . GNU . . -Wpedantic GNU . -std=gnu90 -Wpedantic () C++ // -std=gnu99 -Wpedantic . : c90 c89 iso9899:1990 ISO C90 ( GNU ISO C90 ). -ansi C. iso9899:199409 ISO C90 . c99 c9x iso9899:1999 iso9899:199x ISO C99. (floating-point) ( C99 F G) . . c9x iso9899:199x . c11 c1x iso9899:2011 ISO C11 ISO C. ( C11 F G) K ( ) L ( ) . c1x . c17 c18 iso9899:2017 iso9899:2018 ISO C17 ISO C ( ). ( -std=c11 ) "__STDC_VERSION__" C11 C11 . c23 c2x iso9899:2024 ISO C23 ISO C ( ). c2x . c2y ISO C . . gnu90 gnu89 GNU ISO C90 ( C99). gnu99 gnu9x GNU ISO C99. gnu9x . gnu11 gnu1x GNU ISO C11. gnu1x . gnu17 gnu18 GNU ISO C17. gnu23 gnu2x GNU ISO C23. C . gnu2x . gnu2y ISO C GNU. . gnu2x . c++98 c++03 ISO C++ . -ansi C++. gnu++98 gnu++03 GNU -std=c++98. c++11 c++0x ISO C++ . c++0x . gnu++11 gnu++0x GNU -std=c++11. gnu++0x . c++14 c++1y ISO C++ . c++1y . gnu++14 gnu++1y GNU -std=c++14. gnu++1y . c++17 c++1z ISO C++ . c++1z . gnu++17 gnu++1z GNU -std=c++17. gnu++1z . c++20 c++2a ISO C++ . C++20 -fmodules . c++2a . gnu++20 gnu++2a GNU -std=c++20. C++ . C++20 -fmodules . gnu++2a . c++23 c++2b ISO C++ ( ). . c++2b . gnu++23 gnu++2b GNU -std=c++23. . gnu++2b . c++2c c++26 ISO C++ . . gnu++2c gnu++26 GNU -std=c++2c. . -aux-info filename (prototyped) / (translation unit) . C . () ( ) ( I N O ) (C F ). K&R . -fno-asm "asm" "inline" "typeof" . "__asm__" "__inline__" "__typeof__" . C -ansi -fno-asm . C++ "inline" . -fno-gnu-keywords "typeof" "asm" "inline" . C99 (-std=c99 -std=gnu99) "asm" "typeof" "inline" ISO C99 . C23 (-std=c23 -std=gnu23) "asm" "typeof" ISO C23 . -fno-builtin -fno-builtin-function (built-in) __builtin_ . GCC "alloca" "memcpy" (inline) . (breakpoint) . GCC . -Wformat "printf" "printf" "strlen" (global memory) . -fno-builtin-function function . function __builtin_ . GCC . -fbuiltin-function -fno-builtin -ffreestanding : #define abs(n) __builtin_abs ((n)) #define strcpy(d, s) __builtin_strcpy ((d), (s)) -fcond-mismatch . void . C++ . -ffreestanding (freestanding) . -fno-builtin . "main" . . -fno-hosted . -fgimple "__GIMPLE" . GIMPLE . -fgnu-tm -fgnu-tm ABI (Transactional Memory) ( . ) . GCC . . GCC (-fnon-call-exceptions) . -fgnu89-inline -fgnu89-inline GCC C99 GNU "inline" . "gnu_inline" (inline) . -fno-gnu89-inline GCC C99 gnu99 C99 "inline" ( ). -std=c90 -std=gnu90 . "__GNUC_GNU_INLINE__" "__GNUC_STDC_INLINE__" "inline" . -fhosted (hosted) . -fbuiltin . "main" "int" . . -fno-freestanding . -flax-vector-conversions / . . -fms-extensions . ++C . typedef int UOW; struct ABC { UOW UOW; }; (unions) . x86 ms-abi . -fpermitted-flt-eval-methods=style ISO/IEC TS 18661-3 "FLT_EVAL_METHOD" (interchange) . C99/C11 "FLT_EVAL_METHOD" . C11 . -fpermitted-flt-eval-methods "FLT_EVAL_METHOD" C99/C11 ISO/IEC TS 18661-3 . style "c11" "ts-18661-3" . (-std=c11 ) -fpermitted-flt-eval-methods=c11 . (-std=gnu11 ) -fpermitted-flt-eval-methods=ts-18661-3 . -fdeps-* . . . -fdeps-file=file . -fdeps-format=format . p1689r5 . -MF ( C++) makefile . -fdeps-target=file -MT . . -fplan9-extensions Plan 9. -fms-extensions typedef . C C++. -fsigned-bitfields -funsigned-bitfields -fno-signed-bitfields -fno-unsigned-bitfields (bit-field) "signed" "unsigned" . : "int" . -fsigned-char -funsigned-char -fsigned-char "char" "signed char" -funsigned-char "char" "unsigned char" . -fsigned-char -fno-unsigned-char -funsigned-char . -fno-signed-char -funsigned-char . GCC "char" ABI . "unsigned char" "signed char". (portable) "signed char" "unsigned char" . "char" . . "char" "signed char" "unsigned char" . -fstrict-flex-arrays ( C C++) -fstrict-flex-arrays=level ( C C++) (flexible array member) . level . -fstrict-flex-arrays -fstrict-flex-arrays=3 C99 . -fno-strict-flex-arrays -fstrict-flex-arrays=0 . . 0 3 GCC ([0]) ([1]) . level 1 [] [0] [1] . level 2 [] [0] . "strict_flex_array" . -fstrict_flex_arrays -Wstrict-flex-arrays . -fsso-struct=endianness (unions) (endianness) . big-endian little-endian native (). C++ . : -fsso-struct GCC . C++ (Options Controlling C++ Dialect) C++ . GNU . firstClass.C : g++ -g -fstrict-enums -O -c firstClass.C -fstrict-enums C++ GCC . C -std C++ . C++ : --compile-std-module (compiled module interfaces) std std.compat . import std; . -fabi-version=n n (ABI) C++ . 0 . 0 C++ ABI . ABI 0 ABI G++ . 1 C++ ABI G++ 3.2 . 2 C++ ABI G++ 3.4 G++ 4.9 . 3 (mangling) . 4 G++ 4.5 (vector types) . 5 G++ 4.6 const/volatile decltype (plain decl) . 6 G++ 4.7 (scoped enums) C++11 (template argument packs) const/static_cast ++ -- . 7 G++ 4.8 nullptr_t (lambdas) . 8 G++ 4.9 function-cv-qualifiers . 9 G++ 5.2 (alignment) "nullptr_t" . 10 G++ 6.1 ia32 ( stdcall) . 11 G++ 7 ...sizeof . . -fnew-inheriting-ctors . 12 G++ 8 x86_64 / (deleted copy/move constructors) . (trivial move constructor) . 13 G++ 8.2 12 . 14 G++ 10 nullptr . 15 G++ 10.3 (regression) ABI G++ 10 . 16 G++ 11 "__alignof__" "alignof" (dependent operator names) . 17 G++ 12 (layout) (aggregate classes) C++14 . 18 G++ 13 (context) . 19 G++ 14 (structured bindings) ABI [[no_unique_address]] cv C++20 . 20 G++ 15 (static data member initializers) . 21 G++ 16 (capture) noexcept (c++/119764) (c++/120012) - (c++/121231) . : -Wabi. -fabi-compat-version=n (strong aliases) G++ . ABI . -fabi-version=0 () 13 ( GCC 8.2) . ABI 0 . GCC 3.2 4.9 -fabi-compat-version=2 . -Wabi=n . -Wabi ( ) . -fno-access-control . . -faligned-new "new" C++17 "void* ::operator new(std::size_t)" . "-faligned-new=32" ( ) alignof(std::max_align_t) . -std=c++17 . -fno-assume-sane-operators-new C++ "new" "new[]" "delete" "delete[]" C++ . C++ new delete ( "__builtin_operator_new" "__builtin_operator_delete" ). . "-fassume-sane-operators-new-delete" GCC new delete "__builtin_operator_new" "__builtin_operator_delete" ( "errno" "new" "new[]") . "malloc" (hooks) "malloc" . . "-fno-assume-sane-operators-new-delete" GCC ( new delete ) ( GCC ). . -fchar8_t -fno-char8_t "char8_t" C++20. "char8_t" UTF-8 (user-defined literals) "__cpp_char8_t" "__cpp_lib_char8_t" . UTF-8 : int f(const char *); // #1 int f(const char8_t *); // #2 int v1 = f("text"); // Calls #1 int v2 = f(u8"text"); // Calls #2 : int operator""_udl1(char8_t); int v3 = u8'x'_udl1; int operator""_udl2(const char8_t*, std::size_t); int v4 = u8"text"_udl2; template int operator""_udl3(); int v5 = u8"text"_udl3; UTF-8 ISO C++11 . ISO C++11 -fchar8_t . const char *cp = u8"xx";// error: invalid conversion from // `const char8_t*' to `const char*' int f(const char*); auto v = f(u8"xx"); // error: invalid conversion from // `const char8_t*' to `const char*' std::string s{u8"xx"}; // error: no matching function for call to // `std::basic_string::basic_string()' using namespace std::literals; s = u8"xx"s; // error: conversion from // `basic_string' to non-scalar // type `basic_string' requested -fcheck-new "operator new" (non-null) . C++ "operator new" 0 throw() . "operator new" "std::bad_alloc" . new (nothrow). -fconcepts C++ Concepts . -std=c++20 (Concepts) -fconcepts . C++ ISO 19217 (2015) -fconcepts-ts . -fconcepts-ts GCC 14 GCC 15 C++20 . -fconcepts-diagnostics-depth=n . 1 . -fconstexpr-depth=n constexpr C++11 n. . 512 . -fconstexpr-cache-depth=n constexpr C++11 n. ( ) ( ) . 8 . constexpr . -fconstexpr-fp-except F C IEC559 . C++ . F . constexpr float inf = 1./0.; // OK with -fconstexpr-fp-except -fconstexpr-loop-limit=n constexpr C++14 n. . 262144 (1<<18) . -fconstexpr-ops-limit=n constexpr. constexpr . 33554432 (1<<25) . -fcontracts C++ Contracts C++26 (N5003) . ( -fcontract-evaluation-semantic ) . : void handle_contract_violation (const std::contracts::contract_violation&); -fcontract-evaluation-semantic=semantic (semantic) semantic. : '"ignored"' . '"observed"' ( ) . . "constexpr" . '"enforce"' . . "constexpr" . '"quick_enforce"' ( ) ( ) . "enforce" ..IP -fcontracts-conservative-ipa 4 (inter-procedural analysis IPA) (inline) TU . TU . -fcontract-checks-outlined "pre" "post" (in-line) . ( ) . . -fcontract-disable-optimized-checks "pre" "post" (outlined) ( -fcontract-checks-outlined) . -fcontracts-client-check=mode ( caller-side) . mode : '"none"' / () '"pre"' / . '"all"' / . -fcontracts-definition-check=mode / (callee/definition-side) . mode '"on"' '"off"' . -fcoroutines C++ . -std=c++20 -fcoroutines . -fdiagnostics-all-candidates (front end) C++ (overload resolution) (deleted function) . -fdump-lang- -fdump-lang-switch -fdump-lang-switch-options -fdump-lang-switch-options=filename (dump) C++ . options filename -fdump-tree . switch : all . class . (virtual table) 'slim' . module . lineno () graph () blocks () uid () alias ( ) asmname (Elrond) eh () vops () . raw . tinst (template instantiations) . lineno details . .tinst I S R[IS] . -fno-elide-constructors C++ . G++ (copy constructor) . G++ (trivial member functions) . C++17 . -fno-enforce-eh-specs (exception specifications) . C++ "NDEBUG". (undefined behavior) . -fextern-tls-init -fno-extern-tls-init C++11 OpenMP "thread_local" "threadprivate" ( ) . (wrapper) . (TU) . TU ( TU TU ) -fno-extern-tls-init . (symbol aliases) -fextern-tls-init . -fno-extern-tls-init . -ffold-simple-inlines -fno-fold-simple-inlines C++ "std::move" "std::forward" "std::addressof" "std::to_underlying" "std::as_const" (fold). . -fno-inline . -fno-gnu-keywords "typeof" . "__typeof__" . ISO C++ : -ansi -std=c++98 -std=c++11 . -fno-immediate-escalation (immediate function escalation) P2564R3 consteval . : consteval int id(int i) { return i; } constexpr int f(auto t) { return t + id(t); // id causes f to be promoted to consteval } void g(int i) { f (3); } C++20 : "f" ( "auto" "constexpr" ) id(t) "f" "consteval" . id(t) (immediate context) ( consteval ). -fno-immediate-escalation "f" "consteval" consteval id(t) . C++20 ..IP -fimplicit-constexpr 4 inline constexpr constexpr . C++14 . . -fno-implicit-templates -inline ( ) . . -fno-implicit-inline-templates inline . inline . -fno-implement-inlines (out-of-line) inline "#pragma implementation" . inline . -fmodules -fno-modules C++20 . -fno-modules . C++20 . -fmodule-header -fmodule-header=user -fmodule-header=system (header unit) . -fmodule-implicit-inline inline . C++ . . inline . ABI . ( inline .) -fno-module-lazy (lazy importing) (module mapper). -fmodule-mapper=[hostname]:port[?ident] -fmodule-mapper=|program[?ident] args... -fmodule-mapper==socket[?ident] -fmodule-mapper=<>[inout][?ident] -fmodule-mapper=out[?ident] -fmodule-mapper=file[?ident] (oracle) . CXX_MODULE_MAPPER . -fmodule-only (Compiled Module Interface) . -fms-extensions Wpedantic MFC int . -fnew-inheriting-ctors P0136 C++11 . C++17 (Defect Report) C++11 C++14 . -fabi-version=10 . -fnew-ttp-matching P0522 Core issue 150 ( ) : . -std=c++17 . -fno-nonansi-builtins ANSI/ISO C . "ffs" "alloca" "_exit" "index" "bzero" "conjf" . -fnothrow-opt throw() "noexcept" . EH . "terminate" "unexpected" . -fno-operator-names "and" "bitand" "bitor" "compl" "not" "or" "xor" . -fno-optional-diags . G++ . -fno-pretty-templates typedef typename ( "void f(T) [with T = int]" "void f(int)") . . -fno-pretty-templates . -frange-for-ext-temps (range-based for) C++ . -std=c++23 . . -freflection (Reflection) C++26 . -fno-rtti (RTTI) C++ ("dynamic_cast" "typeid") . . G++ . "dynamic_cast" "void *" . -frtti -fno-rtti . -fno-rtti -frtti . -fsized-deallocation void operator delete (void *, std::size_t) noexcept; void operator delete[] (void *, std::size_t) noexcept; C++14 . . -std=c++14 . -Wsized-deallocation . -fstrict-enums (enumerated type) ( C++ ) . . (underlying type) . -fstrong-eval-order -fstrong-eval-order=kind -- -- C++17 . -fstrong-eval-order -fstrong-eval-order=all -std=c++17 . -fstrong-eval-order=some C++ C++17 . -fstrong-eval-order=none -fno-strong-eval-order . -ftemplate-backtrace-limit=n n . . -ftemplate-depth=n n . . ANSI/ISO C++ ( C++11 ) . (stack) . -fno-threadsafe-statics C++ ABI (thread-safe) . . -fuse-cxa-atexit (destructors) "atexit" "__cxa_atexit" . C "__cxa_atexit" . -fno-use-cxa-get-exception-ptr "__cxa_get_exception_ptr" . "std::uncaught_exception" . -fvisibility-inlines-hidden (inline) . GCC "__attribute__ ((visibility ("hidden")))" (export table) DSO DSO PLT . DSO . (hidden) . . . . (explicitly instantiated) . -fvisibility-ms-compat C++ GCC Microsoft Visual Studio . GCC : 1. -fvisibility=hidden "hidden" . 2. . 3. (One Definition Rule ODR) : . -fvisibility=hidden (export) . Visual Studio . . ODR . -fno-weak (weak symbol) . G++ . . G++ . -fext-numeric-literals ( C++ Objective-C++) (imaginary) (fixed- point) GNU . C++11 . C++11 GNU : -std=c++98 -std=gnu++98 -std=gnu++11 -std=gnu++14. ISO C++11 (-std=c++11 ...) . -nostdinc++ C++ (header files) . ( C++ .) -flang-info-include-translate -flang-info-include-translate-not -flang-info-include-translate=header include . include include . header include . header "user" "" include . -flang-info-module-cmi -flang-info-module-cmi=module (CMI) . CMI . module CMI . module (header-unit) ( "<>" "" ). -stdlib=libstdc++,libc++ G++ C++ . : libstdc++ ( C++ G++) libc++ C++ ( Darwin Darwin11 ). G++ C++ "-lstdc++" "-lc++" . C++ : -Wabi-tag ( C++ Objective-C++) ABI ABI . ABI C++ Attributes . -Wno-abbreviated-auto-in-template-arg "auto" C++20 : void f(S); Concepts TS C++20 decl-specifier . -fpermissive -Wno-error=abbreviated-auto-in-template-arg ..IP "-Wcomma-subscript ( C++ Objective-C++)" 4 (comma expression) . C++20 C++23 . "( )" . : void f(int *a, int b, int c) { a[b,c]; // deprecated in C++20, invalid in C++23 a[(b,c)]; // OK } C++23 (overloaded) . G++ C++23 C++20 (pedantic) -Wno-comma-subscript . -std=c++20 -Wno-deprecated -std=c++23 -Wno-deprecated . -std=c++20 -Wdeprecated . -pedantic-errors C++23 . -Wctad-maybe-unsupported ( C++ Objective-C++) (CTAD) (deduction guide) . CTAD . CTAD << >> (opt-in) CTAD . : struct allow_ctad_t; // any name works template struct S { S(T) { } }; // Guide with incomplete parameter type will never be considered. S(allow_ctad_t) -> S; -Wctor-dtor-privacy ( C++ Objective-C++) (private) (friend) (public static) . . -Wdangling-reference ( C++ Objective-C++) (reference) (bound) . : int n = 1; const int& r = std::max(n - 1, n + 1); // r is dangling ( ) . (full expression) "r" (dangling) . (member initializer lists) : const int& f(const int& i) { return i; } struct S { const int &r; // r is dangling S() : r(f(10)) { } }; : struct S { const S& self () { return *this; } }; const S& s = S().self(); // s is dangling "std::use_facet": . "#pragma" : #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdangling-reference" const T& foo (const T&) { ... } #pragma GCC diagnostic pop "#pragma" . -Wdangling-reference : auto p = std::minmax(1, 2); "std::minmax" "std::pair" "std::minmax" . "std::span" . : template struct Span { T* data_; std::size len_; }; "std::span" union (trivial) . (attribute) "gnu::no_dangling" . -Wextra . -Wdelete-non-virtual-dtor ( C++ Objective-C++) "delete" . . -Wall . -Wdeprecated-copy ( C++ Objective-C++) C++11 . -Wextra . -Wdeprecated-copy-dtor ( C++ Objective-C++) -Wdeprecated-copy . -Wno-deprecated-enum-enum-conversion ( C++ Objective-C++) (enumeration) . C++20 . : enum E1 { e }; enum E2 { f }; int k = f - e; -Wdeprecated-enum-enum-conversion -std=c++20 . C++20 -Wenum-conversion -Wdeprecated . -Wno-deprecated-enum-float-conversion ( C++ Objective-C++) (floating-point) . C++20 . : enum E1 { e }; enum E2 { f }; bool b = e <= 3.7; -Wdeprecated-enum-float-conversion -std=c++20 . C++20 -Wenum-conversion -Wdeprecated . -Wdeprecated-literal-operator ( C++ Objective-C++) . C++23 -Wdeprecated . string operator "" _i18n(const char*, std::size_t); // deprecated string operator ""_i18n(const char*, std::size_t); // preferred -Wdeprecated-variadic-comma-omission ( C++ Objective-C++) "..." . C++26 -Wdeprecated . void f1(int...); // deprecated void f1(int, ...); // preferred template void f2(T...); // ok template void f3(T......); // deprecated -Wno-elaborated-enum-base C++11 enum-base () elaborated-type-specifier enum enum . . -pedantic-errors . -Wno-init-list-lifetime ( C++ Objective-C++) "std::initializer_list" (dangling pointers) . "initializer_list" C++ . : * "initializer_list" "initializer_list" return . * new "initializer_list" (full-expression) "initializer_list" heap . * "initializer_list" "initializer_list" . // li's initial underlying array lives as long as li std::initializer_list li = { 1,2,3 }; // assignment changes li to point to a temporary array li = { 4, 5 }; // now the temporary is gone and li has a dangling pointer int i = li.begin()[0] // undefined behavior * (list constructor) "begin" "initializer_list" "initializer_list" . -Winvalid-constexpr (constant expression) . C++20 "constexpr" (instantiation) (core constant expression) . C++23 "constexpr" core constant expression . C++20 (pedantic) . C++23 -Winvalid-constexpr . : void f (int& i); constexpr void g (int& i) { // Warns by default in C++20, in C++23 only with -Winvalid-constexpr. f(i); } -Winvalid-imported-macros (imported) . . header-unit . -Wno-literal-suffix ( C++ Objective-C++) ud-suffix (_) . GCC "" . : #define __STDC_FORMAT_MACROS #include #include int main() { int64_t i64 = 123; printf("My int64: %" PRId64"\n", i64); } "PRId64" . . . . -Wno-narrowing ( C++ Objective-C++) C++11 (narrowing conversions) . -Wno-narrowing . (well-formed) SFINAE (ill-formed) . -Wnarrowing C++98 C++11 { } : int i = { 2.2 }; // error: narrowing from double to int -Wall -Wc++11-compat . -Wnoexcept ( C++ Objective-C++) noexcept-expression ( throw() "noexcept") (false) . -Wnoexcept-type ( C++ Objective-C++) C++17 "noexcept" (mangled name) C++14 . -Wabi -Wc++17-compat . : template void f(T t) { t(); }; void g() noexcept; void h() { f(g); } C++14 "f" "f" C++17 "f" . -Wclass-memaccess ( C++ Objective-C++) "memset" "memcpy" (non-trivial) (deleted) const (vtable) . (invariants) . "memset" . . std::string str = "abc"; memset (&str, 0, sizeof str); -Wclass-memaccess -Wall . (cast) "void *" ..IP "-Wnon-virtual-dtor ( C++ Objective-C++)" 4 . -Weffc++ . -Wdelete-non-virtual-dtor ( -Wall) . -Wregister ( C++ Objective-C++) "register" Explicit Register Variables GNU . "register" C++11 C++17 . -std=c++17 . -Wreorder ( C++ Objective-C++) . : struct A { int i; int j; A(): j (0), i (1) { } }; "i" "j" . -Wall . -Wno-pessimizing-move ( C++ Objective-C++) "std::move" (copy elision) . -volatile . struct T { ... }; T fn() { T t; ... return std::move (t); } "std::move" . -Wall . -Wno-redundant-move ( C++ Objective-C++) "std::move" (move) "std::move" . rvalue . : struct T { ... }; T fn(T t) { ... return std::move (t); } "std::move" . G++ Core Issue 1579 : struct T { // convertible to U ... }; struct U { ... }; U fn() { T t; ... return std::move (t); } G++ rvalue . -Wextra . -Wrange-loop-construct ( C++ Objective-C++) for C++ . . : struct S { char arr[128]; }; void fn () { S arr[5]; for (const auto x : arr) { ... } } (trivially-copyable) . for . : void fn() { int arr[10]; for (const double &x : arr) { ... } } "double" "const double &" . -Wall . -Wredundant-tags ( C++ Objective-C++) class-key enum-key . : struct foo; struct foo *p; // warn that keyword struct can be eliminated : struct foo; void foo (); // "hides" struct foo void bar (struct foo&); // no warning, keyword struct is necessary -Wno-subobject-linkage ( C++ Objective-C++) (anonymous namespace) (linkage) . A B ODR B . A . .C . -Wsubobject-linkage . -Weffc++ ( C++ Objective-C++) Effective C++ Scott Meyers : * . * . * "operator=" *this . * . * . * "&&" "||" "," . -Wnon-virtual-dtor Effective C++ . . grep -v . (shadow) . -Wsfinae-incomplete ( C++ Objective-C++) auto (substitution failure) (translation unit) . concept . . -Wsfinae-incomplete=2 . -Wstrict-null-sentinel ( C++ Objective-C++) "NULL" (uncasted) (sentinel). GCC sentinel "NULL" "__null" . . (portable) . -Wno-non-c-typedef-for-linkage ( C++ Objective-C++) pedwarn typedef (linkage) C++ ( ) . typedef struct { int a; // non-static data members are ok struct T { int b; }; // member classes too enum E { E1, E2, E3 }; // member enumerations as well int c = 42; // default member initializers are not ok struct U : A { int c; }; // classes with base classes are not ok typedef int V; // typedef is not ok using W = int; // using declaration is not ok decltype([](){}) x; // lambda expressions not ok } S; S struct . -Wno-non-template-friend ( C++ Objective-C++) (non-template friend functions) . GCC ISO friend int foo(int) (unqualified-id) (specialization) . -Wold-style-cast ( C++ Objective-C++) ( C) void C++. ("dynamic_cast" "static_cast" "reinterpret_cast" "const_cast") . -Woverloaded-virtual ( C++ Objective-C++) -Woverloaded-virtual=n (hide) . : struct A { virtual void f(); }; struct B: public A { void f(int); // does not override }; "A" "f" "B" : B* b; b->f(); . using-declaration "using A::f;" "B". (override) : struct C { virtual void f(); virtual void f(int); }; struct D: public C { void f(int); // does override } D (overloads) . . -Woverloaded-virtual . -Wall . -Wno-pmf-conversions ( C++ Objective-C++) (bound pointer to member function) . -Wsign-promo ( C++ Objective-C++) (overload resolution) . G++ . -Wtemplates ( C++ Objective-C++) (primary template). . STL STL . . -Wmismatched-new-delete ( C++ Objective-C++) "operator new" "operator delete" . "operator delete" C++ "operator new" "operator delete" "operator new" . "delete" "new" . "free" . void f () { int *a = new int[n]; delete a; // warning: mismatch in array forms of expressions char *p = new char[n]; free (p); // warning: mismatch between new and free } -Wmismatched-dealloc "operator new" "operator delete" . -Wmismatched-new-delete -Wall . -Wmismatched-tags ( C++ Objective-C++) struct class-key ( ) . "struct Object" "draw" . class-key "struct" "class" . class Object { public: virtual ~Object () = 0; }; void draw (struct Object*); class-key "struct" . -Wmismatched-tags . Windows (unresolved references) (mangling) class-key . -Wredundant-tags ..IP "-Wmultiple-inheritance ( C++ Objective-C++)" 4 . . STL STL . . -Wvirtual-inheritance . . STL STL . . -Wno-virtual-move-assign (move assignment) C++11 . (move) (moved-from) . . -Wnamespaces (namespace) . . STL STL . using (qualified names) . -Wno-template-body ( C++ Objective-C++) (template) (instantiation) . Wno-error= -fpermissive . -Wno-template-id-cdtor ( C++ Objective-C++) simple-template-id declarator-id C++20 DR 2237 . : template struct S { S(); // should be S(); ~S(); // should be ~S(); }; -Wtemplate-id-cdtor -std=c++20 -Wc++20-compat . -Wtemplate-names-tu-local (exposure) (translation-unit-local) . ( / internal linkage) CMI . (non-inline) . (import) . . (explicit instantiation) . -Wextra . -Wno-expose-global-module-tu-local ODR . TU-local . GCC (global module fragment) . (diagnostic pragmas) . "export using" . -Wtemplate-names-tu-local GCC TU-local . TU . -pedantic-errors . -Wno-external-tu-local TU-local . (name lookup) . ADL TU : export module M; template void foo(T t) { bar(t); } struct S {} s; static void bar(S) {} // internal linkage // instantiating foo(s) from outside this TU can see ::bar, // but naming it there is ill-formed. "bar" "extern "C++"" . -pedantic-errors . -Wno-terminate ( C++ Objective-C++) throw "terminate" . -Wno-vexing-parse ( C++ Objective-C++) << >> (most vexing parse) . C++ . : void f(double a) { int i(); // extern int i (void); int n(int(a)); // extern int n (int); } : struct S { S(int); }; void f(double a) { S x(int(a)); // extern struct S x (int); S y(int()); // extern struct S y (int (*) (void)); S z(); // extern struct S z (void); } . . -Wno-class-conversion ( C++ Objective-C++) (conversion function) void . -Wvolatile ( C++ Objective-C++) "volatile" . "++" "--" "volatile" "volatile" "volatile" "volatile" "volatile" (structured bindings) "volatile" . C++20 . -std=c++20 . -std=c++20 -Wdeprecated . -Waligned-new -Waligned-new=[none|global|all] new (alignment) alignof(std::max_align_t) . -Wall . -Waligned-new=all . -Wno-placement-new -Wplacement-new=n placement new (undefined behavior) . placement new . char buf [64]; new (buf) int[64]; . -Wplacement-new=1 -Wplacement-new . GCC (extensions) . "new" C++ . struct S { int n, a[1]; }; S *s = (S *)malloc (sizeof *s + 31 * sizeof s->a[0]); new (s->a)int [32](); -Wplacement-new=2 placement new . (flexible member array) . struct S { int n, a[]; }; S *s = (S *)malloc (sizeof *s + 32 * sizeof s->a[0]); new (s->a)int [32](); -Wcatch-value -Wcatch-value=n ( C++ Objective-C++) catch (reference) . -Wcatch-value=1 ( -Wcatch-value) (polymorphic) (by value) . -Wcatch-value=2 . -Wcatch-value=3 . -Wcatch-value -Wall . -Wconditionally-supported ( C++ Objective-C++) (conditionally-supported C++11 [intro.defs]). -Wno-defaulted-function-deleted ( C++ Objective-C++) (defaulted) (deleted) . . . -Wno-delete-incomplete ( C++ Objective-C++) (delete) (incomplete type) . . -Wextra-semi ( C++ Objective-C++) . . (in-class) C++ ( pedwarn ): struct S { void foo () {}; }; (namespace scope) C++11 ( C++98 pedwarn ): struct S { }; ; C++11 ( C++98 pedwarn ): struct S { int a; ; }; -Wno-global-module ( C++ Objective-C++) (global module fragment) . -Wno-inaccessible-base ( C++ Objective-C++) . . -Wextra . struct A { int a; }; struct B : A { }; struct C : B, A { }; -Wno-inherited-variadic-ctor C++11 C (variadic constructor) (...) . -Wno-invalid-offsetof ( C++ Objective-C++) "offsetof" POD ( non-POD). ISO C++ "offsetof" (non-standard-layout) . C++ "offsetof" . (nonportable) . "offsetof" C++ . -Wsized-deallocation ( C++ Objective-C++) (unsized deallocation function) void operator delete (void *) noexcept; void operator delete[] (void *) noexcept; (sized deallocation function) void operator delete (void *, std::size_t) noexcept; void operator delete[] (void *, std::size_t) noexcept; . -Wextra -fsized-deallocation . -Wsuggest-final-types "final" C++11 (anonymous namespace) . GCC (devirtualize) . (link-time optimization) . -Wsuggest-final-methods "final" C++11 "final" . (link-time optimization) . -Wsuggest-final-types (rebuild). -Wsuggest-override (override) "override" . -Wno-conversion-null ( C++ Objective-C++) "NULL" . -Wconversion-null ..SS " Objective-C Objective-C++ (Options Controlling Objective-C and Objective-C++ Dialects)" (: Objective-C Objective-C++ .) Objective-C Objective-C++ . GNU . some_class.m : gcc -g -fgnu-runtime -O -c some_class.m -fgnu-runtime Objective-C Objective-C++ GCC . Objective-C C Objective-C C ( -Wtraditional). Objective-C++ C++ ( -Wabi). Objective-C Objective-C++ : -fconstant-string-class=class-name class-name "@"..."" . GNU "NXConstantString" NeXT "NSConstantString" ( ). Darwin / macOS -fconstant-cfstrings -fconstant-string-class "@"..."" CoreFoundation . -fconstant-cfstrings -mconstant-cfstrings . -fgnu-runtime GNU Objective-C. . -fnext-runtime NeXT. NeXT Darwin / macOS . "__NEXT_RUNTIME__" . -fno-nil-receivers Objective-C ("[receiver message:arg]") "nil" . . NeXT 0 1 ABI . -fobjc-abi-version=n n ABI Objective-C . NeXT . 0 ABI ( ) (properties) Objective-C 2.0 . 1 ABI ( ) Objective-C 2.0 . 2 ABI ( ) . 0 2 . -fobjc-call-cxx-cdtors Objective-C C++ (non-trivial) . "- (id) .cxx_construct" "self" . C++ (destructor) "- (void) .cxx_destruct" . "- (id) .cxx_construct" "- (void) .cxx_destruct" Objective-C . Objective-C . "- (id) .cxx_construct" "- (void) .cxx_destruct" . NeXT Mac OS X 10.4 "- (id) .cxx_construct" "- (void) .cxx_destruct" . -fobjc-direct-dispatch (message dispatcher) . Darwin comm page . -fobjc-exceptions Objective-C C++ . Objective-C @try @throw @catch @finally @synchronized . GNU NeXT ( Mac OS X 10.2 NeXT ). -fobjc-gc (garbage collection GC) Objective-C Objective-C++. NeXT GNU . -fobjc-nilcheck NeXT 2 ABI nil . -fno-objc-nilcheck . super nil . GNU ABI NeXT . -fobjc-std=objc1 Objective-C 1.0 GCC 4.0 . Objective-C C/C++ C/C++ C/C++ . Objective-C Objective-C++ Objective-C GCC 4.0 . Objective-C GCC . -freplace-objc-classes ld(1) dyld(1) . Fix-and-Continue . Fix-and-Continue NeXT Mac OS X 10.3 . -fzero-link NeXT objc_getClass("...") ( ) . -fzero-link objc_getClass("...") . Zero-Link . GNU objc_get_class("...") . -fno-local-ivars Objective-C . (shadowing) . -fno-local-ivars . -fivar-visibility=[public|protected|private|package] . -gen-decls (dump) (interface declarations) sourcename.decl. -Wassign-intercept ( Objective-C Objective-C++) Objective-C (garbage collector) . -Wno-property-assign-default ( Objective-C Objective-C++) (property) Objective-C (assign semantics) . -Wno-protocol ( Objective-C Objective-C++) . . -Wno-protocol ..IP "-Wobjc-root-class ( Objective-C Objective-C++)" 4 (class interface) . "NSObject" ( "Object") . "__attribute__((objc_root_class))" . -Wselector ( Objective-C Objective-C++) (selector) . . @selector(...) . ( -fsyntax-only) . -Wstrict-selector-match ( Objective-C Objective-C++) "id" "Class" / . ( ) (alignment) . -Wundeclared-selector ( Objective-C Objective-C++) @selector(...) . @selector(...) @interface @protocol @implementation . @selector(...) -Wselector . . -print-objc-runtime-info C (by value) . OpenMP OpenACC (Options Controlling OpenMP and OpenACC) GCC -fopenmp OpenMP C C++ Fortran . OpenACC -fopenacc . -foffload=disable -foffload=default -foffload=target-list (offload targets) OpenMP OpenACC . -foffload=default . -foffload=disable (host fallback) -foffload=target-list . (target-triplet) GCC . -v "OFFLOAD_TARGET_NAMES" . -foffload-options=options -foffload-options=target-triplet-list=options -foffload-options=options GCC (options) . -foffload-options=target-list=options . target-list -foffload= . : -foffload-options='-fno-math-errno -ffinite-math-only' \ -foffload-options=nvptx-none=-latomic -foffload-options=amdgcn-amdhsa=-march=gfx906 -fopenacc (directives) OpenACC #pragma acc C/C++ !$acc (free-form) !$acc c$acc *$acc (fixed-form) . -pthread -pthread . -fopenacc-dim=geom . geom : gang worker vector . . -fopenmp OpenMP #pragma omp [[omp::decl(...)]] [[omp::directive(...)]] [[omp::sequence(...)]] C/C++ . Fortran !$omp (sentinel) !$ . c * . -pthread -pthread . -fopenmp -fopenmp-simd . -fopenmp-simd "simd" "declare simd" "declare reduction" "assume" "ordered" "scan" "loop" OpenMP "simd" "#pragma omp" "[[omp::directive(...)]]" "[[omp::sequence(...)]]" "[[omp::decl(...)]]" C/C++ "!$omp" Fortran . !$ Fortran . c * . OpenMP . -fopenmp "loop" (clause) "bind" (bind) . -fopenmp-target-simd-clone -fopenmp-target-simd-clone=device-type (clones) SIMD "declare simd" GCC OpenMP "declare target" (vectorization) . device-type "none" "host" "nohost" "any" "device_type" "declare target" . -fopenmp-target-simd-clone -fopenmp-target-simd-clone=any -fno-openmp-target-simd-clone -fopenmp-target-simd-clone=none . -O2 ( -Os -Og) -fopenmp-target-simd-clone=nohost ..SS " " ( ) . . (front end) . -fmessage-length=n n . n (line-wrapping) . . - #error #warning (attribute) deprecated // . pragma GCC warning pragma GCC error . -fdiagnostics-plain-output dejagnu . -fdiagnostics-plain-output : -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -fdiagnostics-urls=never -fdiagnostics-path-format=separate-events -fdiagnostics-text-art-charset=none -fno-diagnostics-show-event-links -fno-diagnostics-show-nesting GCC . -fdiagnostics-show-location=once (line-wrapping) . ( ) . . -fdiagnostics-show-location=every-line . ( ) . -fdiagnostics-color[=WHEN] -fno-diagnostics-color . WHEN never always auto . WHEN GCC_COLORS never auto . auto GCC (standard error) emacs . -fdiagnostics-color -fno-diagnostics-color -fdiagnostics-color=always -fdiagnostics-color=never . GCC_COLORS . (:) Select Graphic Rendition (SGR) . SGR . ( .) (;) . : 1 (bold) 4 (underline) 5 (blink) 7 (inverse) 39 30 37 90 97 38;5;0 38;5;255 49 40 47 100 107 48;5;0 48;5;255 . GCC_COLORS : error=01;31:warning=01;35:note=01;36:range1=32:range2=34:locus=01:\ quote=01:path=01;36:fixit-insert=32:fixit-delete=31:\ diff-filename=01:diff-hunk=32:diff-delete=31:diff-insert=32:\ type-diff=01;32:fnname=01;32:targs=35:valid=01;31:invalid=01;32\ highlight-a=01;32:highlight-b=01;34 01;31 01;35 01;36 32 34 01 31 . GCC_COLORS . : "error=" SGR :error. "warning=" SGR :warning. "note=" SGR :note. "path=" SGR -fdiagnostics-path-format= (interprocedural). "range1=" SGR . "range2=" SGR . "locus=" SGR file:line file:line:column . "quote=" SGR . "fnname=" SGR ++C. "targs=" SGR ++C. "fixit-insert=" SGR (fix-it) . "fixit-delete=" SGR (fix-it) . "diff-filename=" SGR (patch) . "diff-hunk=" SGR (hunk) . "diff-delete=" SGR . "diff-insert=" SGR . "type-diff=" SGR ++C. "valid=" SGR (text art). "invalid=" SGR (text art). "highlight-a=" "highlight-b=" SGR . : -fdiagnostics-show-highlight-colors. -fdiagnostics-urls[=WHEN] (URL) . -fdiagnostics-show-option URL . WHEN never always auto . auto GCC URL emacs . . WHEN . GCC ( --with-diagnostics-urls=auto-if-env) . GCC_URLS TERM_URLS GCC auto never . -fdiagnostics-urls=always : GCC_URLS no . st ST . bel () BEL . . GCC_URLS TERM_URLS . : ST ANSI ESC \ BEL ASCII CTRL-G . GCC URL ( ) URL . xfce4-terminal gnome-terminal (linux console) mingw . -fdiagnostics-urls=always . -fno-diagnostics-show-option ( ). -fno-diagnostics-show-option . -fno-diagnostics-show-caret ^ . . -fmessage-length=n n . COLUMNS . -fno-diagnostics-show-labels ( -fdiagnostics-show-caret) : printf ("foo %s bar", long_i + long_j); ~^ ~~~~~~~~~~~~~~~ | | char * long int ( "char *" "long int"). -fno-diagnostics-show-event-links ( -fdiagnostics-path-format=inline-events) GCC : 3 | if (p) | ^ | | | (1) following `false' branch (when `p' is NULL)... ->-+ | | | | |+------------------------------------------------------------+ 4 || return 0; 5 || return *p; || ~ || | |+-------->(2) ...to here | (3) dereference of NULL `p' . -fno-diagnostics-show-cwe CWE ("https://cwe.mitre.org/index.html") . GCC -fanalyzer . GCC . . . -fno-diagnostics-show-rules . GCC . . . -fno-diagnostics-show-highlight-colors GCC . : demo.c: In function `test_bad_format_string_args': ../../src/demo.c:25:18: warning: format `%i' expects argument of type `int', but argument 2 has type `const char *' [-Wformat=] 25 | printf("hello %i", msg); | ~^ ~~~ | | | | int const char * | %s * %i "int" "int" "highlight-a" ( ) * "const char *" "highlight-b" ( ) . . ( -fdiagnostics-color=) -fno-diagnostics-show-highlight-colors . -fno-diagnostics-show-line-numbers ( -fdiagnostics-show-caret) . . -fdiagnostics-minimum-margin-width=width -fdiagnostics-show-line-numbers . . -fdiagnostics-show-context[=depth] -fno-diagnostics-show-context . depth . : -Warray-bounds -Wstringop-overflow -Wstringop-overread -Wstringop-truncation -Wrestrict. . -fdiagnostics-show-context -fno-diagnostics-show-context -fdiagnostics-show-context=1 -fdiagnostics-show-context=0 ..IP -fdiagnostics-parseable-fixits 4 (fix-it hints) (IDE). <> . : fix-it:"test.c":{45:3-45:21}:"gtk_widget_show_all" . <> : 00000000011111111112222222222 12345678901234567890123456789 gtk_widget_showall (dlg); ^^^^^^^^^^^^^^^^^^ gtk_widget_show_all <<\\>> <<\t>> <<\n>> <<\">> ( <<\013>>) (escape) . . ( <<45:3-45:3>>) . -fdiagnostics-generate-patch stderr (unified diff) . : --- test.c +++ test.c @ -42,5 +42,5 @ void show_cb(GtkDialog *dlg) { - gtk_widget_showall(dlg); + gtk_widget_show_all(dlg); } diff ( -fdiagnostics-color). -fdiagnostics-show-template-tree C++ (template types) : could not convert 'std::map >()' from 'map<[...],vector>' to 'map<[...],vector> -fdiagnostics-show-template-tree : map< [...], vector< [double != float]>> ( <> <>). -fno-elide-type C++ <<[...]>> . : could not convert 'std::map >()' from 'map<[...],vector>' to 'map<[...],vector> -fno-elide-type . -fdiagnostics-show-template-tree . -fdiagnostics-path-format=KIND (control-flow events) . KIND none separate-events inline-events . none . separate-events <> . : test.c:29:5: error: passing NULL as argument 1 to 'PyList_Append' which requires a non-NULL parameter test.c:25:10: note: (1) when 'PyList_New' fails, returning NULL test.c:27:3: note: (2) when 'i < count' test.c:29:5: note: (3) when calling 'PyList_Append', passing NULL from (1) as argument 1 inline-events (inline) . . : 'test': events 1-3 25 | list = PyList_New(0); | ^~~~~~~~~~~~~ | | | (1) when 'PyList_New' fails, returning NULL 26 | 27 | for (i = 0; i < count; i++) { | ~~~ | | | (2) when 'i < count' 28 | item = PyLong_FromLong(random()); 29 | PyList_Append(list, item); | ~~~~~~~~~~~~~~~~~~~~~~~~~ | | | (3) when calling 'PyList_Append', passing NULL from (1) as argument 1 (stack frame) (push) (pop) . : 'test': events 1-2 | | 133 | { | | ^ | | | | | (1) entering 'test' | 134 | boxed_int *obj = make_boxed_int (i); | | ~~~~~~~~~~~~~~~~~~ | | | | | (2) calling 'make_boxed_int' | +--> 'make_boxed_int': events 3-4 | | 120 | { | | ^ | | | | | (3) entering 'make_boxed_int' | 121 | boxed_int *result = (boxed_int *)wrapped_malloc (sizeof (boxed_int)); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (4) calling 'wrapped_malloc' | +--> 'wrapped_malloc': events 5-6 | | 7 | { | | ^ | | | | | (5) entering 'wrapped_malloc' | 8 | return malloc (size); | | ~~~~~~~~~~~~~ | | | | | (6) calling 'malloc' | <-------------+ | 'test': event 7 | | 138 | free_boxed_int (obj); | | ^~~~~~~~~~~~~~~~~~~~ | | | | | (7) calling 'free_boxed_int' | (etc) (control-flow) . -fdiagnostics-path-format=inline-events . -fdiagnostics-path-format=separate-events . GCC (interprocedural) . -fno-show-column . ( dejagnu) () . -fdiagnostics-column-unit=UNIT . ( -fno-show-column) . UNIT display . (tab) . <> UTF-8 <> UTF-8 . UNIT byte 11.1.0 GCC . -fdiagnostics-column-origin=ORIGIN . 1 GCC GNU . 0 . -fdiagnostics-escape-format=FORMAT GCC . UTF-8 (malformed) (Unicode normalization). GCC (escape) . . FORMAT unicode UTF-8 . before U+03C0 ( <> UTF-8 0xCF 0x80) 0xBF ( UTF-8) after : beforeafter FORMAT bytes . : before<80>after -fdiagnostics-text-art-charset=CHARSET << >> (text art) : (monospaced) . . CHARSET none ascii unicode emoji . none . ascii (<< >>) . unicode ( ) . emoji ( U+26A0 WARNING SIGN U+FE0F VARIATION SELECTOR-16 ). emoji LANG C ascii . -fno-diagnostics-show-nesting GCC ++C . GCC (bullet points) . -fno-diagnostics-show-nesting . -fno-diagnostics-show-nesting-locations fdiagnostics-show-nesting . -fno-diagnostics-show-nesting-locations . GCC DejaGnu . -fdiagnostics-show-nesting-levels fdiagnostics-show-nesting fdiagnostics-show-nesting-levels . GCC . -fdiagnostics-format=FORMAT . FORMAT text sarif-stderr sarif-file . << >> -fdiagnostics-add-output= -fdiagnostics-set-output= . text . sarif-stderr sarif-file SARIF 2.1.0 stderr source.sarif . -fdiagnostics-add-output=DIAGNOSTICS-OUTPUT-SPEC << >> . DIAGNOSTICS-OUTPUT-SPEC ":" KEY=VALUE : := :=,= . <> . GCC . SCHEME : text GCC stderr . "text" : color=[yes|no] -fdiagnostics-color . show-nesting=[yes|no] -fdiagnostics-show-nesting. "yes" . show-nesting-locations=[yes|no] "show-nesting=yes" "no" . GCC DejaGnu . show-nesting-levels=[yes|no] "show-nesting=yes" . "yes" . GCC . SARIF. "sarif" : file=FILENAME SARIF . source.sarif . serialization=[json] SARIF . "json" . version=[2.1|2.2-prerelease] SARIF . 2.1 . "2.2-prerelease" SARIF 2.2 . GCC : state-graphs=[yes|no] "no" . "state-graphs=yes" -fanalyzer SARIF . experimental-html HTML. GCC . . "experimental-html" : css=[yes|no]