使用g++ -v –help可以列出g++的所有可选项
当然脚本最香了
g++ -v --help >> lionel.txt
-Wno-invalid-offsetof 屏蔽offsetof警告
Usage: g++ [options] file...
Options:
-pass-exit-codes Exit with highest error code from a phase.
--help Display this information.
--target-help Display target specific command line options.
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
Display specific types of command line options.
--version Display compiler version information.
-dumpspecs Display all of the built in spec strings.
-dumpversion Display the version of the compiler.
-dumpmachine Display the compiler's target processor.
-print-search-dirs Display the directories in the compiler's search path.
-print-libgcc-file-name Display the name of the compiler's companion library.
-print-file-name=<lib> Display the full path to library <lib>.
-print-prog-name=<prog> Display the full path to compiler component <prog>.
-print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path.
-print-multi-directory Display the root directory for versions of libgcc.
-print-multi-lib Display the mapping between command line options and
multiple library search directories.
-print-multi-os-directory Display the relative path to OS libraries.
-print-sysroot Display the target libraries directory.
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
-Wa,<options> Pass comma-separated <options> on to the assembler.
-Wp,<options> Pass comma-separated <options> on to the preprocessor.
-Wl,<options> Pass comma-separated <options> on to the linker.
-Xassembler <arg> Pass <arg> on to the assembler.
-Xpreprocessor <arg> Pass <arg> on to the preprocessor.
-Xlinker <arg> Pass <arg> on to the linker.
-save-temps Do not delete intermediate files.
-save-temps=<arg> Do not delete intermediate files.
-no-canonical-prefixes Do not canonicalize paths when building relative
prefixes to other gcc components.
-pipe Use pipes rather than intermediate files.
-time Time the execution of each subprocess.
-specs=<file> Override built-in specs with the contents of <file>.
-std=<standard> Assume that the input sources are for <standard>.
--sysroot=<directory> Use <directory> as the root directory for headers
and libraries.
-B <directory> Add <directory> to the compiler's search paths.
-v Display the programs invoked by the compiler.
-### Like -v but options quoted and commands not executed.
-E Preprocess only; do not compile, assemble or link.
-S Compile only; do not assemble or link.
-c Compile and assemble, but do not link.
-o <file> Place the output into <file>.
-pie Create a dynamically linked position independent
executable.
-shared Create a shared library.
-x <language> Specify the language of the following input files.
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension.
Options starting with -g, -f, -m, -O, -W, or --param are automatically
passed on to the various sub-processes invoked by g++. In order to pass
other options on to these processes the -W<letter> options must be used.
The following options are specific to just the language Ada:
-fbuiltin-printf Ignored.
The following options are specific to just the language AdaSCIL:
None found. Use --help=AdaSCIL to show *all* the options supported by the AdaSCIL front-end.
The following options are specific to just the language AdaWhy:
None found. Use --help=AdaWhy to show *all* the options supported by the AdaWhy front-end.
The following options are specific to just the language BRIG:
-fassume-phsa Assume we are finalizing for phsa and its libhsail-rt. Enables additional phsa-specific optimizations (default).
The following options are specific to just the language C:
-fgimple Enable parsing GIMPLE.
The following options are specific to just the language C++:
-Wplacement-new Warn for placement new expressions with undefined behavior. Same as -Wplacement-new=.
-Wplacement-new=<0,2> Warn for placement new expressions with undefined behavior.
The following options are specific to just the language D:
-Hd <dir> Write D interface files to directory <dir>.
-Hf <file> Write D interface to <file>.
-Wcast-result Warn about casts that will produce a null result.
-Wspeculative Warn from speculative compiles such as __traits(compiles).
-X Generate JSON file.
-Xf <file> Write JSON output to the given <file>.
-fall-instantiations Generate code for all template instantiations.
-fassert Generate code for assert contracts.
-fbounds-check Generate code to check bounds before indexing arrays.
-fbounds-check=[on|safeonly|off] Turn array bounds checks on, in @safe code only, or off.
-fbuilding-libphobos-tests This option lacks documentation.
-fdebug Compile in debug code.
-fdebug=<level|ident> Compile in debug code, code <= <level>, or code identified by <ident>.
-fdoc Generate documentation.
-fdoc-dir=<dir> Write documentation file to directory <dir>.
-fdoc-file=<file> Write documentation to <file>.
-fdoc-inc=<file> Include a Ddoc macro <file>.
-fdruntime Assume that standard D runtime libraries and "D main" exist.
-fdump-d-original Display the frontend AST after parsing and semantic passes.
-fignore-unknown-pragmas Ignore unsupported pragmas.
-finvariants Generate code for class invariant contracts.
-fmain Generate a default D main() function when compiling.
-fmodule-file=<package.module>=<filespec> use <filespec> as source file for <package.module>.
-fmoduleinfo Generate ModuleInfo struct for output module.
-fonly= Process all modules specified on the command line, but only generate code for the module specified by the argument.
-fpostconditions Generate code for postcondition contracts.
-fpreconditions Generate code for precondition contracts.
-frelease Compile release version.
-fswitch-errors Generate code for switches without a default case.
-ftransition=all List information on all language changes.
-ftransition=checkimports Give deprecation messages about -ftransition=import anomalies.
-ftransition=complex List all usages of complex or imaginary types.
-ftransition=dip1000 Implement DIP1000: Scoped pointers (experimental).
-ftransition=dip25 Implement DIP25: Sealed references (experimental).
-ftransition=field List all non-mutable fields which occupy an object instance.
-ftransition=import Revert to single phase name lookup.
-ftransition=nogc List all hidden GC allocations.
-ftransition=tls List all variables going into thread local storage.
-funittest Compile in unittest code.
-fversion=<level|ident> Compile in version code >= <level> or identified by <ident>.
The following options are specific to just the language Fortran:
-Waliasing Warn about possible aliasing of dummy arguments.
-Walign-commons Warn about alignment of COMMON blocks.
-Wampersand Warn about missing ampersand in continued character constants.
-Wargument-mismatch Warn about type and rank mismatches between arguments and parameters.
-Warray-temporaries Warn about creation of array temporaries.
-Wc-binding-type Warn if the type of a variable might be not interoperable with C.
-Wcharacter-truncation Warn about truncated character expressions.
-Wcompare-reals Warn about equality comparisons involving REAL or COMPLEX expressions.
-Wconversion-extra Warn about most implicit conversions.
-Wdo-subscript Warn about possibly incorrect subscripts in do loops.
-Wfrontend-loop-interchange Warn if loops have been interchanged.
-Wfunction-elimination Warn about function call elimination.
-Wimplicit-interface Warn about calls with implicit interface.
-Wimplicit-procedure Warn about called procedures not explicitly declared.
-Winteger-division Warn about constant integer divisions with truncated results.
-Wintrinsic-shadow Warn if a user-procedure has the same name as an intrinsic.
-Wintrinsics-std Warn on intrinsics not part of the selected standard.
-Wline-truncation Warn about truncated source lines.
-Wreal-q-constant Warn about real-literal-constants with 'q' exponent-letter.
-Wrealloc-lhs Warn when a left-hand-side array variable is reallocated.
-Wrealloc-lhs-all Warn when a left-hand-side variable is reallocated.
-Wsurprising Warn about "suspicious" constructs.
-Wtabs Permit nonconforming uses of the tab character.
-Wtarget-lifetime Warn if the pointer in a pointer assignment might outlive its target.
-Wundefined-do-loop Warn about an invalid DO loop.
-Wunderflow Warn about underflow of numerical constant expressions.
-Wunused-dummy-argument Warn about unused dummy arguments.
-Wuse-without-only Warn about USE statements that have no ONLY qualifier.
-Wzerotrip Warn about zero-trip DO loops.
-cpp Enable preprocessing.
-cpp= This option lacks documentation.
-faggressive-function-elimination Eliminate multiple function invocations also for impure functions.
-falign-commons Enable alignment of COMMON blocks.
-fall-intrinsics All intrinsics procedures are available regardless of selected standard.
-fallow-leading-underscore This option lacks documentation.
-fautomatic Do not treat local variables and COMMON blocks as if they were named in SAVE statements.
-fbackslash Specify that backslash in string introduces an escape character.
-fbacktrace Produce a backtrace when a runtime error is encountered.
-fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS.
-fc-prototypes Generate C prototypes from BIND(C) declarations.
-fc-prototypes-external Generate C prototypes from non-BIND(C) external procedure definitions.
-fcheck-array-temporaries Produce a warning at runtime if a array temporary has been created for a procedure argument.
-fcheck=[...] Specify which runtime checks are to be performed.
-fcoarray=<none|single|lib> Specify which coarray parallelization should be used.
-fconvert= -fconvert=<big-endian|little-endian|native|swap> The endianness used for unformatted files.
-fcray-pointer Use the Cray Pointer extension.
-fd-lines-as-code Ignore 'D' in column one in fixed form.
-fd-lines-as-comments Treat lines with 'D' in column one as comments.
-fdec Enable all DEC language extensions.
-fdec-include Enable legacy parsing of INCLUDE as statement.
-fdec-intrinsic-ints Enable kind-specific variants of integer intrinsic functions.
-fdec-math Enable legacy math intrinsics for compatibility.
-fdec-static Enable DEC-style STATIC and AUTOMATIC attributes.
-fdec-structure Enable support for DEC STRUCTURE/RECORD.
-fdefault-double-8 Set the default double precision kind to an 8 byte wide type.
-fdefault-integer-8 Set the default integer kind to an 8 byte wide type.
-fdefault-real-10 Set the default real kind to an 10 byte wide type.
-fdefault-real-16 Set the default real kind to an 16 byte wide type.
-fdefault-real-8 Set the default real kind to an 8 byte wide type.
-fdollar-ok Allow dollar signs in entity names.
-fdump-core Does nothing. Preserved for backward compatibility.
-fdump-fortran-global Display the global symbol table after parsing.
-fdump-fortran-optimized Display the code tree after front end optimization.
-fdump-fortran-original Display the code tree after parsing.
-fdump-parse-tree Display the code tree after parsing; deprecated option. Same as -fdump-fortran-original.
-fexternal-blas Specify that an external BLAS library should be used for matmul calls on large-size arrays.
-ff2c Use f2c calling convention.
-ffixed-form Assume that the source file is fixed form.
-ffixed-line-length-<n> Use n as character line width in fixed mode.
-ffixed-line-length-none Allow arbitrary character line width in fixed mode.
-ffpe-summary=[...] Print summary of floating point exceptions.
-ffpe-trap=[...] Stop on following floating point exceptions.
-ffree-form Assume that the source file is free form.
-ffree-line-length-<n> Use n as character line width in free mode.
-ffree-line-length-none Allow arbitrary character line width in free mode.
-ffrontend-loop-interchange Try to interchange loops if profitable.
-ffrontend-optimize Enable front end optimization.
-fimplicit-none Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements.
-finit-character=<n> Initialize local character variables to ASCII value n.
-finit-derived Initialize components of derived type variables according to other init flags.
-finit-integer=<n> Initialize local integer variables to n.
-finit-local-zero Initialize local variables to zero (from g77).
-finit-logical=<true|false> Initialize local logical variables.
-finit-real=<zero|snan|nan|inf|-inf> Initialize local real variables.
-finline-matmul-limit=<n> Specify the size of the largest matrix for which matmul will be inlined.
-finteger-4-integer-8 Interpret any INTEGER(4) as an INTEGER(8).
-fintrinsic-modules-path Specify where to find the compiled intrinsic modules.
-fintrinsic-modules-path= Specify where to find the compiled intrinsic modules.
-fmax-array-constructor=<n> Maximum number of objects in an array constructor.
-fmax-identifier-length=<n> Maximum identifier length.
-fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack.
-fmax-subrecord-length=<n> Maximum length for subrecords.
-fmodule-private Set default accessibility of module entities to PRIVATE.
-fpack-derived Try to lay out derived types as compactly as possible.
-fpad-source Pad shorter fixed form lines to line width with spaces.
-fpre-include= Path to header file that should be pre-included before each compilation unit.
-fprotect-parens Protect parentheses in expressions.
-frange-check Enable range checking during compilation.
-freal-4-real-10 Interpret any REAL(4) as a REAL(10).
-freal-4-real-16 Interpret any REAL(4) as a REAL(16).
-freal-4-real-8 Interpret any REAL(4) as a REAL(8).
-freal-8-real-10 Interpret any REAL(8) as a REAL(10).
-freal-8-real-16 Interpret any REAL(8) as a REAL(16).
-freal-8-real-4 Interpret any REAL(8) as a REAL(4).
-frealloc-lhs Reallocate the LHS in assignments.
-frecord-marker=4 Use a 4-byte record marker for unformatted files.
-frecord-marker=8 Use an 8-byte record marker for unformatted files.
-frecursive Allocate local variables on the stack to allow indirect recursion.
-frepack-arrays Copy array sections into a contiguous block on procedure entry.
-fsecond-underscore Append a second underscore if the name already contains an underscore.
-fsign-zero Apply negative sign to zero values.
-fstack-arrays Put all local arrays on stack.
-ftail-call-workaround Same as -ftail-call-workaround=. Use the latter option instead.
-ftail-call-workaround=<0,2> Disallow tail call optimization when a calling routine may have omitted character lengths.
-ftest-forall-temp Force creation of temporary to test infrequently-executed forall code.
-funderscoring Append underscores to externally visible names.
-fwhole-file Does nothing. Preserved for backward compatibility.
-nocpp Disable preprocessing.
-static-libgfortran Statically link the GNU Fortran helper library (libgfortran).
-std=f2003 Conform to the ISO Fortran 2003 standard.
-std=f2008 Conform to the ISO Fortran 2008 standard.
-std=f2008ts Conform to the ISO Fortran 2008 standard including TS 29113.
-std=f2018 Conform to the ISO Fortran 2018 standard.
-std=f95 Conform to the ISO Fortran 95 standard.
-std=gnu Conform to nothing in particular.
-std=legacy Accept extensions to support legacy code.
The following options are specific to just the language Go:
-fgo-c-header=<file> Write Go struct definitions to file as C code.
-fgo-check-divide-overflow Add explicit checks for division overflow in INT_MIN / -1.
-fgo-check-divide-zero Add explicit checks for division by zero.
-fgo-compiling-runtime Apply special rules for compiling runtime package.
-fgo-debug-escape Emit debugging information related to the escape analysis pass when run with -fgo-optimize-allocs.
-fgo-debug-escape-hash=<string> Hash value to debug escape analysis.
-fgo-dump-<type> Dump Go frontend internal information.
-fgo-optimize-<type> Turn on optimization passes in the frontend.
-fgo-pkgpath=<string> Set Go package path.
-fgo-prefix=<string> Set package-specific prefix for exported Go names.
-fgo-relative-import-path=<path> Treat a relative import as relative to path.
-frequire-return-statement Functions which return values must end with return statements.
The following options are specific to just the language LTO:
-flinker-output= Set linker output type (used internally during LTO optimization).
-fltrans Run the link-time optimizer in local transformation (LTRANS) mode.
-fltrans-output-list= Specify a file to which a list of files output by LTRANS is written.
-fresolution= The resolution file.
-fwpa Run the link-time optimizer in whole program analysis (WPA) mode.
-fwpa= Whole program analysis (WPA) mode with number of parallel jobs specified.
The following options are specific to just the language Modula-2:
-O<number> Set optimization level to <number>.
-Wpedantic-cast compiler warns if a cast is being used on types of differing sizes
-Wpedantic-param-names compiler checks to force definition module procedure parameter names with their implementation module counterpart
-Wstudents extra compile time semantic checking, typically tries to catch bad style
-Wunused-parameter Warn when a function parameter is unused.
-Wverbose-unbounded inform user which parameters will be passed by reference
-fbounds turns on runtime subrange, array index and indirection via NIL pointer checking
-fcase turns on runtime checking to check whether a CASE statement requires an ELSE clause when on was not specified
-fclean cleans all the project objects in the current directory using make
-fcpp use cpp to preprocess the module
-fcppbegin passed to the preprocessor if -fcpp is used
-fcppend passed to the preprocessor if -fcpp is used
-fcppprog= passed to the preprocessor if -fcpp is used
-fd turn on internal debugging of the compiler
-fdebug-builtins call a real function, rather than the builtin equivalent
-fdebug-function-line-numbers turn on the Modula-2 function line number generation (internal switch)
-fdebug-trace-api turn on the Modula-2 api tracing (internal switch)
-fdebug-trace-quad turn on quadruple tracing (internal switch)
-fdef= recognise the specified suffix as a definition module filename
-fdump-system-exports display all inbuilt system items
-fexceptions Enable exception handling.
-fextended-opaque allows opaque types to be implemented as any type (a GNU Modula-2 extension)
-ffloatvalue turns on runtime checking to check whether a floating point number is about to exceed range
-fgm2-version display the GNU Modula-2 version
-findex turns on all range checking for numerical values
-fiso use ISO dialect of Modula-2
-flibs= specify the library order, currently legal entries include: logitech, min, pim-coroutine, ulm, iso
-flocation= set all location values to a specific value (internal)
-fm2-g generate extra nops to improve debugging, producing an instruction for every code related keyword
-fm2-lower-case generate error messages which render keywords in lower case
-fm2-plugin insert plugin to identify runtime errors at compiletime
-fm2-statistics display statistics about the amount of source lines compiled and symbols used
-fm2-whole-program compile all implementation modules and program module at once
-fmake-I= build project path (internal)
-fmakeall build a project using make
-fmakeall0 do not build a project using make (internal)
-fmakeinit generate the start up C code for the module, a file _m2_modulename.c is created
-fmakelist created ordered list of modules
-fmod= recognise the specified suffix as implementation and module filenames
-fmodules display list of modules and location
-fnil turns on runtime checking to detect accessing data through a NIL value pointer
-fno-m2-plugin do not insert plugin to identify runtime errors at compiletime
-fno-pth do not link against the pth library
-fobject-path= set the object path
-fonlylink only link the module and do not compile module
-fpim use PIM [234] dialect of Modula-2
-fpim2 use PIM 2 dialect of Modula-2
-fpim3 use PIM 3 dialect of Modula-2
-fpim4 use PIM 4 dialect of Modula-2
-fpositive-mod-floor-div force positive result from MOD and DIV result floor
-fq internal compiler debugging information, dump the list of quadruples
-frange turns on all range checking for numerical values
-freturn turns on runtime checking for functions which finish without executing a RETURN statement
-fruntime-modules= specify the list of runtime modules and their initialization order
-fshared generate a shared library from the module
-fsoft-check-all turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholediv -ffloatvalue)
-fsources display the location of module source files as they are compiled
-fswig create a swig interface file for the module
-ftarget-ar= full path to target archiver
-ftarget-ranlib= full path to target ranlib
-funbounded-by-reference optimize non var unbounded parameters by passing it by reference, providing it is not written to within the callee procedure.
-fuselist use ordered list of modules when linking
-fversion display the GNU Modula-2 version
-fwholediv turns on all division and modulus by zero checking for ordinal values
-fwholevalue turns on runtime checking to check whether a whole number is about to exceed range
-fxcode issue all errors and warnings in the Xcode format
-version Display the compiler's version.
-x specify the language from the compiler driver
The following options are specific to just the language ObjC:
None found. Use --help=ObjC to show *all* the options supported by the ObjC front-end.
The following options are specific to just the language ObjC++:
-fobjc-call-cxx-cdtors Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
The following options are language-related:
--all-warnings Same as -Wall. Use the latter option instead.
--ansi Same as -ansi. Use the latter option instead.
--assert Same as -A. Use the latter option instead.
--assert= Same as -A. Use the latter option instead.
--comments Same as -C. Use the latter option instead.
--comments-in-macros Same as -CC. Use the latter option instead.
--define-macro Same as -D. Use the latter option instead.
--define-macro= Same as -D. Use the latter option instead.
--dependencies Same as -M. Use the latter option instead.
--dump Same as -d. Use the latter option instead.
--dump= Same as -d. Use the latter option instead.
--imacros Same as -imacros. Use the latter option instead.
--imacros= Same as -imacros. Use the latter option instead.
--include Same as -include. Use the latter option instead.
--include-barrier Same as -I. Use the latter option instead.
--include-directory Same as -I. Use the latter option instead.
--include-directory-after Same as -idirafter. Use the latter option instead.
--include-directory-after= Same as -idirafter. Use the latter option instead.
--include-directory= Same as -I. Use the latter option instead.
--include-prefix Same as -iprefix. Use the latter option instead.
--include-prefix= Same as -iprefix. Use the latter option instead.
--include-with-prefix Same as -iwithprefix. Use the latter option instead.
--include-with-prefix-after Same as -iwithprefix. Use the latter option instead.
--include-with-prefix-after= Same as -iwithprefix. Use the latter option instead.
--include-with-prefix-before Same as -iwithprefixbefore. Use the latter option instead.
--include-with-prefix-before= Same as -iwithprefixbefore. Use the latter option instead.
--include-with-prefix= Same as -iwithprefix. Use the latter option instead.
--include= Same as -include. Use the latter option instead.
--no-line-commands Same as -P. Use the latter option instead.
--no-standard-includes Same as -nostdinc. Use the latter option instead.
--no-standard-libraries Same as -nostdlib. Use the latter option instead.
--no-warnings Same as -w. Use the latter option instead.
--output Same as -o. Use the latter option instead.
--output-pch= This option lacks documentation.
--output= Same as -o. Use the latter option instead.
--pedantic Same as -Wpedantic. Use the latter option instead.
--preprocess Same as -E. Use the latter option instead.
--print-missing-file-dependencies Same as -MG. Use the latter option instead.
--trace-includes Same as -H. Use the latter option instead.
--traditional-cpp Same as -traditional-cpp. Use the latter option instead.
--trigraphs Same as -trigraphs. Use the latter option instead.
--undefine-macro Same as -U. Use the latter option instead.
--undefine-macro= Same as -U. Use the latter option instead.
--user-dependencies Same as -MM. Use the latter option instead.
--verbose Same as -v. Use the latter option instead.
--write-dependencies Same as -MD. Use the latter option instead.
--write-user-dependencies Same as -MMD. Use the latter option instead.
-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>.
-C Do not discard comments.
-CC Do not discard comments in macro expansions.
-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1.
-E passed to the preprocessor if -fcpp is used
-F <dir> Add <dir> to the end of the main framework include path.
-H Print the name of header files as they are used.
-I <dir> Add <dir> to the end of the main include path.
-J<directory> Put MODULE files in 'directory'.
-L This option lacks documentation.
-M Generate make dependencies.
-MD Generate make dependencies and compile.
-MF <file> Write dependency output to the given file.
-MG Treat missing header files as generated files.
-MM Like -M but ignore system header files.
-MMD Like -MD but ignore system header files.
-MP Generate phony targets for all headers.
-MQ <target> Add a MAKE-quoted target.
-MT <target> Add an unquoted target.
-P Do not generate #line directives.
-U<macro> Undefine <macro>.
-Wabi Warn about things that will change when compiling with an ABI-compliant compiler.
-Wabi-tag Warn if a subobject has an abi_tag attribute that the complete object type does not have.
-Wabi= Warn about things that change between the current -fabi-version and the specified version.
-Wabsolute-value Warn on suspicious calls of standard functions computing absolute values.
-Waddress Warn about suspicious uses of memory addresses.
-Waddress-of-packed-member Warn when the address of packed member of struct or union is taken.
-Waligned-new Warn about 'new' of type with extended alignment without -faligned-new. Same as -Waligned-new=.
-Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
-Wall Enable most warning messages.
-Walloc-size-larger-than= -Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that attempt to allocate objects larger than the specified number of bytes.
-Walloc-zero -Walloc-zero Warn for calls to allocation functions that specify zero bytes.
-Walloca Warn on any use of alloca.
-Walloca-larger-than=<number> Warn on unbounded uses of alloca, and on bounded uses of alloca whose bound can be larger than <number> bytes.
-Wassign-intercept Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
-Wbad-function-cast Warn about casting functions to incompatible types.
-Wbool-compare Warn about boolean expression compared with an integer value different from true/false.
-Wbool-operation Warn about certain operations on boolean expressions.
-Wbuiltin-declaration-mismatch Warn when a built-in function is declared with the wrong signature.
-Wbuiltin-macro-redefined Warn when a built-in preprocessor macro is undefined or redefined.
-Wc++-compat Warn about C constructs that are not in the common subset of C and C++.
-Wc++0x-compat Same as -Wc++11-compat. Use the latter option instead.
-Wc++11-compat Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
-Wc++14-compat Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
-Wc++17-compat Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
-Wc++1z-compat Same as -Wc++17-compat. Use the latter option instead.
-Wc11-c2x-compat Warn about features not present in ISO C11, but present in ISO C2X.
-Wc90-c99-compat Warn about features not present in ISO C90, but present in ISO C99.
-Wc99-c11-compat Warn about features not present in ISO C99, but present in ISO C11.
-Wcast-function-type Warn about casts between incompatible function types.
-Wcast-qual Warn about casts which discard qualifiers.
-Wcatch-value Warn about catch handlers of non-reference type. Same as -Wcatch-value=.
-Wcatch-value=<0,3> Warn about catch handlers of non-reference type.
-Wchar-subscripts Warn about subscripts whose type is "char".
-Wchkp Deprecated in GCC 9. This switch has no effect.
-Wclass-conversion Warn when a conversion function will never be called due to the type it converts to.
-Wclass-memaccess Warn for unsafe raw memory writes to objects of class types.
-Wclobbered Warn about variables that might be changed by "longjmp" or "vfork".
-Wcomment Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
-Wcomments Synonym for -Wcomment. Same as -Wcomment.
-Wconditionally-supported Warn for conditionally-supported constructs.
-Wconversion Warn for implicit type conversions that may change a value.
-Wconversion-null Warn for converting NULL from/to a non-pointer type.
-Wcpp Warn when a #warning directive is encountered.
-Wctor-dtor-privacy Warn when all constructors and destructors are private.
-Wdangling-else Warn about dangling else.
-Wdate-time Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
-Wdeclaration-after-statement Warn when a declaration is found after a statement.
-Wdelete-incomplete Warn when deleting a pointer to incomplete type.
-Wdelete-non-virtual-dtor Warn about deleting polymorphic objects with non-virtual destructors.
-Wdeprecated Warn if a deprecated compiler feature, class, method, or field is used.
-Wdeprecated-copy Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation.
-Wdeprecated-copy-dtor Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation or destructor.
-Wdesignated-init Warn about positional initialization of structs requiring designated initializers.
-Wdiscarded-array-qualifiers Warn if qualifiers on arrays which are pointer targets are discarded.
-Wdiscarded-qualifiers Warn if type qualifiers on pointers are discarded.
-Wdiv-by-zero Warn about compile-time integer division by zero.
-Wdouble-promotion Warn about implicit conversions from "float" to "double".
-Wduplicate-decl-specifier Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
-Wduplicated-branches Warn about duplicated branches in if-else statements.
-Wduplicated-cond Warn about duplicated conditions in an if-else-if chain.
-Weffc++ Warn about violations of Effective C++ style rules.
-Wempty-body Warn about an empty body in an if or else statement.
-Wendif-labels Warn about stray tokens after #else and #endif.
-Wenum-compare Warn about comparison of different enum types.
-Werror Treat all warnings as errors.
-Werror-implicit-function-declaration This switch is deprecated; use -Werror=implicit-function-declaration instead. Same as -Werror=.
-Wexpansion-to-defined Warn if "defined" is used outside #if.
-Wextra Print extra (possibly unwanted) warnings.
-Wextra-semi Warn about semicolon after in-class function definition.
-Wfloat-conversion Warn for implicit type conversions that cause loss of floating point precision.
-Wfloat-equal Warn if testing floating point numbers for equality.
-Wformat Warn about printf/scanf/strftime/strfmon format string anomalies. Same as -Wformat=.
-Wformat-contains-nul Warn about format strings that contain NUL bytes.
-Wformat-extra-args Warn if passing too many arguments to a function for its format string.
-Wformat-nonliteral Warn about format strings that are not literals.
-Wformat-overflow<0,2> Warn about function calls with format strings that write past the end of the destination region. Same as -Wformat-overflow=1. Same as -Wformat-overflow=.
-Wformat-overflow=<0,2> Warn about function calls with format strings that write past the end of the destination region.
-Wformat-security Warn about possible security problems with format functions.
-Wformat-signedness Warn about sign differences with format functions.
-Wformat-truncation Warn about calls to snprintf and similar functions that truncate output. Same as -Wformat-truncation=1. Same as -Wformat-truncation=.
-Wformat-truncation=<0,2> Warn about calls to snprintf and similar functions that truncate output.
-Wformat-y2k Warn about strftime formats yielding 2-digit years.
-Wformat-zero-length Warn about zero-length formats.
-Wformat=<0,2> Warn about printf/scanf/strftime/strfmon format string anomalies.
-Wframe-address Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
-Wif-not-aligned Warn when the field in a struct is not aligned.
-Wignored-attributes Warn whenever attributes are ignored.
-Wignored-qualifiers Warn whenever type qualifiers are ignored.
-Wimplicit Warn about implicit declarations.
-Wimplicit-function-declaration Warn about implicit function declarations.
-Wimplicit-int Warn when a declaration does not specify a type.
-Wimport This option lacks documentation.
-Wincompatible-pointer-types Warn when there is a conversion between pointers that have incompatible types.
-Winherited-variadic-ctor Warn about C++11 inheriting constructors when the base has a variadic constructor.
-Winit-list-lifetime Warn about uses of std::initializer_list that can result in dangling pointers.
-Winit-self Warn about variables which are initialized to themselves.
-Wint-conversion Warn about incompatible integer to pointer and pointer to integer conversions.
-Wint-in-bool-context Warn for suspicious integer expressions in boolean context.
-Wint-to-pointer-cast Warn when there is a cast to a pointer from an integer of a different size.
-Winvalid-offsetof Warn about invalid uses of the "offsetof" macro.
-Winvalid-pch Warn about PCH files that are found but not used.
-Wjump-misses-init Warn when a jump misses a variable initialization.
-Wliteral-suffix Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
-Wlogical-not-parentheses Warn when logical not is used on the left hand side operand of a comparison.
-Wlogical-op Warn when a logical operator is suspiciously always evaluating to true or false.
-Wlong-long Do not warn about using "long long" when -pedantic.
-Wmain Warn about suspicious declarations of "main".
-Wmaybe-uninitialized Warn about maybe uninitialized automatic variables.
-Wmemset-elt-size Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
-Wmemset-transposed-args Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
-Wmisleading-indentation Warn when the indentation of the code does not reflect the block structure.
-Wmissing-attributes Warn about declarations of entities that may be missing attributes that related entities have been declared with.
-Wmissing-braces Warn about possibly missing braces around initializers.
-Wmissing-declarations Warn about global functions without previous declarations.
-Wmissing-field-initializers Warn about missing fields in struct initializers.
-Wmissing-format-attribute Same as -Wsuggest-attribute=format. Use the latter option instead.
-Wmissing-include-dirs Warn about user-specified include directories that do not exist.
-Wmissing-parameter-type Warn about function parameters declared without a type specifier in K&R-style functions.
-Wmissing-prototypes Warn about global functions without prototypes.
-Wmudflap This option lacks documentation.
-Wmultichar Warn about use of multi-character character constants.
-Wmultiple-inheritance Warn on direct multiple inheritance.
-Wmultistatement-macros Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
-Wnamespaces Warn on namespace definition.
-Wnarrowing Warn about narrowing conversions within { } that are ill-formed in C++11.
-Wnested-externs Warn about "extern" declarations not at file scope.
-Wno-alloc-size-larger-than -Wno-alloc-size-larger-than Disable Walloc-size-larger-than= warning. Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger. Same as -Walloc-size-larger-than=.
-Wno-alloca-larger-than -Wno-alloca-larger-than Disable Walloca-larger-than= warning. Equivalent to Walloca-larger-than=<SIZE_MAX> or larger. Same as -Walloca-larger-than=.
-Wno-vla-larger-than -Wno-vla-larger-than Disable Wvla-larger-than= warning. Equivalent to Wvla-larger-than=<SIZE_MAX> or larger. Same as -Wvla-larger-than=.
-Wnoexcept Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
-Wnoexcept-type Warn if C++17 noexcept function type will change the mangled name of a symbol.
-Wnon-template-friend Warn when non-templatized friend functions are declared within a template.
-Wnon-virtual-dtor Warn about non-virtual destructors.
-Wnonnull Warn about NULL being passed to argument slots marked as requiring non-NULL.
-Wnonnull-compare Warn if comparing pointer parameter with nonnull attribute with NULL.
-Wnormalized Same as -Wnormalized=. Use the latter option instead.
-Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
-Wold-style-cast Warn if a C-style cast is used in a program.
-Wold-style-declaration Warn for obsolescent usage in a declaration.
-Wold-style-definition Warn if an old-style parameter definition is used.
-Wopenmp-simd Warn if a simd directive is overridden by the vectorizer cost model.
-Woverlength-strings Warn if a string is longer than the maximum portable length specified by the standard.
-Woverloaded-virtual Warn about overloaded virtual function names.
-Woverride-init Warn about overriding initializers without side effects.
-Woverride-init-side-effects Warn about overriding initializers with side effects.
-Wpacked-bitfield-compat Warn about packed bit-fields whose offset changed in GCC 4.4.
-Wpacked-not-aligned Warn when fields in a struct with the packed attribute are misaligned.
-Wparentheses Warn about possibly missing parentheses.
-Wpedantic Issue warnings needed for strict compliance to the standard.
-Wpessimizing-move Warn about calling std::move on a local object in a return statement preventing copy elision.
-Wpmf-conversions Warn when converting the type of pointers to member functions.
-Wpointer-arith Warn about function pointer arithmetic.
-Wpointer-compare Warn when a pointer is compared with a zero character constant.
-Wpointer-sign Warn when a pointer differs in signedness in an assignment.
-Wpointer-to-int-cast Warn when a pointer is cast to an integer of a different size.
-Wpragmas Warn about misuses of pragmas.
-Wprio-ctor-dtor Warn if constructor or destructors with priorities from 0 to 100 are used.
-Wproperty-assign-default Warn if a property for an Objective-C object has no assign semantics specified.
-Wprotocol Warn if inherited methods are unimplemented.
-Wpsabi This option lacks documentation.
-Wredundant-decls Warn about multiple declarations of the same object.
-Wredundant-move Warn about redundant calls to std::move.
-Wregister Warn about uses of register storage specifier.
-Wreorder Warn when the compiler reorders code.
-Wrestrict Warn when an argument passed to a restrict-qualified parameter aliases with another argument.
-Wreturn-type Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++).
-Wscalar-storage-order Warn on suspicious constructs involving reverse scalar storage order.
-Wselector Warn if a selector has multiple methods.
-Wsequence-point Warn about possible violations of sequence point rules.
-Wshadow-ivar Warn if a local declaration hides an instance variable.
-Wshift-count-negative Warn if shift count is negative.
-Wshift-count-overflow Warn if shift count >= width of type.
-Wshift-negative-value Warn if left shifting a negative value.
-Wshift-overflow Warn if left shift of a signed value overflows. Same as -Wshift-overflow=.
-Wshift-overflow=<0,2> Warn if left shift of a signed value overflows.
-Wsign-compare Warn about signed-unsigned comparisons.
-Wsign-conversion Warn for implicit type conversions between signed and unsigned integers.
-Wsign-promo Warn when overload promotes from unsigned to signed.
-Wsized-deallocation Warn about missing sized deallocation functions.
-Wsizeof-array-argument Warn when sizeof is applied on a parameter declared as an array.
-Wsizeof-pointer-div Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
-Wsizeof-pointer-memaccess Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
-Wstrict-aliasing=<0,3> Warn about code which might break strict aliasing rules.
-Wstrict-null-sentinel Warn about uncasted NULL used as sentinel.
-Wstrict-overflow=<0,5> Warn about optimizations that assume that signed overflow is undefined.
-Wstrict-prototypes Warn about unprototyped function declarations.
-Wstrict-selector-match Warn if type signatures of candidate methods do not match exactly.
-Wstringop-overflow Warn about buffer overflow in string manipulation functions like memcpy and strcpy. Same as -Wstringop-overflow=.
-Wstringop-overflow=<0,4> Under the control of Object Size type, warn about buffer overflow in string manipulation functions like memcpy and strcpy.
-Wstringop-truncation Warn about truncation in string manipulation functions like strncat and strncpy.
-Wsubobject-linkage Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
-Wsuggest-attribute=format Warn about functions which might be candidates for format attributes.
-Wsuggest-override Suggest that the override keyword be used when the declaration of a virtual function overrides another.
-Wswitch Warn about enumerated switches, with no default, missing a case.
-Wswitch-bool Warn about switches with boolean controlling expression.
-Wswitch-default Warn about enumerated switches missing a "default:" statement.
-Wswitch-enum Warn about all enumerated switches missing a specific case.
-Wsync-nand Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
-Wsynth Deprecated. This switch has no effect.
-Wsystem-headers Do not suppress warnings from system headers.
-Wtautological-compare Warn if a comparison always evaluates to true or false.
-Wtemplates Warn on primary template declaration.
-Wterminate Warn if a throw expression will always result in a call to terminate().
-Wtraditional Warn about features not present in traditional C.
-Wtraditional-conversion Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
-Wtrigraphs Warn if trigraphs are encountered that might affect the meaning of the program.
-Wundeclared-selector Warn about @selector()s without previously declared methods.
-Wundef Warn if an undefined macro is used in an #if directive.
-Wuninitialized Warn about uninitialized automatic variables.
-Wunknown-pragmas Warn about unrecognized pragmas.
-Wunsuffixed-float-constants Warn about unsuffixed float constants.
-Wunused Enable all -Wunused- warnings.
-Wunused-const-variable Warn when a const variable is unused. Same as -Wunused-const-variable=.
-Wunused-const-variable=<0,2> Warn when a const variable is unused.
-Wunused-local-typedefs Warn when typedefs locally defined in a function are not used.
-Wunused-macros Warn about macros defined in the main file that are not used.
-Wunused-result Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
-Wunused-variable Warn when a variable is unused.
-Wuseless-cast Warn about useless casts.
-Wvarargs Warn about questionable usage of the macros used to retrieve variable arguments.
-Wvariadic-macros Warn about using variadic macros.
-Wvirtual-inheritance Warn on direct virtual inheritance.
-Wvirtual-move-assign Warn if a virtual base has a non-trivial move assignment operator.
-Wvla Warn if a variable length array is used.
-Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and on bounded uses of variable-length arrays whose bound can be larger than <number> bytes. <number> bytes.
-Wvolatile-register-var Warn when a register variable is declared volatile.
-Wwrite-strings In C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C
standard.
-Wzero-as-null-pointer-constant Warn when a literal '0' is used as null pointer.
-ansi A synonym for -std=c89 (for C) or -std=c++98 (for C++).
-d<letters> Enable dumps from specific passes of the compiler.
-fRTS= Select the runtime.
-fabi-compat-version= The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
-faccess-control Enforce class member access control semantics.
-fada-spec-parent= -fada-spec-parent=unit Dump Ada specs as child units of given parent.
-faligned-new Support C++17 allocation of over-aligned types. Same as -faligned-new=.
-faligned-new= -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
-fall-virtual This option lacks documentation.
-fallow-parameterless-variadic-functions Allow variadic functions without named parameter.
-falt-external-templates No longer supported.
-fasm Recognize the "asm" keyword.
-fbuilding-libgcc This option lacks documentation.
-fbuiltin Recognize built-in functions.
-fbuiltin- This option lacks documentation.
-fcanonical-system-headers Where shorter, use canonicalized paths to systems headers.
-fchar8_t Enable the char8_t fundamental type and use it as the type for UTF-8 string and character literals.
-fcheck-pointer-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-check-incomplete-type Deprecated in GCC 9. This switch has no effect.
-fchkp-check-read Deprecated in GCC 9. This switch has no effect.
-fchkp-check-write Deprecated in GCC 9. This switch has no effect.
-fchkp-first-field-has-own-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-flexible-struct-trailing-arrays Deprecated in GCC 9. This switch has no effect.
-fchkp-instrument-calls Deprecated in GCC 9. This switch has no effect.
-fchkp-instrument-marked-only Deprecated in GCC 9. This switch has no effect.
-fchkp-narrow-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-narrow-to-innermost-array Deprecated in GCC 9. This switch has no effect.
-fchkp-optimize This option lacks documentation.
-fchkp-store-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-treat-zero-dynamic-size-as-infinite Deprecated in GCC 9. This switch has no effect.
-fchkp-use-fast-string-functions Deprecated in GCC 9. This switch has no effect.
-fchkp-use-nochk-string-functions Deprecated in GCC 9. This switch has no effect.
-fchkp-use-static-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-use-static-const-bounds Deprecated in GCC 9. This switch has no effect.
-fchkp-use-wrappers Deprecated in GCC 9. This switch has no effect.
-fchkp-zero-input-bounds-for-main Deprecated in GCC 9. This switch has no effect.
-fcilkplus Deprecated in GCC 8. This switch has no effect.
-fconcepts Enable support for C++ concepts.
-fcond-mismatch Allow the arguments of the '?' operator to have different types.
-fconserve-space Does nothing. Preserved for backward compatibility.
-fconst-string-class=<name> Use class <name> for constant strings.
-fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
-fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
-fconstexpr-ops-limit=<number> Specify maximum number of constexpr operations during a single constexpr evaluation.
-fdebug-cpp Emit debug annotations during preprocessing.
-fdeclone-ctor-dtor Factor complex constructors and destructors to favor space over speed.
-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
-fdefault-inline Does nothing. Preserved for backward compatibility.
-fdiagnostics-show-template-tree Print hierarchical comparisons when template types are mismatched.
-fdirectives-only Preprocess directives only.
-fdollars-in-identifiers Permit '$' as an identifier character.
-fdump-ada-spec Write all declarations as Ada code transitively.
-fdump-ada-spec-slim Write all declarations as Ada code for the given file only.
-felide-constructors This option lacks documentation.
-felide-type -fno-elide-type Do not elide common elements in template comparisons.
-femit-struct-debug-baseonly Aggressive reduced debug info for structs.
-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
-femit-struct-debug-reduced Conservative reduced debug info for structs.
-fenforce-eh-specs Generate code to check exception specifications.
-fenum-int-equiv This option lacks documentation.
-fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
-fext-numeric-literals Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.
-fextended-identifiers Permit universal character names (\u and \U) in identifiers.
-fextern-tls-init Support dynamic initialization of thread-local variables in a different translation unit.
-fexternal-templates This option lacks documentation.
-ffor-scope This option lacks documentation.
-ffreestanding Do not assume that standard C libraries and "main" exist.
-ffriend-injection This option lacks documentation.
-fgnu-keywords Recognize GNU-defined keywords.
-fgnu-runtime Generate code for GNU runtime environment.
-fgnu89-inline Use traditional GNU semantics for inline functions.
-fguiding-decls This option lacks documentation.
-fhandle-exceptions Same as -fexceptions. Use the latter option instead. Uses of this option are diagnosed.
-fhonor-std This option lacks documentation.
-fhosted Assume normal C execution environment.
-fhuge-objects No longer supported.
-fimplement-inlines Export functions even if they can be inlined.
-fimplicit-inline-templates Emit implicit instantiations of inline templates.
-fimplicit-templates Emit implicit instantiations of templates.
-finput-charset=<cset> Specify the default character set for source files.
-fvisibility=[private|protected|public|package] Set the default symbol visibility.
-flabels-ok This option lacks documentation.
-flax-vector-conversions Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
-flocal-ivars Allow access to instance variables as if they were local declarations within instance method implementations.
-fmacro-prefix-map= -fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
-fms-extensions Don't warn about uses of Microsoft extensions.
-fmudflap This option lacks documentation.
-fmudflapir This option lacks documentation.
-fmudflapth This option lacks documentation.
-fname-mangling-version- This option lacks documentation.
-fnew-abi This option lacks documentation.
-fnew-inheriting-ctors Implement C++17 inheriting constructor semantics.
-fnew-ttp-matching Implement resolution of DR 150 for matching of template template arguments.
-fnext-runtime Generate code for NeXT (Apple Mac OS X) runtime environment.
-fnil-receivers Assume that receivers of Objective-C messages may be nil.
-fnonansi-builtins This option lacks documentation.
-fnonnull-objects This option lacks documentation.
-fnothrow-opt Treat a throw() exception specification as noexcept to improve code size.
-fobjc-abi-version= Specify which ABI to use for Objective-C family code and meta-data generation.
-fobjc-direct-dispatch Allow fast jumps to the message dispatcher.
-fobjc-exceptions Enable Objective-C exception and synchronization syntax.
-fobjc-gc Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
-fobjc-nilcheck Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
-fobjc-sjlj-exceptions Enable Objective-C setjmp exception handling runtime.
-fobjc-std=objc1 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
-fopenacc Enable OpenACC.
-fopenacc-dim= Specify default OpenACC compute dimensions.
-fopenmp Enable OpenMP (implies -frecursive in Fortran).
-fopenmp-simd Enable OpenMP's SIMD directives.
-foperator-names Recognize C++ keywords like "compl" and "xor".
-foptional-diags Does nothing. Preserved for backward compatibility.
-fpch-deps This option lacks documentation.
-fpch-preprocess Look for and use PCH files even when preprocessing.
-fpermissive Downgrade conformance errors to warnings.
-fplan9-extensions Enable Plan 9 language extensions.
-fpreprocessed Treat the input file as already preprocessed.
-fpretty-templates -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
-fprintf-return-value Treat known sprintf return values as constants.
-freplace-objc-classes Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
-frepo Enable automatic template instantiation.
-frtti Generate run time type descriptor information.
-fshort-enums Use the narrowest integer type possible for enumeration types.
-fshort-wchar Force the underlying type for "wchar_t" to be "unsigned short".
-fsigned-bitfields When "signed" or "unsigned" is not given make the bitfield signed.
-fsigned-char Make "char" signed by default.
-fsized-deallocation Enable C++14 sized deallocation support.
-fsquangle This option lacks documentation.
-fsso-struct=[big-endian|little-endian|native] Set the default scalar storage order.
-fstats Display statistics accumulated during compilation.
-fstrict-enums Assume that values of enumeration type are always within the minimum range of that type.
-fstrict-prototype This option lacks documentation.
-fstrong-eval-order Follow the C++17 evaluation order requirements for assignment expressions, shift, member function calls, etc. Same as -fstrong-eval-order=.
-fstrong-eval-order= Follow the C++17 evaluation order requirements for assignment expressions, shift, member function calls, etc.
-ftabstop=<number> Distance between tab stops for column reporting.
-ftemplate-backtrace-limit= Set the maximum number of template instantiation notes for a single warning or error.
-ftemplate-depth- Same as -ftemplate-depth=. Use the latter option instead.
-ftemplate-depth=<number> Specify maximum template instantiation depth.
-fthis-is-variable This option lacks documentation.
-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
-ftrack-macro-expansion This option lacks documentation.
-ftrack-macro-expansion= -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
-funsigned-bitfields When "signed" or "unsigned" is not given make the bitfield unsigned.
-funsigned-char Make "char" unsigned by default.
-fuse-cxa-atexit Use __cxa_atexit to register destructors.
-fuse-cxa-get-exception-ptr Use __cxa_get_exception_ptr in exception handling.
-fvisibility-inlines-hidden Marks all inlined functions and methods as having hidden visibility.
-fvisibility-ms-compat Changes visibility to match Microsoft Visual Studio by default.
-fvtable-gc No longer supported.
-fvtable-thunks No longer supported.
-fweak Emit common-like symbols as weak symbols.
-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
-fworking-directory Generate a #line directive pointing at the current working directory.
-fxref No longer supported.
-fzero-link Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
-gant Catch typos.
-gen-decls Dump declarations to a .decl file.
-gnat<options> Specify options to GNAT.
-gnatO Set name of output ALI file (internal switch).
-idirafter <dir> Add <dir> to the end of the system include path.
-imacros <file> Accept definition of macros in <file>.
-imultilib <dir> Set <dir> to be the multilib include subdirectory.
-include <file> Include the contents of <file> before other files.
-iprefix <path> Specify <path> as a prefix for next two options.
-iquote <dir> Add <dir> to the end of the quote include path.
-isysroot <dir> Set <dir> to be the system root directory.
-isystem <dir> Add <dir> to the start of the system include path.
-iwithprefix <dir> Add <dir> to the end of the system include path.
-iwithprefixbefore <dir> Add <dir> to the end of the main include path.
-lang-asm This option lacks documentation.
-nostdinc Do not search standard system include directories (those specified with -isystem will still be used).
-nostdinc++ Do not search standard system include directories for C++.
-nostdlib Do not look for object files in standard path.
-o <file> Place output into <file>.
-pedantic Same as -Wpedantic. Use the latter option instead.
-print-objc-runtime-info Generate C header of platform-specific features.
-remap Remap file names when including files.
-std=c++03 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum. Same as -std=c++98.
-std=c++0x Deprecated in favor of -std=c++11. Same as -std=c++11.
-std=c++11 Conform to the ISO 2011 C++ standard.
-std=c++14 Conform to the ISO 2014 C++ standard.
-std=c++17 Conform to the ISO 2017 C++ standard.
-std=c++1y Deprecated in favor of -std=c++14. Same as -std=c++14.
-std=c++1z Deprecated in favor of -std=c++17. Same as -std=c++17.
-std=c++2a Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
-std=c++98 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
-std=c11 Conform to the ISO 2011 C standard.
-std=c17 Conform to the ISO 2017 C standard (published in 2018).
-std=c18 Conform to the ISO 2017 C standard (published in 2018). Same as -std=c17.
-std=c1x Deprecated in favor of -std=c11. Same as -std=c11.
-std=c2x Conform to the ISO 202X C standard draft (experimental and incomplete support).
-std=c89 Conform to the ISO 1990 C standard. Same as -std=c90.
-std=c90 Conform to the ISO 1990 C standard.
-std=c99 Conform to the ISO 1999 C standard.
-std=c9x Deprecated in favor of -std=c99. Same as -std=c99.
-std=gnu++03 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensions. Same as -std=gnu++98.
-std=gnu++0x Deprecated in favor of -std=gnu++11. Same as -std=gnu++11.
-std=gnu++11 Conform to the ISO 2011 C++ standard with GNU extensions.
-std=gnu++14 Conform to the ISO 2014 C++ standard with GNU extensions.
-std=gnu++17 Conform to the ISO 2017 C++ standard with GNU extensions.
-std=gnu++1y Deprecated in favor of -std=gnu++14. Same as -std=gnu++14.
-std=gnu++1z Deprecated in favor of -std=gnu++17. Same as -std=gnu++17.
-std=gnu++2a Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
-std=gnu++98 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensions.
-std=gnu11 Conform to the ISO 2011 C standard with GNU extensions.
-std=gnu17 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
-std=gnu18 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions. Same as -std=gnu17.
-std=gnu1x Deprecated in favor of -std=gnu11. Same as -std=gnu11.
-std=gnu2x Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support).
-std=gnu89 Conform to the ISO 1990 C standard with GNU extensions. Same as -std=gnu90.
-std=gnu90 Conform to the ISO 1990 C standard with GNU extensions.
-std=gnu99 Conform to the ISO 1999 C standard with GNU extensions.
-std=gnu9x Deprecated in favor of -std=gnu99. Same as -std=gnu99.
-std=iso9899:1990 Conform to the ISO 1990 C standard. Same as -std=c90.
-std=iso9899:199409 Conform to the ISO 1990 C standard as amended in 1994.
-std=iso9899:1999 Conform to the ISO 1999 C standard. Same as -std=c99.
-std=iso9899:199x Deprecated in favor of -std=iso9899:1999. Same as -std=c99.
-std=iso9899:2011 Conform to the ISO 2011 C standard. Same as -std=c11.
-std=iso9899:2017 Conform to the ISO 2017 C standard (published in 2018). Same as -std=c17.
-std=iso9899:2018 Conform to the ISO 2017 C standard (published in 2018). Same as -std=c17.
-traditional-cpp Enable traditional preprocessing.
-trigraphs Support ISO C trigraphs.
-undef Do not predefine system-specific and GCC-specific macros.
-v Enable verbose output.
-w Suppress warnings.
The --param option recognizes the following as parameters:
predictable-branch-outcome Maximal estimated outcome of branch considered predictable.
inline-min-speedup The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto.
max-inline-insns-single The maximum number of instructions in a single function eligible for inlining.
max-inline-insns-auto The maximum number of instructions when automatically inlining.
max-inline-insns-small The maximum number of instructions when automatically inlining small functions.
max-inline-insns-size The maximum number of instructions when inlining for size.
uninlined-function-insns Instruction accounted for function prologue, epilogue and other overhead.
uninlined-function-time Time accounted for function prologue, epilogue and other overhead.
uninlined-thunk-insns Instruction accounted for function thunk overhead.
uninlined-thunk-time Time accounted for function thunk overhead.
max-inline-insns-recursive The maximum number of instructions inline function can grow to via recursive inlining.
max-inline-insns-recursive-auto The maximum number of instructions non-inline function can grow to via recursive inlining.
max-inline-recursive-depth The maximum depth of recursive inlining for inline functions.
max-inline-recursive-depth-auto The maximum depth of recursive inlining for non-inline functions.
min-inline-recursive-probability Inline recursively only when the probability of call being executed exceeds the parameter.
max-early-inliner-iterations The maximum number of nested indirect inlining performed by early inliner.
comdat-sharing-probability Probability that COMDAT function will be shared with different compilation unit.
partial-inlining-entry-probability Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen.
max-variable-expansions-in-unroller If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling.
min-vect-loop-bound If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.
max-delay-slot-insn-search The maximum number of instructions to consider to fill a delay slot.
max-delay-slot-live-search The maximum number of instructions to consider to find accurate live register information.
max-pending-list-length The maximum length of scheduling's pending operations list.
max-modulo-backtrack-attempts The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop.
large-function-insns The size of function body to be considered large.
large-function-growth Maximal growth due to inlining of large function (in percent).
large-unit-insns The size of translation unit to be considered large.
inline-unit-growth How much can given compilation unit grow because of the inlining (in percent).
ipcp-unit-growth How much can given compilation unit grow because of the interprocedural constant propagation (in percent).
early-inlining-insns Maximal estimated growth of function body caused by early inlining of single call.
large-stack-frame The size of stack frame to be considered large.
large-stack-frame-growth Maximal stack frame growth due to inlining (in percent).
stack-clash-protection-guard-size Size of the stack guard expressed as a power of two in bytes.
stack-clash-protection-probe-interval Interval in which to probe the stack expressed as a power of two in bytes.
max-gcse-memory The maximum amount of memory to be allocated by GCSE.
max-gcse-insertion-ratio The maximum ratio of insertions to deletions of expressions in GCSE.
gcse-after-reload-partial-fraction The threshold ratio for performing partial redundancy elimination after reload.
gcse-after-reload-critical-fraction The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload.
gcse-cost-distance-ratio Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations.
gcse-unrestricted-cost Cost at which GCSE optimizations will not constraint the distance an expression can travel.
max-hoist-depth Maximum depth of search in the dominator tree for expressions to hoist.
max-pow-sqrt-depth Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant.
max-unrolled-insns The maximum number of instructions to consider to unroll in a loop.
max-average-unrolled-insns The maximum number of instructions to consider to unroll in a loop on average.
max-unroll-times The maximum number of unrollings of a single loop.
max-peeled-insns The maximum number of insns of a peeled loop.
max-peel-times The maximum number of peelings of a single loop.
max-peel-branches The maximum number of branches on the path through the peeled sequence.
max-completely-peeled-insns The maximum number of insns of a completely peeled loop.
max-completely-peel-times The maximum number of peelings of a single loop that is peeled completely.
max-once-peeled-insns The maximum number of insns of a peeled loop that rolls only once.
max-completely-peel-loop-nest-depth The maximum depth of a loop nest we completely peel.
max-unswitch-insns The maximum number of insns of an unswitched loop.
max-unswitch-level The maximum number of unswitchings in a single loop.
max-loop-header-insns The maximum number of insns in loop header duplicated by the copy loop headers pass.
max-iterations-to-track Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates.
max-iterations-computation-cost Bound on the cost of an expression to compute the number of iterations.
sms-max-ii-factor A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop.
sms-min-sc The minimum value of stage count that swing modulo scheduler will generate.
sms-dfa-history The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.
sms-loop-average-count-threshold A threshold on the average loop count considered by the swing modulo scheduler.
hot-bb-count-fraction Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot (used in non-LTO mode).
hot-bb-count-ws-permille A basic block profile count is considered hot if it contributes to the given permillage of the entire profiled execution (used in LTO mode).
hot-bb-frequency-fraction Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot.
unlikely-bb-count-fraction The minimum fraction of profile runs a given basic block execution count must be not to be considered unlikely.
align-threshold Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.
align-loop-iterations Loops iterating at least selected number of iterations will get loop alignment.
max-predicted-iterations The maximum number of loop iterations we predict statically.
builtin-expect-probability Set the estimated probability in percentage for builtin expect. The default value is 90% probability.
builtin-string-cmp-inline-length The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3.
tracer-dynamic-coverage-feedback The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available.
tracer-dynamic-coverage The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available.
tracer-max-code-growth Maximal code growth caused by tail duplication (in percent).
tracer-min-branch-ratio Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent).
tracer-min-branch-probability-feedback Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available.
tracer-min-branch-probability Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available.
max-crossjump-edges The maximum number of incoming edges to consider for crossjumping.
min-crossjump-insns The minimum number of matching instructions to consider for crossjumping.
max-grow-copy-bb-insns The maximum expansion factor when copying basic blocks.
max-goto-duplication-insns The maximum number of insns to duplicate when unfactoring computed gotos.
max-cse-path-length The maximum length of path considered in cse.
max-cse-insns The maximum instructions CSE process before flushing.
lim-expensive The minimum cost of an expensive expression in the loop invariant motion.
iv-consider-all-candidates-bound Bound on number of candidates below that all candidates are considered in iv optimizations.
iv-max-considered-uses Bound on number of iv uses in loop optimized in iv optimizations.
iv-always-prune-cand-set-bound If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization.
avg-loop-niter Average number of iterations of a loop.
dse-max-object-size Maximum size (in bytes) of objects tracked bytewise by dead store elimination.
dse-max-alias-queries-per-store Maximum number of queries into the alias oracle per store.
scev-max-expr-size Bound on size of expressions used in the scalar evolutions analyzer.
scev-max-expr-complexity Bound on the complexity of the expressions in the scalar evolutions analyzer.
max-tree-if-conversion-phi-args Maximum number of arguments in a PHI supported by TREE if-conversion unless the loop is marked with simd pragma.
vect-max-version-for-alignment-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check.
vect-max-version-for-alias-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check.
vect-max-peeling-for-alignment Maximum number of loop peels to enhance alignment of data references in a loop.
max-cselib-memory-locations The maximum memory locations recorded by cselib.
ggc-min-expand Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap.
ggc-min-heapsize Minimum heap size before we start collecting garbage, in kilobytes.
max-reload-search-insns The maximum number of instructions to search backward when looking for equivalent reload.
sink-frequency-threshold Target block's relative execution frequency (as a percentage) required to sink a statement.
max-sched-region-blocks The maximum number of blocks in a region to be considered for interblock scheduling.
max-sched-region-insns The maximum number of insns in a region to be considered for interblock scheduling.
max-pipeline-region-blocks The maximum number of blocks in a region to be considered for interblock scheduling.
max-pipeline-region-insns The maximum number of insns in a region to be considered for interblock scheduling.
min-spec-prob The minimum probability of reaching a source block for interblock speculative scheduling.
max-sched-extend-regions-iters The maximum number of iterations through CFG to extend regions.
max-sched-insn-conflict-delay The maximum conflict delay for an insn to be considered for speculative motion.
sched-spec-prob-cutoff The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.
sched-state-edge-prob-cutoff The minimum probability an edge must have for the scheduler to save its state across it.
selsched-max-lookahead The maximum size of the lookahead window of selective scheduling.
selsched-max-sched-times Maximum number of times that an insn could be scheduled.
selsched-insns-to-rename Maximum number of instructions in the ready list that are considered eligible for renaming.
sched-mem-true-dep-cost Minimal distance between possibly conflicting store and load.
sched-autopref-queue-depth Hardware autoprefetcher scheduler model control flag. Number of lookahead cycles the model looks into; at '0' only enable instruction sorting heuristic. Disabled by default.
max-last-value-rtl The maximum number of RTL nodes that can be recorded as combiner's last value.
max-combine-insns The maximum number of insns combine tries to combine.
integer-share-limit The upper bound for sharing integer constants.
ssp-buffer-size The lower bound for a buffer to be considered for stack smashing protection.
min-size-for-stack-sharing The minimum size of variables taking part in stack slot sharing when not optimizing.
max-jump-thread-duplication-stmts Maximum number of statements allowed in a block that needs to be duplicated when threading jumps.
max-fields-for-field-sensitive Maximum number of fields in a structure before pointer analysis treats the structure as a single variable.
max-sched-ready-insns The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass.
max-dse-active-local-stores Maximum number of active local stores in RTL dead store elimination.
prefetch-latency The number of insns executed before prefetch is completed.
simultaneous-prefetches The number of prefetches that can run at the same time.
l1-cache-size The size of L1 cache.
l1-cache-line-size The size of L1 cache line.
l2-cache-size The size of L2 cache.
prefetch-dynamic-strides Whether software prefetch hints should be issued for non-constant strides.
prefetch-minimum-stride The minimum constant stride beyond which we should use prefetch hints for.
loop-interchange-max-num-stmts The maximum number of stmts in loop nest for loop interchange.
loop-interchange-stride-ratio The minimum stride ratio for loop interchange to be profitable.
use-canonical-types Whether to use canonical types.
max-partial-antic-length Maximum length of partial antic set when performing tree pre optimization.
rpo-vn-max-loop-depth Maximum depth of a loop nest to fully value-number optimistically.
sccvn-max-alias-queries-per-access Maximum number of disambiguations to perform per memory access.
ira-max-loops-num Max loops number for regional RA.
ira-max-conflict-table-size Max size of conflict table in MB.
ira-loop-reserved-regs The number of registers in each class kept unused by loop invariant motion.
lra-max-considered-reload-pseudos The max number of reload pseudos which are considered during spilling a non-reload pseudo.
lra-inheritance-ebb-probability-cutoff Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA.
switch-conversion-max-branch-ratio The maximum ratio between array size and switch branches for a switch conversion to take place.
loop-block-tile-size Size of tiles for loop blocking.
graphite-max-nb-scop-params Maximum number of parameters in a SCoP.
graphite-max-arrays-per-scop Maximum number of arrays per SCoP.
max-isl-operations Maximum number of isl operations, 0 means unlimited.
graphite-allow-codegen-errors Whether codegen errors should be ICEs when -fchecking.
loop-max-datarefs-for-datadeps Maximum number of datarefs in loop for building loop data dependencies.
loop-invariant-max-bbs-in-loop Max basic blocks number in loop for loop invariant motion.
profile-func-internal-id Use internal function id in profile lookup.
indir-call-topn-profile Track top N target addresses in indirect-call profile.
slp-max-insns-in-bb Maximum number of instructions in basic block to be considered for SLP vectorization.
min-insn-to-prefetch-ratio Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count.
prefetch-min-insn-to-mem-ratio Min. ratio of insns to mem ops to enable prefetching in a loop.
max-vartrack-size Max. size of var tracking hash tables.
max-vartrack-expr-depth Max. recursion depth for expanding var tracking expressions.
max-vartrack-reverse-op-size Max. size of loc list for which reverse ops should be added.
max-debug-marker-count Max. count of debug markers to expand or inline.
min-nondebug-insn-uid The minimum UID to be used for a nondebug insn.
ipa-sra-ptr-growth-factor Maximum allowed growth of number and total size of new parameters that ipa-sra replaces a pointer to an aggregate with.
tm-max-aggregate-size Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs.
sra-max-scalarization-size-Ospeed Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed.
sra-max-scalarization-size-Osize Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size.
sra-max-propagations Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates will keep for one local variable.
ipa-cp-value-list-size Maximum size of a list of values associated with each parameter for interprocedural constant propagation.
ipa-cp-eval-threshold Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone.
ipa-cp-recursion-penalty Percentage penalty the recursive functions will receive when they are evaluated for cloning.
ipa-cp-single-call-penalty Percentage penalty functions containing a single call to another function will receive when they are evaluated for cloning.
ipa-max-agg-items Maximum number of aggregate content items for a parameter in jump functions and lattices.
ipa-cp-loop-hint-bonus Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known.
ipa-cp-array-index-hint-bonus Compile-time bonus IPA-CP assigns to candidates which make an array index known.
ipa-max-aa-steps Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function.
lto-partitions Number of partitions the program should be split to.
lto-min-partition Minimal size of a partition for LTO (in estimated instructions).
lto-max-partition Maximal size of a partition for LTO (in estimated instructions).
lto-max-streaming-parallelism maximal number of LTO partitions streamed in parallel.
cxx-max-namespaces-for-diagnostic-help Maximum number of namespaces to search for alternatives when name lookup fails.
max-stores-to-sink Maximum number of conditional store pairs that can be sunk.
case-values-threshold The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine.
allow-store-data-races Allow new data races on stores to be introduced.
tree-reassoc-width Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.
max-tail-merge-comparisons Maximum amount of similar bbs to compare a bb with.
store-merging-allow-unaligned Allow the store merging pass to introduce unaligned stores if it is legal to do so.
max-stores-to-merge Maximum number of constant stores to merge in the store merging pass.
max-tail-merge-iterations Maximum amount of iterations of the pass over a function.
max-tracked-strlens Maximum number of strings for which strlen optimization pass will track string lengths.
sched-pressure-algorithm Which -fsched-pressure algorithm to apply.
max-slsr-cand-scan Maximum length of candidate scans for straight-line strength reduction.
asan-stack Enable asan stack protection.
asan-instrument-allocas Enable asan allocas/VLAs protection.
asan-globals Enable asan globals protection.
asan-instrument-writes Enable asan store operations protection.
asan-instrument-reads Enable asan load operations protection.
asan-memintrin Enable asan builtin functions protection.
asan-use-after-return Enable asan detection of use-after-return bugs.
asan-instrumentation-with-call-threshold Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.
use-after-scope-direct-emission-threshold Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.
uninit-control-dep-attempts Maximum number of nested calls to search for control dependencies during uninitialized variable analysis.
fsm-scale-path-stmts Scale factor to apply to the number of statements in a threading path when comparing to the number of (scaled) blocks.
fsm-maximum-phi-arguments Maximum number of arguments a PHI may have before the FSM threader will not try to thread through its block.
fsm-scale-path-blocks Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements.
max-fsm-thread-path-insns Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path.
max-fsm-thread-length Maximum number of basic blocks on a finite state automaton jump thread path.
max-fsm-thread-paths Maximum number of new jump thread paths to create for a finite state automaton.
parloops-chunk-size Chunk size of omp schedule for loops parallelized by parloops.
parloops-schedule Schedule type of omp schedule for loops parallelized by parloops (static, dynamic, guided, auto, runtime).
parloops-min-per-thread Minimum number of iterations per thread of an innermost parallelized loop.
max-ssa-name-query-depth Maximum recursion depth allowed when querying a property of an SSA name.
max-rtl-if-conversion-insns Maximum number of insns in a basic block to consider for RTL if-conversion.
max-rtl-if-conversion-predictable-cost Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered predictable.
max-rtl-if-conversion-unpredictable-cost Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered unpredictable.
hsa-gen-debug-stores Level of hsa debug stores verbosity.
max-speculative-devirt-maydefs Maximum number of may-defs visited when devirtualizing speculatively.
max-vrp-switch-assertions Maximum number of assertions to add along the default edge of a switch statement during VRP.
vect-epilogues-nomask Enable loop epilogue vectorization using smaller vector size.
unroll-jam-min-percent Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable.
unroll-jam-max-unroll Maximum unroll factor for the unroll-and-jam transformation.
avoid-fma-max-bits Maximum number of bits for which we avoid creating FMAs.
logical-op-non-short-circuit True if a non-short-circuit operation is optimal.
loop-versioning-max-inner-insns The maximum number of instructions in an inner loop that is being considered for versioning.
loop-versioning-max-outer-insns The maximum number of instructions in an outer loop that is being considered for versioning, on top of the instructions in inner loops.
ssa-name-def-chain-limit The maximum number of SSA_NAME assignments to follow in determining a value.
The following options control compiler warning messages:
--extra-warnings Same as -Wextra. Use the latter option instead.
-W This switch is deprecated; use -Wextra instead. Same as -Wextra.
-Waggregate-return Warn about returning structures, unions or arrays.
-Waggressive-loop-optimizations Warn if a loop with constant number of iterations triggers undefined behavior.
-Warray-bounds Warn if an array is accessed out of bounds.
-Warray-bounds=<0,2> Warn if an array is accessed out of bounds.
-Wattribute-alias Warn about type safety and similar errors and mismatches in declarations with alias attributes. Same as -Wattribute-alias=.
-Wattribute-alias=<0,2> Warn about type safety and similar errors and mismatches in declarations with alias attributes.
-Wattribute-warning Warn about uses of __attribute__((warning)) declarations.
-Wattributes Warn about inappropriate attribute usage.
-Wcannot-profile Warn when profiling instrumentation was requested, but could not be applied to a certain function.
-Wcast-align Warn about pointer casts which increase alignment.
-Wcast-align=strict Warn about pointer casts which increase alignment.
-Wcoverage-mismatch Warn in case profiles in -fprofile-use do not match.
-Wdeprecated-declarations Warn about uses of __attribute__((deprecated)) declarations.
-Wdisabled-optimization Warn when an optimization pass is disabled.
-Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
-Wfree-nonheap-object Warn when attempting to free a non-heap object.
-Whsa Warn when a function cannot be expanded to HSAIL.
-Wimplicit-fallthrough Same as -Wimplicit-fallthrough=. Use the latter option instead.
-Wimplicit-fallthrough=<0,5> Warn when a switch case falls through.
-Winline Warn when an inlined function cannot be inlined.
-Winvalid-memory-model Warn when an atomic memory model parameter is known to be outside the valid range.
-Wlarger-than- Same as -Wlarger-than=. Use the latter option instead.
-Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
-Wlto-type-mismatch During link time optimization warn about mismatched types of global declarations.
-Wmissing-noreturn Same as -Wsuggest-attribute=noreturn. Use the latter option instead.
-Wmissing-profile Warn in case profiles in -fprofile-use do not exist.
-Wnull-dereference Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
-Wodr Warn about some C++ One Definition Rule violations during link time optimization.
-Woverflow Warn about overflow in arithmetic expressions.
-Wpacked Warn when the packed attribute has no effect on struct layout.
-Wpadded Warn when padding is required to align structure members.
-Wreturn-local-addr Warn about returning a pointer/reference to a local or temporary variable.
-Wshadow Warn when one variable shadows another. Same as -Wshadow=global.
-Wshadow-compatible-local Same as -Wshadow=compatible-local. Use the latter option instead.
-Wshadow-local Same as -Wshadow=local. Use the latter option instead.
-Wshadow=compatible-local Warn when one local variable shadows another local variable or parameter of compatible type.
-Wshadow=global Warn when one variable shadows another (globally). Same as -Wshadow.
-Wshadow=local Warn when one local variable shadows another local variable or parameter.
-Wstack-protector Warn when not issuing stack smashing protection for some reason.
-Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
-Wstrict-aliasing Warn about code which might break strict aliasing rules.
-Wstrict-overflow Warn about optimizations that assume that signed overflow is undefined.
-Wsuggest-attribute=cold Warn about functions which might be candidates for __attribute__((cold)).
-Wsuggest-attribute=const Warn about functions which might be candidates for __attribute__((const)).
-Wsuggest-attribute=malloc Warn about functions which might be candidates for __attribute__((malloc)).
-Wsuggest-attribute=noreturn Warn about functions which might be candidates for __attribute__((noreturn)).
-Wsuggest-attribute=pure Warn about functions which might be candidates for __attribute__((pure)).
-Wsuggest-final-methods Warn about C++ virtual methods where adding final keyword would improve code quality.
-Wsuggest-final-types Warn about C++ polymorphic types where adding final keyword would improve code quality.
-Wswitch-unreachable Warn about statements between switch's controlling expression and the first case.
-Wtrampolines Warn whenever a trampoline is generated.
-Wtype-limits Warn if a comparison is always true or always false due to the limited range of the data type.
-Wunreachable-code Does nothing. Preserved for backward compatibility.
-Wunsafe-loop-optimizations Does nothing. Preserved for backward compatibility.
-Wunused-but-set-parameter Warn when a function parameter is only set, otherwise unused.
-Wunused-but-set-variable Warn when a variable is only set, otherwise unused.
-Wunused-function Warn when a function is unused.
-Wunused-label Warn when a label is unused.
-Wunused-value Warn when an expression value is unused.
-Wvector-operation-performance Warn when a vector operation is compiled outside the SIMD.
The following options control optimizations:
-Ofast Optimize for speed disregarding exact standards compliance.
-Og Optimize for debugging experience rather than speed or size.
-Os Optimize for space rather than speed.
-faggressive-loop-optimizations Aggressively optimize loops using language constraints.
-falign-functions Align the start of functions.
-falign-functions= This option lacks documentation.
-falign-jumps Align labels which are only reached by jumping.
-falign-jumps= This option lacks documentation.
-falign-labels Align all labels.
-falign-labels= This option lacks documentation.
-falign-loops Align the start of loops.
-falign-loops= This option lacks documentation.
-fassociative-math Allow optimization for floating-point arithmetic which may change the result of the operation due to rounding.
-fasynchronous-unwind-tables Generate unwind tables that are exact at each instruction boundary.
-fauto-inc-dec Generate auto-inc/dec instructions.
-fbranch-count-reg Replace add, compare, branch with branch on count register.
-fbranch-probabilities Use profiling information for branch probabilities.
-fbranch-target-load-optimize Perform branch target load optimization before prologue / epilogue threading.
-fbranch-target-load-optimize2 Perform branch target load optimization after prologue / epilogue threading.
-fbtr-bb-exclusive Restrict target load migration not to re-use registers in any basic block.
-fcaller-saves Save registers around function calls.
-fcode-hoisting Enable code hoisting.
-fcombine-stack-adjustments Looks for opportunities to reduce stack adjustments and stack references.
-fcompare-elim Perform comparison elimination after register allocation has finished.
-fconserve-stack Do not perform optimizations increasing noticeably stack usage.
-fcprop-registers Perform a register copy-propagation optimization pass.
-fcrossjumping Perform cross-jumping optimization.
-fcse-follow-jumps When running CSE, follow jumps to their targets.
-fcx-fortran-rules Complex multiplication and division follow Fortran rules.
-fcx-limited-range Omit range reduction step when performing complex division.
-fdce Use the RTL dead code elimination pass.
-fdefer-pop Defer popping functions args from stack until later.
-fdelayed-branch Attempt to fill delay slots of branch instructions.
-fdelete-dead-exceptions Delete dead instructions that may throw exceptions.
-fdelete-null-pointer-checks Delete useless null pointer checks.
-fdevirtualize Try to convert virtual calls to direct ones.
-fdevirtualize-speculatively Perform speculative devirtualization.
-fdse Use the RTL dead store elimination pass.
-fearly-inlining Perform early inlining.
-fexpensive-optimizations Perform a number of minor, expensive optimizations.
-ffast-math This option lacks documentation.
-ffinite-math-only Assume no NaNs or infinities are generated.
-ffloat-store Don't allocate floats and doubles in extended-precision registers.
-fforward-propagate Perform a forward propagation pass on RTL.
-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
-ffp-int-builtin-inexact Allow built-in functions ceil, floor, round, trunc to raise "inexact" exceptions.
-ffunction-cse Allow function addresses to be held in registers.
-fgcse Perform global common subexpression elimination.
-fgcse-after-reload Perform global common subexpression elimination after register allocation has finished.
-fgcse-las Perform redundant load after store elimination in global common subexpression elimination.
-fgcse-lm Perform enhanced load motion during global common subexpression elimination.
-fgcse-sm Perform store motion after global common subexpression elimination.
-fgraphite Enable in and out of Graphite representation.
-fgraphite-identity Enable Graphite Identity transformation.
-fguess-branch-probability Enable guessing of branch probabilities.
-fhoist-adjacent-loads Enable hoisting adjacent loads to encourage generating conditional move instructions.
-fif-conversion Perform conversion of conditional jumps to branchless equivalents.
-fif-conversion2 Perform conversion of conditional jumps to conditional execution.
-findirect-inlining Perform indirect inlining.
-finline Enable inlining of function declared "inline", disabling disables all inlining.
-finline-atomics Inline __atomic operations when a lock free instruction sequence is available.
-finline-functions Integrate functions not declared "inline" into their callers when profitable.
-finline-functions-called-once Integrate functions only required by their single caller.
-finline-small-functions Integrate functions into their callers when code size is known not to grow.
-fipa-bit-cp Perform interprocedural bitwise constant propagation.
-fipa-cp Perform interprocedural constant propagation.
-fipa-cp-clone Perform cloning to make Interprocedural constant propagation stronger.
-fipa-icf Perform Identical Code Folding for functions and read-only variables.
-fipa-icf-functions Perform Identical Code Folding for functions.
-fipa-icf-variables Perform Identical Code Folding for variables.
-fipa-profile Perform interprocedural profile propagation.
-fipa-pta Perform interprocedural points-to analysis.
-fipa-pure-const Discover pure and const functions.
-fipa-ra Use caller save register across calls if possible.
-fipa-reference Discover read-only and non addressable static variables.
-fipa-reference-addressable Discover read-only, write-only and non-addressable static variables.
-fipa-sra Perform interprocedural reduction of aggregates.
-fipa-stack-alignment Reduce stack alignment on call sites if possible.
-fipa-vrp Perform IPA Value Range Propagation.
-fira-algorithm=[CB|priority] Set the used IRA algorithm.
-fira-hoist-pressure Use IRA based register pressure calculation in RTL hoist optimizations.
-fira-loop-pressure Use IRA based register pressure calculation in RTL loop optimizations.
-fira-region=[one|all|mixed] Set regions for IRA.
-fira-share-save-slots Share slots for saving different hard registers.
-fira-share-spill-slots Share stack slots for spilled pseudo-registers.
-fisolate-erroneous-paths-attribute Detect paths that trigger erroneous or undefined behavior due to a null value being used in a way forbidden by a returns_nonnull or nonnull attribute. Isolate those paths
from the main control flow and turn the statement with erroneous or undefined behavior into a trap.
-fisolate-erroneous-paths-dereference Detect paths that trigger erroneous or undefined behavior due to dereferencing a null pointer. Isolate those paths from the main control flow and turn the statement with
erroneous or undefined behavior into a trap.
-fivopts Optimize induction variables on trees.
-fjump-tables Use jump tables for sufficiently large switch statements.
-fkeep-gc-roots-live This option lacks documentation.
-flifetime-dse Tell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.
-flifetime-dse=<0,2> This option lacks documentation.
-flimit-function-alignment This option lacks documentation.
-flive-patching Same as -flive-patching=. Use the latter option instead.
-flive-patching=[inline-only-static|inline-clone] Control IPA optimizations to provide a safe compilation for live-patching. At the same time, provides multiple-level control on the enabled IPA optimizations.
-flive-range-shrinkage Relief of register pressure through live range shrinkage.
-floop-interchange Enable loop interchange on trees.
-floop-nest-optimize Enable the loop nest optimizer.
-floop-parallelize-all Mark all loops as parallel.
-floop-unroll-and-jam Perform unroll-and-jam on loops.
-flra-remat Do CFG-sensitive rematerialization in LRA.
-fmath-errno Set errno after built-in math functions.
-fmodulo-sched Perform SMS based modulo scheduling before the first scheduling pass.
-fmodulo-sched-allow-regmoves Perform SMS based modulo scheduling with register moves allowed.
-fmove-loop-invariants Move loop invariant computations out of loops.
-fnon-call-exceptions Support synchronous non-call exceptions.
-fomit-frame-pointer When possible do not generate stack frames.
-fopt-info Enable all optimization info dumps on stderr.
-foptimize-sibling-calls Optimize sibling and tail recursive calls.
-foptimize-strlen Enable string length optimizations on trees.
-fpack-struct Pack structure members together without holes.
-fpack-struct=<number> Set initial maximum structure member alignment.
-fpartial-inlining Perform partial inlining.
-fpatchable-function-entry= Insert NOP instructions at each function entry.
-fpeel-loops Perform loop peeling.
-fpeephole Enable machine specific peephole optimizations.
-fpeephole2 Enable an RTL peephole pass before sched2.
-fplt Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
-fpredictive-commoning Run predictive commoning optimization.
-fprefetch-loop-arrays Generate prefetch instructions, if available, for arrays in loops.
-freciprocal-math Same as -fassociative-math for expressions which include division.
-freg-struct-return Return small aggregates in registers.
-frename-registers Perform a register renaming optimization pass.
-freorder-blocks Reorder basic blocks to improve code placement.
-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
-freorder-blocks-and-partition Reorder basic blocks and partition into hot and cold sections.
-freorder-functions Reorder functions to improve code placement.
-frerun-cse-after-loop Add a common subexpression elimination pass after loop optimizations.
-freschedule-modulo-scheduled-loops Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
-frounding-math Disable optimizations that assume default FP rounding behavior.
-fsave-optimization-record Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
-fsched-critical-path-heuristic Enable the critical path heuristic in the scheduler.
-fsched-dep-count-heuristic Enable the dependent count heuristic in the scheduler.
-fsched-group-heuristic Enable the group heuristic in the scheduler.
-fsched-interblock Enable scheduling across basic blocks.
-fsched-last-insn-heuristic Enable the last instruction heuristic in the scheduler.
-fsched-pressure Enable register pressure sensitive insn scheduling.
-fsched-rank-heuristic Enable the rank heuristic in the scheduler.
-fsched-spec Allow speculative motion of non-loads.
-fsched-spec-insn-heuristic Enable the speculative instruction heuristic in the scheduler.
-fsched-spec-load Allow speculative motion of some loads.
-fsched-spec-load-dangerous Allow speculative motion of more loads.
-fsched-stalled-insns Allow premature scheduling of queued insns.
-fsched-stalled-insns-dep Set dependence distance checking in premature scheduling of queued insns.
-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
-fsched2-use-superblocks If scheduling post reload, do superblock scheduling.
-fschedule-fusion Perform a target dependent instruction fusion optimization pass.
-fschedule-insns Reschedule instructions before register allocation.
-fschedule-insns2 Reschedule instructions after register allocation.
-fsection-anchors Access data in the same section from shared anchor points.
-fsel-sched-pipelining Perform software pipelining of inner loops during selective scheduling.
-fsel-sched-pipelining-outer-loops Perform software pipelining of outer loops during selective scheduling.
-fsel-sched-reschedule-pipelined Reschedule pipelined regions without pipelining.
-fselective-scheduling Schedule instructions using selective scheduling algorithm.
-fselective-scheduling2 Run selective scheduling after reload.
-fshrink-wrap Emit function prologues only before parts of the function that need it, rather than at the top of the function.
-fshrink-wrap-separate Shrink-wrap parts of the prologue and epilogue separately.
-fsignaling-nans Disable optimizations observable by IEEE signaling NaNs.
-fsigned-zeros Disable floating point optimizations that ignore the IEEE signedness of zero.
-fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
-fsingle-precision-constant Convert floating point constants to single precision constants.
-fsplit-ivs-in-unroller Split lifetimes of induction variables when loops are unrolled.
-fsplit-loops Perform loop splitting.
-fsplit-paths Split paths leading to loop backedges.
-fsplit-wide-types Split wide types into independent registers.
-fssa-backprop Enable backward propagation of use properties at the SSA level.
-fssa-phiopt Optimize conditional patterns using SSA PHI nodes.
-fstack-check=[no|generic|specific] Insert stack checking code into the program.
-fstack-clash-protection Insert code to probe each page of stack space as it is allocated to protect from stack-clash style attacks.
-fstack-protector Use propolice as a stack protection method.
-fstack-protector-all Use a stack protection method for every function.
-fstack-protector-explicit Use stack protection method only for functions with the stack_protect attribute.
-fstack-protector-strong Use a smart stack protection method for certain functions.
-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
-fstdarg-opt Optimize amount of stdarg registers saved to stack at start of function.
-fstore-merging Merge adjacent stores.
-fstrict-aliasing Assume strict aliasing rules apply.
-fstrict-volatile-bitfields Force bitfield accesses to match their type width.
-fthread-jumps Perform jump threading optimizations.
-ftracer Perform superblock formation via tail duplication.
-ftrapping-math Assume floating-point operations can trap.
-ftrapv Trap for signed overflow in addition, subtraction and multiplication.
-ftree-bit-ccp Enable SSA-BIT-CCP optimization on trees.
-ftree-builtin-call-dce Enable conditional dead code elimination for builtin calls.
-ftree-ccp Enable SSA-CCP optimization on trees.
-ftree-ch Enable loop header copying on trees.
-ftree-coalesce-vars Enable SSA coalescing of user variables.
-ftree-copy-prop Enable copy propagation on trees.
-ftree-cselim Transform condition stores into unconditional ones.
-ftree-dce Enable SSA dead code elimination optimization on trees.
-ftree-dominator-opts Enable dominator optimizations.
-ftree-dse Enable dead store elimination.
-ftree-forwprop Enable forward propagation on trees.
-ftree-fre Enable Full Redundancy Elimination (FRE) on trees.
-ftree-loop-distribute-patterns Enable loop distribution for patterns transformed into a library call.
-ftree-loop-distribution Enable loop distribution on trees.
-ftree-loop-if-convert Convert conditional jumps in innermost loops to branchless equivalents.
-ftree-loop-im Enable loop invariant motion on trees.
-ftree-loop-ivcanon Create canonical induction variables in loops.
-ftree-loop-optimize Enable loop optimizations on tree level.
-ftree-loop-vectorize Enable loop vectorization on trees.
-ftree-lrs Perform live range splitting during the SSA->normal pass.
-ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
-ftree-partial-pre In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
-ftree-phiprop Enable hoisting loads from conditional pointers.
-ftree-pre Enable SSA-PRE optimization on trees.
-ftree-pta Perform function-local points-to analysis on trees.
-ftree-reassoc Enable reassociation on tree level.
-ftree-scev-cprop Enable copy propagation of scalar-evolution information.
-ftree-sink Enable SSA code sinking on trees.
-ftree-slp-vectorize Enable basic block vectorization (SLP) on trees.
-ftree-slsr Perform straight-line strength reduction.
-ftree-sra Perform scalar replacement of aggregates.
-ftree-switch-conversion Perform conversions of switch initializations.
-ftree-tail-merge Enable tail merging on trees.
-ftree-ter Replace temporary expressions in the SSA->normal pass.
-ftree-vectorize Enable vectorization on trees.
-ftree-vrp Perform Value Range Propagation on trees.
-funconstrained-commons Assume common declarations may be overridden with ones with a larger trailing array.
-funroll-all-loops Perform loop unrolling for all loops.
-funroll-loops Perform loop unrolling when iteration count is known.
-funsafe-math-optimizations Allow math optimizations that may violate IEEE or ISO standards.
-funswitch-loops Perform loop unswitching.
-funwind-tables Just generate unwind tables for exception handling.
-fvar-tracking Perform variable tracking.
-fvar-tracking-assignments Perform variable tracking by annotating assignments.
-fvar-tracking-assignments-toggle Toggle -fvar-tracking-assignments.
-fvar-tracking-uninit Perform variable tracking and also tag variables that are uninitialized.
-fvariable-expansion-in-unroller Apply variable expansion when loops are unrolled.
-fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
-fversion-loops-for-strides Version loops based on whether indices have a stride of one.
-fvpt Use expression value profiles in optimizations.
-fweb Construct webs and split unrelated uses of single variable.
-fwrapv Assume signed arithmetic overflow wraps around.
-fwrapv-pointer Assume pointer overflow wraps around.
The following options are target specific:
-m128bit-long-double sizeof(long double) is 16.
-m16 Generate 16bit i386 code.
-m32 Generate 32bit i386 code.
-m3dnow Support 3DNow! built-in functions.
-m3dnowa Support Athlon 3Dnow! built-in functions.
-m64 Generate 64bit x86-64 code.
-m80387 Use hardware fp.
-m8bit-idiv Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
-m96bit-long-double sizeof(long double) is 12.
-mabi= Generate code that conforms to the given ABI.
-mabm Support code generation of Advanced Bit Manipulation (ABM) instructions.
-maccumulate-outgoing-args Reserve space for outgoing arguments in the function prologue.
-maddress-mode= Use given address mode.
-madx Support flag-preserving add-carry instructions.
-maes Support AES built-in functions and code generation.
-malign-data= Use the given data alignment.
-malign-double Align some doubles on dword boundary.
-malign-functions= Function starts are aligned to this power of 2.
-malign-jumps= Jump targets are aligned to this power of 2.
-malign-loops= Loop code aligned to this power of 2.
-malign-stringops Align destination of the string operations.
-mandroid Generate code for the Android platform.
-march= Generate code for given CPU.
-masm= Use given assembler dialect.
-mavx Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
-mavx2 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
-mavx256-split-unaligned-load Split 32-byte AVX unaligned load.
-mavx256-split-unaligned-store Split 32-byte AVX unaligned store.
-mavx5124fmaps Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
-mavx5124vnniw Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
-mavx512bitalg Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation.
-mavx512bw Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
-mavx512cd Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
-mavx512dq Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
-mavx512er Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
-mavx512f Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
-mavx512ifma Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
-mavx512pf Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
-mavx512vbmi Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
-mavx512vbmi2 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
-mavx512vl Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
-mavx512vnni Support AVX512VNNI built-in functions and code generation.
-mavx512vpopcntdq Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
-mbionic Use Bionic C library.
-mbmi Support BMI built-in functions and code generation.
-mbmi2 Support BMI2 built-in functions and code generation.
-mbranch-cost=<0,5> Branches are this expensive (arbitrary units).
-mcall-ms2sysv-xlogues Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
-mcet-switch Turn on CET instrumentation for switch statements that use a jump table and an indirect jump.
-mcld Generate cld instruction in the function prologue.
-mcldemote Support CLDEMOTE built-in functions and code generation.
-mclflushopt Support CLFLUSHOPT instructions.
-mclwb Support CLWB instruction.
-mclzero Support CLZERO built-in functions and code generation.
-mcmodel= Use given x86-64 code model.
-mcpu= Same as -mtune=. Use the latter option instead. Uses of this option are diagnosed.
-mcrc32 Support code generation of crc32 instruction.
-mcx16 Support code generation of cmpxchg16b instruction.
-mdispatch-scheduler Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4 or znver1 and Haifa scheduling is selected.
-mdump-tune-features This option lacks documentation.
-mf16c Support F16C built-in functions and code generation.
-mfancy-math-387 Generate sin, cos, sqrt for FPU.
-mfentry Emit profiling counter call at function entry before prologue.
-mfentry-name= Set name of __fentry__ symbol called at function entry.
-mfentry-section= Set name of section to record mrecord-mcount calls.
-mfma Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
-mfma4 Support FMA4 built-in functions and code generation.
-mforce-drap Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
-mforce-indirect-call Make all function calls indirect.
-mfp-ret-in-387 Return values of functions in FPU registers.
-mfpmath= Generate floating point mathematics using given instruction set.
-mfsgsbase Support FSGSBASE built-in functions and code generation.
-mfunction-return= Convert function return to call and return thunk.
-mfused-madd Same as -ffp-contract=. Use the latter option instead. Uses of this option are diagnosed.
-mfxsr Support FXSAVE and FXRSTOR instructions.
-mgeneral-regs-only Generate code which uses only the general registers.
-mgfni Support GFNI built-in functions and code generation.
-mglibc Use GNU C library.
-mhard-float Use hardware fp.
-mhle Support Hardware Lock Elision prefixes.
-miamcu Generate code that conforms to Intel MCU psABI.
-mieee-fp Use IEEE math for fp comparisons.
-mincoming-stack-boundary= Assume incoming stack aligned to this power of 2.
-mindirect-branch-register Force indirect call and jump via register.
-mindirect-branch= Convert indirect call and jump to call and return thunks.
-minline-all-stringops Inline all known string operations.
-minline-stringops-dynamically Inline memset/memcpy string operations, but perform inline version only for small blocks.
-minstrument-return= Instrument function exit in instrumented functions with __fentry__.
-mintel-syntax Same as -masm=. Use the latter option instead. Uses of this option are diagnosed.
-mlarge-data-threshold=<number> Data greater than given threshold will go into .ldata section in x86-64 medium model.
-mlong-double-128 Use 128-bit long double.
-mlong-double-64 Use 64-bit long double.
-mlong-double-80 Use 80-bit long double.
-mlwp Support LWP built-in functions and code generation.
-mlzcnt Support LZCNT built-in function and code generation.
-mmanual-endbr Insert ENDBR instruction at function entry only via cf_check attribute for CET instrumentation.
-mmemcpy-strategy= Specify memcpy expansion strategy when expected size is known.
-mmemset-strategy= Specify memset expansion strategy when expected size is known.
-mmitigate-rop This option lacks documentation.
-mmmx Support MMX built-in functions.
-mmovbe Support code generation of movbe instruction.
-mmovdir64b Support MOVDIR64B built-in functions and code generation.
-mmovdiri Support MOVDIRI built-in functions and code generation.
-mmpx Deprecated in GCC 9. This switch has no effect.
-mms-bitfields Use native (MS) bitfield layout.
-mmusl Use musl C library.
-mmwaitx Support MWAITX and MONITORX built-in functions and code generation.
-mno-align-stringops This option lacks documentation.
-mno-default Clear all tune features.
-mno-fancy-math-387 This option lacks documentation.
-mno-push-args This option lacks documentation.
-mno-red-zone This option lacks documentation.
-mno-sse4 Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
-mnop-mcount Generate mcount/__fentry__ calls as nops. To activate they need to be patched in.
-momit-leaf-frame-pointer Omit the frame pointer in leaf functions.
-mpc32 Set 80387 floating-point precision to 32-bit.
-mpc64 Set 80387 floating-point precision to 64-bit.
-mpc80 Set 80387 floating-point precision to 80-bit.
-mpclmul Support PCLMUL built-in functions and code generation.
-mpcommit This option lacks documentation.
-mpconfig Support PCONFIG built-in functions and code generation.
-mpku Support PKU built-in functions and code generation.
-mpopcnt Support code generation of popcnt instruction.
-mprefer-avx128 Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer. Same as -mprefer-vector-width=.
-mprefer-vector-width= Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
-mpreferred-stack-boundary= Attempt to keep stack aligned to this power of 2.
-mprefetchwt1 Support PREFETCHWT1 built-in functions and code generation.
-mprfchw Support PREFETCHW instruction.
-mptwrite Support PTWRITE built-in functions and code generation.
-mpush-args Use push instructions to save outgoing arguments.
-mrdpid Support RDPID built-in functions and code generation.
-mrdrnd Support RDRND built-in functions and code generation.
-mrdseed Support RDSEED instruction.
-mrecip Generate reciprocals instead of divss and sqrtss.
-mrecip= Control generation of reciprocal estimates.
-mrecord-mcount Generate __mcount_loc section with all mcount or __fentry__ calls.
-mrecord-return Generate a __return_loc section pointing to all return instrumentation code.
-mred-zone Use red-zone in the x86-64 code.
-mregparm= Number of registers used to pass integer arguments.
-mrtd Alternate calling convention.
-mrtm Support RTM built-in functions and code generation.
-msahf Support code generation of sahf instruction in 64bit x86-64 code.
-msgx Support SGX built-in functions and code generation.
-msha Support SHA1 and SHA256 built-in functions and code generation.
-mshstk Enable shadow stack built-in functions from Control-flow Enforcement Technology (CET).
-mskip-rax-setup Skip setting up RAX register when passing variable arguments.
-msoft-float Do not use hardware fp.
-msse Support MMX and SSE built-in functions and code generation.
-msse2 Support MMX, SSE and SSE2 built-in functions and code generation.
-msse2avx Encode SSE instructions with VEX prefix.
-msse3 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
-msse4 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
-msse4.1 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
-msse4.2 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
-msse4a Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
-msse5 Same as -mavx. Use the latter option instead. Uses of this option are diagnosed.
-msseregparm Use SSE register passing conventions for SF and DF mode.
-mssse3 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
-mstack-arg-probe Enable stack probing.
-mstack-protector-guard-offset= Use the given offset for addressing the stack-protector guard.
-mstack-protector-guard-reg= Use the given base register for addressing the stack-protector guard.
-mstack-protector-guard-symbol= Use the given symbol for addressing the stack-protector guard.
-mstack-protector-guard= Use given stack-protector guard.
-mstackrealign Realign stack in prologue.
-mstringop-strategy= Chose strategy to generate stringop using.
-mstv Disable Scalar to Vector optimization pass transforming 64-bit integer computations into a vector ones.
-mtbm Support TBM built-in functions and code generation.
-mtls-dialect= Use given thread-local storage dialect.
-mtls-direct-seg-refs Use direct references against %gs when accessing tls data.
-mtune-ctrl= Fine grain control of tune features.
-mtune= Schedule code for given CPU.
-muclibc Use uClibc C library.
-mvaes Support VAES built-in functions and code generation.
-mveclibabi= Vector library ABI to use.
-mvect8-ret-in-mem Return 8-byte vectors in memory.
-mvpclmulqdq Support VPCLMULQDQ built-in functions and code generation.
-mvzeroupper Generate vzeroupper instruction before a transfer of control flow out of the function.
-mwaitpkg Support WAITPKG built-in functions and code generation.
-mwbnoinvd Support WBNOINVD built-in functions and code generation.
-mx32 Generate 32bit x86-64 code.
-mxop Support XOP built-in functions and code generation.
-mxsave Support XSAVE and XRSTOR instructions.
-mxsavec Support XSAVEC instructions.
-mxsaveopt Support XSAVEOPT instruction.
-mxsaves Support XSAVES and XRSTORS instructions.
Known assembler dialects (for use with the -masm= option):
att intel
Known ABIs (for use with the -mabi= option):
ms sysv
Known code models (for use with the -mcmodel= option):
32 kernel large medium small
Valid arguments to -mfpmath=:
387 387+sse 387,sse both sse sse+387 sse,387
Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
keep thunk thunk-extern thunk-inline
Known choices for return instrumentation with -minstrument-return=:
call none nop5
Known data alignment choices (for use with the -malign-data= option):
abi cacheline compat
Known vectorization library ABIs (for use with the -mveclibabi= option):
acml svml
Known address mode (for use with the -maddress-mode= option):
long short
Known preferred register vector length (to use with the -mprefer-vector-width= option):
128 256 512 none
Known stack protector guard (for use with the -mstack-protector-guard= option):
global tls
Valid arguments to -mstringop-strategy=:
byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop vector_loop
Known TLS dialects (for use with the -mtls-dialect= option):
gnu gnu2
Known valid arguments for -march= option:
i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2 c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 btver1 btver2 generic native
Known valid arguments for -mtune= option:
generic i386 i486 pentium lakemont pentiumpro pentium4 nocona core2 nehalem sandybridge haswell bonnell silvermont goldmont goldmont-plus tremont knl knm skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake intel geode k6 athlon k8 amdfam10 bdver1 bdver2 bdver3 bdver4 btver1 btver2 znver1 znver2
The following options are language-independent:
--completion= Provide bash completion for options starting with provided string.
--debug Same as -g. Use the latter option instead.
--dumpbase Same as -dumpbase. Use the latter option instead.
--dumpdir Same as -dumpdir. Use the latter option instead.
--help Display this information.
--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
--optimize Same as -O. Use the latter option instead.
--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters.
--param= Same as --param. Use the latter option instead.
--pedantic-errors Same as -pedantic-errors. Use the latter option instead.
--profile Same as -p. Use the latter option instead.
--target-help Alias for --help=target.
--version This option lacks documentation.
-Werror= Treat specified warning as error.
-Wfatal-errors Exit on the first error occurred.
-aux-info <file> Emit declaration information into <file>.
-aux-info= Same as -aux-info. Use the latter option instead.
-auxbase This option lacks documentation.
-auxbase-strip This option lacks documentation.
-dumpbase <file> Set the file basename to be used for dumps.
-dumpdir <dir> Set the directory name to be used for dumps.
-fPIC Generate position-independent code if possible (large mode).
-fPIE Generate position-independent code for executables if possible (large mode).
-fabi-version= The version of the C++ ABI in use.
-fargument-alias Does nothing. Preserved for backward compatibility.
-fargument-noalias Does nothing. Preserved for backward compatibility.
-fargument-noalias-anything Does nothing. Preserved for backward compatibility.
-fargument-noalias-global Does nothing. Preserved for backward compatibility.
-fasan-shadow-offset=<number> Use custom shadow memory offset.
-fauto-profile Use sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.
-fauto-profile= Use sample profile information for call graph node weights. The profile file is specified in the argument.
-fcall-saved-<register> Mark <register> as being preserved across functions.
-fcall-used-<register> Mark <register> as being corrupted by function calls.
-fcf-protection Same as -fcf-protection=. Use the latter option instead.
-fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer instructions have valid targets.
-fcheck-data-deps This switch is deprecated; do not use.
-fcheck-new Check the return value of new in C++.
-fchecking Perform internal consistency checkings.
-fchecking= Perform internal consistency checkings.
-fcommon Do not put uninitialized globals in the common section.
-fcompare-debug-second Run only the second compilation of -fcompare-debug.
-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
-fcse-skip-blocks Does nothing. Preserved for backward compatibility.
-fdata-sections Place data items into their own section.
-fdbg-cnt-list List all available debugging counters with their limits and counts.
-fdbg-cnt=<counter>[:<lower_limit>]:<upper_limit>[,<counter>:...] Set the debug counter limit.
-fdebug-prefix-map= -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
-fdebug-types-section Output .debug_types section when using DWARF v4 debuginfo.
-fdevirtualize-at-ltrans Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
-fdiagnostics-color Same as -fdiagnostics-color=. Use the latter option instead.
-fdiagnostics-color=[never|always|auto] Colorize diagnostics.
-fdiagnostics-format= -fdiagnostics-format=[text|json] Select output format.
-fdiagnostics-generate-patch Print fix-it hints to stderr in unified diff format.
-fdiagnostics-minimum-margin-width= Set minimum width of left margin of source code when showing source.
-fdiagnostics-parseable-fixits Print fix-it hints in machine-readable form.
-fdiagnostics-show-caret Show the source line with a caret indicating the column.
-fdiagnostics-show-labels Show labels annotating ranges of source code when showing source.
-fdiagnostics-show-line-numbers Show line numbers in the left margin when showing source.
-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
-fdiagnostics-show-option Amend appropriate diagnostic messages with the command line option that controls them.
-fdisable- -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
-fdump-<type> Dump various compiler internals to a file.
-fdump-final-insns=filename Dump to filename the insns at the end of translation.
-fdump-go-spec=filename Write all declarations to file as Go code.
-fdump-internal-locations Dump detailed information on GCC's internal representation of source code locations.
-fdump-noaddr Suppress output of addresses in debugging dumps.
-fdump-passes Dump optimization passes.
-fdump-unnumbered Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
-fdump-unnumbered-links Suppress output of previous and next insn numbers in debugging dumps.
-fdwarf2-cfi-asm Enable CFI tables via GAS assembler directives.
-feliminate-dwarf2-dups Does nothing. Preserved for backward compatibility.
-feliminate-unused-debug-symbols Perform unused symbol elimination in debug info.
-feliminate-unused-debug-types Perform unused type elimination in debug info.
-femit-class-debug-always Do not suppress C++ class debug information.
-fenable- -fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
-ffat-lto-objects Output lto objects containing both the intermediate language and binary output.
-ffile-prefix-map= -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
-ffixed-<register> Mark <register> as being unavailable to the compiler.
-fforce-addr Does nothing. Preserved for backward compatibility.
-ffunction-sections Place each function into its own section.
-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
-fgnu-tm Enable support for GNU transactional memory.
-fgnu-unique Use STB_GNU_UNIQUE if supported by the assembler.
-fhelp Same as --help. Use the latter option instead.
-fhelp= Same as --help=. Use the latter option instead.
-fident Process #ident directives.
-finhibit-size-directive Do not generate .size directives.
-finline-limit- Same as -finline-limit=. Use the latter option instead.
-finline-limit=<number> Limit the size of inlined functions to <number>.
-finstrument-functions Instrument function entry and exit with profiling calls.
-finstrument-functions-exclude-file-list= -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
-finstrument-functions-exclude-function-list= -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
-fipa-cp-alignment Does nothing. Preserved for backward compatibility.
-fipa-matrix-reorg Does nothing. Preserved for backward compatibility.
-fipa-struct-reorg Does nothing. Preserved for backward compatibility.
-fira-verbose=<number> Control IRA's level of diagnostic messages.
-fkeep-inline-functions Generate code for functions even if they are fully inlined.
-fkeep-static-consts Emit static const variables even if they are not used.
-fkeep-static-functions Generate code for static functions even if they are never called.
-fleading-underscore Give external symbols a leading underscore.
-floop-block Enable loop nest transforms. Same as -floop-nest-optimize. Same as -floop-nest-optimize.
-floop-flatten Does nothing. Preserved for backward compatibility.
-floop-optimize Does nothing. Preserved for backward compatibility.
-floop-strip-mine Enable loop nest transforms. Same as -floop-nest-optimize. Same as -floop-nest-optimize.
-flto Enable link-time optimization.
-flto-compression-level=<number> Use Use zlib compression level <number> for IL.
-flto-odr-type-merging Merge C++ types using One Definition Rule.
-flto-partition= Specify the algorithm to partition symbols and vars at linktime.
-flto-report Report various link-time optimization statistics.
-flto-report-wpa Report various link-time optimization statistics for WPA only.
-flto= Link-time optimization with number of parallel jobs or jobserver.
-fmax-errors=<number> Maximum number of errors to report.
-fmem-report Report on permanent memory allocation.
-fmem-report-wpa Report on permanent memory allocation in WPA only.
-fmerge-all-constants Attempt to merge identical constants and constant variables.
-fmerge-constants Attempt to merge identical constants across compilation units.
-fmerge-debug-strings Attempt to merge identical debug strings across compilation units.
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
-foffload-abi= -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
-foffload= -foffload=<targets>=<options> Specify offloading targets and options for them.
-fopt-info[-<type>=filename] Dump compiler optimization details.
-foptimize-register-move Does nothing. Preserved for backward compatibility.
-fpcc-struct-return Return small aggregates in memory, not registers.
-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
-fpic Generate position-independent code if possible (small mode).
-fpie Generate position-independent code for executables if possible (small mode).
-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
-fplugin= Specify a plugin to load.
-fpost-ipa-mem-report Report on memory allocation before interprocedural optimization.
-fpre-ipa-mem-report Report on memory allocation before interprocedural optimization.
-fprofile Enable basic program profiling code.
-fprofile-abs-path Generate absolute source path names for gcov.
-fprofile-arcs Insert arc-based program profiling code.
-fprofile-correction Enable correction of flow inconsistent profile data input.
-fprofile-dir= Set the top-level directory for storing the profile data. The default is 'pwd'.
-fprofile-exclude-files= Instrument only functions from files where names do not match all the regular expressions (separated by a semi-colon).
-fprofile-filter-files= Instrument only functions from files where names match any regular expression (separated by a semi-colon).
-fprofile-generate Enable common options for generating profile info for profile feedback directed optimizations.
-fprofile-generate= Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
-fprofile-reorder-functions Enable function reordering that improves code placement.
-fprofile-report Report on consistency of profile.
-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
-fprofile-use Enable common options for performing profile feedback directed optimizations.
-fprofile-use= Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
-fprofile-values Insert code to profile values of expressions.
-frandom-seed This option lacks documentation.
-frandom-seed=<string> Make compile reproducible using <string>.
-frecord-gcc-switches Record gcc command line switches in the object file.
-free Turn on Redundant Extensions Elimination pass.
-fregmove Does nothing. Preserved for backward compatibility.
-freport-bug Collect and dump debug information into temporary file if ICE in C/C++ compiler occurred.
-frerun-loop-opt Does nothing. Preserved for backward compatibility.
-fsanitize-address-use-after-scope This option lacks documentation.
-fsanitize-coverage= Select type of coverage sanitization.
-fsanitize-recover This switch is deprecated; use -fsanitize-recover= instead.
-fsanitize-recover= After diagnosing undefined behavior attempt to continue execution.
-fsanitize-sections=<sec1,sec2,...> Sanitize global variables in user-defined sections.
-fsanitize-undefined-trap-on-error Use trap instead of a library function for undefined behavior sanitization.
-fsanitize= Select what to sanitize.
-fsched-verbose=<number> Set the verbosity level of the scheduler.
-fsched2-use-traces Does nothing. Preserved for backward compatibility.
-fsee Does nothing. Preserved for backward compatibility.
-fself-test= Run self-tests, using the given path to locate test files.
-fsemantic-interposition Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
-fshow-column Show column numbers in diagnostics, when available. Default on.
-fsplit-stack Generate discontiguous stack frames.
-fstack-check Insert stack checking code into the program. Same as -fstack-check=specific. Same as -fstack-check=.
-fstack-limit This option lacks documentation.
-fstack-limit-register=<register> Trap if the stack goes past <register>.
-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
-fstack-usage Output stack usage information on a per-function basis.
-fstrength-reduce Does nothing. Preserved for backward compatibility.
-fstrict-overflow Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
-fsync-libcalls Implement __atomic operations via libcalls to legacy __sync functions.
-fsyntax-only Check for syntax errors, then stop.
-ftarget-help Same as --target-help. Use the latter option instead.
-ftest-coverage Create data files needed by "gcov".
-ftime-report Report the time taken by each compiler pass.
-ftime-report-details Record times taken by sub-phases separately.
-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
-ftoplevel-reorder Reorder top level functions, variables, and asms.
-ftrampolines For targets that normally need trampolines for nested functions, always generate them instead of using descriptors.
-ftree-coalesce-inlined-vars Does nothing. Preserved for backward compatibility.
-ftree-copyrename Does nothing. Preserved for backward compatibility.
-ftree-loop-if-convert-stores Does nothing. Preserved for backward compatibility.
-ftree-loop-linear Enable loop nest transforms. Same as -floop-nest-optimize. Same as -floop-nest-optimize.
-ftree-salias Does nothing. Preserved for backward compatibility.
-ftree-store-ccp Does nothing. Preserved for backward compatibility.
-ftree-store-copy-prop Does nothing. Preserved for backward compatibility.
-ftree-vect-loop-version Does nothing. Preserved for backward compatibility.
-ftree-vectorizer-verbose= Does nothing. Preserved for backward compatibility.
-funit-at-a-time Compile whole compilation unit at a time.
-funsafe-loop-optimizations Does nothing. Preserved for backward compatibility.
-fuse-ld=bfd Use the bfd linker instead of the default linker.
-fuse-ld=gold Use the gold linker instead of the default linker.
-fuse-ld=lld Use the lld LLVM linker instead of the default linker.
-fuse-linker-plugin This option lacks documentation.
-fvect-cost-model Enables the dynamic vectorizer cost model. Preserved for backward compatibility. Same as -fvect-cost-model=.
-fverbose-asm Add extra commentary to assembler output.
-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
-fvtable-verify= Validate vtable pointers before using them.
-fvtv-counts Output vtable verification counters.
-fvtv-debug Output vtable verification pointer sets information.
-fwhole-program Perform whole program optimizations.
-fzee Does nothing. Preserved for backward compatibility.
-fzero-initialized-in-bss Put zero initialized data in the bss section.
-g Generate debug information in default format.
-gas-loc-support Assume assembler support for (DWARF2+) .loc directives.
-gas-locview-support Assume assembler support for view in (DWARF2+) .loc directives.
-gcoff Does nothing. Preserved for backward compatibility.
-gcoff1 Does nothing. Preserved for backward compatibility.
-gcoff2 Does nothing. Preserved for backward compatibility.
-gcoff3 Does nothing. Preserved for backward compatibility.
-gcolumn-info Record DW_AT_decl_column and DW_AT_call_column in DWARF.
-gdescribe-dies Add description attributes to some DWARF DIEs that have no name attribute.
-gdwarf Generate debug information in default version of DWARF format.
-gdwarf- Generate debug information in DWARF v2 (or later) format.
-ggdb Generate debug information in default extended format.
-ggnu-pubnames Generate DWARF pubnames and pubtypes sections with GNU extensions.
-ginline-points Generate extended entry point information for inlined functions.
-ginternal-reset-location-views Compute locview reset points based on insn length estimates.
-gno-pubnames Don't generate DWARF pubnames and pubtypes sections.
-gpubnames Generate DWARF pubnames and pubtypes sections.
-grecord-gcc-switches Record gcc command line switches in DWARF DW_AT_producer.
-gsplit-dwarf Generate debug information in separate .dwo files.
-gstabs Generate debug information in STABS format.
-gstabs+ Generate debug information in extended STABS format.
-gstatement-frontiers Emit progressive recommended breakpoint locations.
-gstrict-dwarf Don't emit DWARF additions beyond selected version.
-gtoggle Toggle debug information generation.
-gvariable-location-views Augment variable location lists with progressive views.
-gvariable-location-views=incompat5 This option lacks documentation.
-gvms Generate debug information in VMS format.
-gxcoff Generate debug information in XCOFF format.
-gxcoff+ Generate debug information in extended XCOFF format.
-gz Generate compressed debug sections.
-gz=<format> Generate compressed debug sections in format <format>.
-imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
-iplugindir=<dir> Set <dir> to be the default plugin directory.
-p Enable function profiling.
-pedantic-errors Like -pedantic but issue them as errors.
-quiet Do not display functions compiled or elapsed time.
Usage: as [option...] [asmfile...]
Options:
-a[sub-option...] turn on listings
Sub-options [default hls]:
c omit false conditionals
d omit debugging directives
g include general info
h include high-level source
l include assembly
m include macro expansions
n omit forms processing
s include symbols
=FILE list to FILE (must be last sub-option)
--alternate initially turn on alternate macro syntax
--compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]
compress DWARF debug sections using zlib
--nocompress-debug-sections
don't compress DWARF debug sections [default]
-D produce assembler debugging messages
--debug-prefix-map OLD=NEW
map OLD to NEW in debug information
--defsym SYM=VAL define symbol SYM to given value
--execstack require executable stack for this object
--noexecstack don't require executable stack for this object
--size-check=[error|warning]
ELF .size directive check (default --size-check=error)
--elf-stt-common=[no|yes] (default: no)
generate ELF common symbols with STT_COMMON type
--sectname-subst enable section name substitution sequences
--generate-missing-build-notes=[no|yes] (default: no)
generate GNU Build notes if none are present in the input
-f skip whitespace and comment preprocessing
-g --gen-debug generate debugging information
--gstabs generate STABS debugging information
--gstabs+ generate STABS debug info with GNU extensions
--gdwarf-2 generate DWARF2 debugging information
--gdwarf-sections generate per-function section names for DWARF line information
--hash-size=<value> set the hash table size close to <value>
--help show this message and exit
--target-help show target specific options
-I DIR add DIR to search list for .include directives
-J don't warn about signed overflow
-K warn when differences altered for long displacements
-L,--keep-locals keep local symbols (e.g. starting with `L')
-M,--mri assemble in MRI compatibility mode
--MD FILE write dependency information in FILE (default none)
-nocpp ignored
-no-pad-sections do not pad the end of sections to alignment boundaries
-o OBJFILE name the object-file output OBJFILE (default a.out)
-R fold data section into text section
--reduce-memory-overheads
prefer smaller memory use at the cost of longer
assembly times
--statistics print various measured statistics from execution
--strip-local-absolute strip local absolute symbols
--traditional-format Use same format as native assembler when possible
--version print assembler version number and exit
-W --no-warn suppress warnings
--warn don't suppress warnings
--fatal-warnings treat warnings as errors
-w ignored
-X ignored
-Z generate object file even after errors
--listing-lhs-width set the width in words of the output data column of
the listing
--listing-lhs-width2 set the width in words of the continuation lines
of the output data column; ignored if smaller than
the width of the first line
--listing-rhs-width set the max width in characters of the lines from
the source file
--listing-cont-lines set the maximum number of continuation lines used
for the output data column of the listing
@FILE read options from FILE
-Qy, -Qn ignored
-V print assembler version number
-k ignored
-n Do not optimize code alignment
-q quieten some warnings
-s ignored
--32/--64/--x32 generate 32bit/64bit/x32 code
--divide ignored
-march=CPU[,+EXTENSION...]
generate code for CPU and EXTENSION, CPU is one of:
generic32, generic64, i386, i486, i586, i686,
pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
prescott, nocona, core, core2, corei7, l1om, k1om,
iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
bdver1, bdver2, bdver3, bdver4, znver1, znver2,
btver1, btver2
EXTENSION is combination of:
8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2,
sse3, ssse3, sse4.1, sse4.2, sse4, avx, avx2,
avx512f, avx512cd, avx512er, avx512pf, avx512dq,
avx512bw, avx512vl, vmx, vmfunc, smx, xsave,
xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase,
rdrnd, f16c, bmi2, fma, fma4, xop, lwp, movbe, cx16,
ept, lzcnt, hle, rtm, invpcid, clflush, nop, syscall,
rdtscp, 3dnow, 3dnowa, padlock, svme, sse4a, abm,
bmi, tbm, adx, rdseed, prfchw, smap, mpx, sha,
clflushopt, prefetchwt1, se1, clwb, avx512ifma,
avx512vbmi, avx512_4fmaps, avx512_4vnniw,
avx512_vpopcntdq, avx512_vbmi2, avx512_vnni,
avx512_bitalg, clzero, mwaitx, ospke, rdpid, ptwrite,
ibt, shstk, gfni, vaes, vpclmulqdq, wbnoinvd,
pconfig, waitpkg, cldemote, movdiri, movdir64b,
avx512_bf16, avx512_vp2intersect, enqcmd, rdpru,
mcommit, no87, no287, no387, no687, nocmov, nofxsr,
nommx, nosse, nosse2, nosse3, nossse3, nosse4.1,
nosse4.2, nosse4, noavx, noavx2, noavx512f,
noavx512cd, noavx512er, noavx512pf, noavx512dq,
noavx512bw, noavx512vl, noavx512ifma, noavx512vbmi,
noavx512_4fmaps, noavx512_4vnniw, noavx512_vpopcntdq,
noavx512_vbmi2, noavx512_vnni, noavx512_bitalg,
noibt, noshstk, nomovdiri, nomovdir64b,
noavx512_bf16, noavx512_vp2intersect, noenqcmd
-mtune=CPU optimize for CPU, CPU is one of:
generic32, generic64, i8086, i186, i286, i386, i486,
i586, i686, pentium, pentiumpro, pentiumii,
pentiumiii, pentium4, prescott, nocona, core, core2,
corei7, l1om, k1om, iamcu, k6, k6_2, athlon, opteron,
k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1,
znver2, btver1, btver2
-msse2avx encode SSE instructions with VEX prefix
-msse-check=[none|error|warning] (default: warning)
check SSE instructions
-moperand-check=[none|error|warning] (default: warning)
check operand combinations for validity
-mavxscalar=[128|256] (default: 128)
encode scalar AVX instructions with specific vector
length
-mvexwig=[0|1] (default: 0)
encode VEX instructions with specific VEX.W value
for VEX.W bit ignored instructions
-mevexlig=[128|256|512] (default: 128)
encode scalar EVEX instructions with specific vector
length
-mevexwig=[0|1] (default: 0)
encode EVEX instructions with specific EVEX.W value
for EVEX.W bit ignored instructions
-mevexrcig=[rne|rd|ru|rz] (default: rne)
encode EVEX instructions with specific EVEX.RC value
for SAE-only ignored instructions
-mmnemonic=[att|intel] (default: att)
use AT&T/Intel mnemonic
-msyntax=[att|intel] (default: att)
use AT&T/Intel syntax
-mindex-reg support pseudo index registers
-mnaked-reg don't require `%' prefix for registers
-madd-bnd-prefix add BND prefix for all valid branches
-mshared disable branch optimization for shared code
-mx86-used-note=[no|yes] (default: no)
generate x86 used ISA and feature properties
-momit-lock-prefix=[no|yes] (default: no)
strip all lock prefixes
-mfence-as-lock-add=[no|yes] (default: no)
encode lfence, mfence and sfence as
lock addl $0x0, (%{re}sp)
-mrelax-relocations=[no|yes] (default: yes)
generate relax relocations
-malign-branch-boundary=NUM (default: 0)
align branches within NUM byte boundary
-malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)
TYPE is combination of jcc, fused, jmp, call, ret,
indirect
specify types of branches to align
-malign-branch-prefix-size=NUM (default: 5)
align branches with NUM prefixes per instruction
-mbranches-within-32B-boundaries
align branches within 32 byte boundary
-mamd64 accept only AMD64 ISA [default]
-mintel64 accept only Intel64 ISA
Report bugs to <http://www.sourceware.org/bugzilla/>
Usage: collect2 [options]
Wrap linker and generate constructor code if needed.
Options:
-debug Enable debug output
--help Display this information
-v, --version Display this program's version number
Overview: https://gcc.gnu.org/onlinedocs/gccint/Collect2.html
Report bugs: <file:///usr/share/doc/gcc-9/README.Bugs>
Usage: /usr/bin/ld [options] file...
Options:
-a KEYWORD Shared library control for HP/UX compatibility
-A ARCH, --architecture ARCH
Set architecture
-b TARGET, --format TARGET Specify target for following input files
-c FILE, --mri-script FILE Read MRI format linker script
-d, -dc, -dp Force common symbols to be defined
--force-group-allocation Force group members out of groups
-e ADDRESS, --entry ADDRESS Set start address
-E, --export-dynamic Export all dynamic symbols
--no-export-dynamic Undo the effect of --export-dynamic
-EB Link big-endian objects
-EL Link little-endian objects
-f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table
-F SHLIB, --filter SHLIB Filter for shared object symbol table
-g Ignored
-G SIZE, --gpsize SIZE Small data size (if no size, same as --shared)
-h FILENAME, -soname FILENAME
Set internal name of shared library
-I PROGRAM, --dynamic-linker PROGRAM
Set PROGRAM as the dynamic linker to use
--no-dynamic-linker Produce an executable with no program interpreter header
-l LIBNAME, --library LIBNAME
Search for library LIBNAME
-L DIRECTORY, --library-path DIRECTORY
Add DIRECTORY to library search path
--sysroot=<DIRECTORY> Override the default sysroot location
-m EMULATION Set emulation
-M, --print-map Print map file on standard output
-n, --nmagic Do not page align data
-N, --omagic Do not page align data, do not make text readonly
--no-omagic Page align data, make text readonly
-o FILE, --output FILE Set output file name
-O Optimize output file
--out-implib FILE Generate import library
-plugin PLUGIN Load named plugin
-plugin-opt ARG Send arg to last-loaded plugin
-flto Ignored for GCC LTO option compatibility
-flto-partition= Ignored for GCC LTO option compatibility
-fuse-ld= Ignored for GCC linker option compatibility
--map-whole-files Ignored for gold option compatibility
--no-map-whole-files Ignored for gold option compatibility
-Qy Ignored for SVR4 compatibility
-q, --emit-relocs Generate relocations in final output
-r, -i, --relocatable Generate relocatable output
-R FILE, --just-symbols FILE
Just link symbols (if directory, same as --rpath)
-s, --strip-all Strip all symbols
-S, --strip-debug Strip debugging symbols
--strip-discarded Strip symbols in discarded sections
--no-strip-discarded Do not strip symbols in discarded sections
-t, --trace Trace file opens
-T FILE, --script FILE Read linker script
--default-script FILE, -dT Read default linker script
-u SYMBOL, --undefined SYMBOL
Start with undefined reference to SYMBOL
--require-defined SYMBOL Require SYMBOL be defined in the final output
--unique [=SECTION] Don't merge input [SECTION | orphan] sections
-Ur Build global constructor/destructor tables
-v, --version Print version information
-V Print version and emulation information
-x, --discard-all Discard all local symbols
-X, --discard-locals Discard temporary local symbols (default)
--discard-none Don't discard any local symbols
-y SYMBOL, --trace-symbol SYMBOL
Trace mentions of SYMBOL
-Y PATH Default search path for Solaris compatibility
-(, --start-group Start a group
-), --end-group End a group
--accept-unknown-input-arch Accept input files whose architecture cannot be determined
--no-accept-unknown-input-arch
Reject input files whose architecture is unknown
--as-needed Only set DT_NEEDED for following dynamic libs if used
--no-as-needed Always set DT_NEEDED for dynamic libraries mentioned on
the command line
-assert KEYWORD Ignored for SunOS compatibility
-Bdynamic, -dy, -call_shared
Link against shared libraries
-Bstatic, -dn, -non_shared, -static
Do not link against shared libraries
-Bsymbolic Bind global references locally
-Bsymbolic-functions Bind global function references locally
--check-sections Check section addresses for overlaps (default)
--no-check-sections Do not check section addresses for overlaps
--copy-dt-needed-entries Copy DT_NEEDED links mentioned inside DSOs that follow
--no-copy-dt-needed-entries Do not copy DT_NEEDED links mentioned inside DSOs that follow
--cref Output cross reference table
--defsym SYMBOL=EXPRESSION Define a symbol
--demangle [=STYLE] Demangle symbol names [using STYLE]
--disable-multiple-abs-defs Do not allow multiple definitions with symbols included
in filename invoked by -R or --just-symbols
--embedded-relocs Generate embedded relocs
--fatal-warnings Treat warnings as errors
--no-fatal-warnings Do not treat warnings as errors (default)
-fini SYMBOL Call SYMBOL at unload-time
--force-exe-suffix Force generation of file with .exe suffix
--gc-sections Remove unused sections (on some targets)
--no-gc-sections Don't remove unused sections (default)
--print-gc-sections List removed unused sections on stderr
--no-print-gc-sections Do not list removed unused sections
--gc-keep-exported Keep exported symbols when removing unused sections
--hash-size=<NUMBER> Set default hash table size close to <NUMBER>
--help Print option help
-init SYMBOL Call SYMBOL at load-time
-Map FILE Write a map file
--no-define-common Do not define Common storage
--no-demangle Do not demangle symbol names
--no-keep-memory Use less memory and more disk I/O
--no-undefined Do not allow unresolved references in object files
--allow-shlib-undefined Allow unresolved references in shared libraries
--no-allow-shlib-undefined Do not allow unresolved references in shared libs
--allow-multiple-definition Allow multiple definitions
--no-undefined-version Disallow undefined version
--default-symver Create default symbol version
--default-imported-symver Create default symbol version for imported symbols
--no-warn-mismatch Don't warn about mismatched input files
--no-warn-search-mismatch Don't warn on finding an incompatible library
--no-whole-archive Turn off --whole-archive
--noinhibit-exec Create an output file even if errors occur
-nostdlib Only use library directories specified on
the command line
--oformat TARGET Specify target of output file
--print-output-format Print default output format
--print-sysroot Print current sysroot
-qmagic Ignored for Linux compatibility
--reduce-memory-overheads Reduce memory overheads, possibly taking much longer
--relax Reduce code size by using target specific optimizations
--no-relax Do not use relaxation techniques to reduce code size
--retain-symbols-file FILE Keep only symbols listed in FILE
-rpath PATH Set runtime shared library search path
-rpath-link PATH Set link time shared library search path
-shared, -Bshareable Create a shared library
-pie, --pic-executable Create a position independent executable
--sort-common [=ascending|descending]
Sort common symbols by alignment [in specified order]
--sort-section name|alignment
Sort sections by name or maximum alignment
--spare-dynamic-tags COUNT How many tags to reserve in .dynamic section
--split-by-file [=SIZE] Split output sections every SIZE octets
--split-by-reloc [=COUNT] Split output sections every COUNT relocs
--stats Print memory usage statistics
--target-help Display target specific options
--task-link SYMBOL Do task level linking
--traditional-format Use same format as native linker
--section-start SECTION=ADDRESS
Set address of named section
-Tbss ADDRESS Set address of .bss section
-Tdata ADDRESS Set address of .data section
-Ttext ADDRESS Set address of .text section
-Ttext-segment ADDRESS Set address of text segment
-Trodata-segment ADDRESS Set address of rodata segment
-Tldata-segment ADDRESS Set address of ldata segment
--unresolved-symbols=<method>
How to handle unresolved symbols. <method> is:
ignore-all, report-all, ignore-in-object-files,
ignore-in-shared-libs
--verbose [=NUMBER] Output lots of information during link
--version-script FILE Read version information script
--version-exports-section SYMBOL
Take export symbols list from .exports, using
SYMBOL as the version.
--dynamic-list-data Add data symbols to dynamic list
--dynamic-list-cpp-new Use C++ operator new/delete dynamic list
--dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
--dynamic-list FILE Read dynamic list
--warn-common Warn about duplicate common symbols
--warn-constructors Warn if global constructors/destructors are seen
--warn-multiple-gp Warn if the multiple GP values are used
--warn-once Warn only once per undefined symbol
--warn-section-align Warn if start of section changes due to alignment
--warn-shared-textrel Warn if shared object has DT_TEXTREL
--warn-alternate-em Warn if an object has alternate ELF machine code
--warn-unresolved-symbols Report unresolved symbols as warnings
--error-unresolved-symbols Report unresolved symbols as errors
--whole-archive Include all objects from following archives
--wrap SYMBOL Use wrapper functions for SYMBOL
--ignore-unresolved-symbol SYMBOL
Unresolved SYMBOL will not cause an error or warning
--push-state Push state of flags governing input file handling
--pop-state Pop state of flags governing input file handling
--print-memory-usage Report target memory usage
--orphan-handling =MODE Control how orphan sections are handled.
--print-map-discarded Show discarded sections in map file output (default)
--no-print-map-discarded Do not show discarded sections in map file output
@FILE Read options from FILE
/usr/bin/ld: supported targets: elf64-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big pe-x86-64 pe-bigobj-x86-64 pe-i386 srec symbolsrec verilog tekhex binary ihex plugin
/usr/bin/ld: supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
/usr/bin/ld: emulation specific options:
ELF emulations:
--ld-generated-unwind-info Generate exception handling info for PLT
--no-ld-generated-unwind-info
Don't generate exception handling info for PLT
--build-id[=STYLE] Generate build ID note
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
Compress DWARF debug sections using zlib
Default: none
-z common-page-size=SIZE Set common page size to SIZE
-z max-page-size=SIZE Set maximum page size to SIZE
-z defs Report unresolved symbols in object files
-z muldefs Allow multiple definitions
-z execstack Mark executable as requiring executable stack
-z noexecstack Mark executable as not requiring executable stack
-z globalaudit Mark executable requiring global auditing
--audit=AUDITLIB Specify a library to use for auditing
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
--no-eh-frame-hdr Do not create .eh_frame_hdr section
--exclude-libs=LIBS Make all symbols in LIBS hidden
--hash-style=STYLE Set hash style to sysv, gnu or both
-P AUDITLIB, --depaudit=AUDITLIB
Specify a library to use for auditing dependencies
-z combreloc Merge dynamic relocs into one section and sort
-z nocombreloc Don't merge dynamic relocs into one section
-z global Make symbols in DSO available for subsequently
loaded objects
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z lazy Mark object lazy runtime binding (default)
-z loadfltr Mark object requiring immediate process
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN
processing at runtime
-z relro Create RELRO program header (default)
-z norelro Don't create RELRO program header
-z separate-code Create separate code program header (default)
-z noseparate-code Don't create separate code program header
-z common Generate common symbols with STT_COMMON type
-z nocommon Generate common symbols with STT_OBJECT type
-z stack-size=SIZE Set size of stack segment
-z text Treat DT_TEXTREL in shared object as error
-z notext Don't treat DT_TEXTREL in shared object as error
-z textoff Don't treat DT_TEXTREL in shared object as error
elf_x86_64:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z noreloc-overflow Disable relocation overflow check
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
-z ibtplt Generate IBT-enabled PLT entries
-z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT
-z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
-z cet-report=[none|warning|error] (default: none)
Report missing IBT and SHSTK properties
-z bndplt Always generate BND prefix in PLT entries
elf32_x86_64:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z noreloc-overflow Disable relocation overflow check
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
-z ibtplt Generate IBT-enabled PLT entries
-z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT
-z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
-z cet-report=[none|warning|error] (default: none)
Report missing IBT and SHSTK properties
elf_i386:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
-z ibtplt Generate IBT-enabled PLT entries
-z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT
-z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK
-z cet-report=[none|warning|error] (default: none)
Report missing IBT and SHSTK properties
elf_iamcu:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
elf_l1om:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
elf_k1om:
-z noextern-protected-data Do not treat protected data symbol as external
-z dynamic-undefined-weak Make undefined weak symbols dynamic
-z nodynamic-undefined-weak Do not make undefined weak symbols dynamic
-z call-nop=PADDING Use PADDING as 1-byte NOP for branch
i386pep:
--base_file <basefile> Generate a base file for relocatable DLLs
--dll Set image base to the default for DLLs
--file-alignment <size> Set file alignment
--heap <size> Set initial size of the heap
--image-base <address> Set start address of the executable
--major-image-version <number> Set version number of the executable
--major-os-version <number> Set minimum required OS version
--major-subsystem-version <number> Set minimum required OS subsystem version
--minor-image-version <number> Set revision number of the executable
--minor-os-version <number> Set minimum required OS revision
--minor-subsystem-version <number> Set minimum required OS subsystem revision
--section-alignment <size> Set section alignment
--stack <size> Set size of the initial stack
--subsystem <name>[:<version>] Set required OS subsystem [& version]
--support-old-code Support interworking with old code
--[no-]leading-underscore Set explicit symbol underscore prefix mode
--[no-]insert-timestamp Use a real timestamp rather than zero (default)
This makes binaries non-deterministic
--add-stdcall-alias Export symbols with and without @nn
--disable-stdcall-fixup Don't link _sym to _sym@nn
--enable-stdcall-fixup Link _sym to _sym@nn without warnings
--exclude-symbols sym,sym,... Exclude symbols from automatic export
--exclude-all-symbols Exclude all symbols from automatic export
--exclude-libs lib,lib,... Exclude libraries from automatic export
--exclude-modules-for-implib mod,mod,...
Exclude objects, archive members from auto
export, place into import library instead
--export-all-symbols Automatically export all globals to DLL
--kill-at Remove @nn from exported symbols
--output-def <file> Generate a .DEF file for the built DLL
--warn-duplicate-exports Warn about duplicate exports
--compat-implib Create backward compatible import libs;
create __imp_<SYMBOL> as well
--enable-auto-image-base Automatically choose image base for DLLs
unless user specifies one
--disable-auto-image-base Do not auto-choose image base (default)
--dll-search-prefix=<string> When linking dynamically to a dll without
an importlib, use <string><basename>.dll
in preference to lib<basename>.dll
--enable-auto-import Do sophisticated linking of _sym to
__imp_sym for DATA references
--disable-auto-import Do not auto-import DATA items from DLLs
--enable-runtime-pseudo-reloc Work around auto-import limitations by
adding pseudo-relocations resolved at
runtime
--disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for
auto-imported DATA
--enable-extra-pep-debug Enable verbose debug output when building
or linking to DLLs (esp. auto-import)
--enable-long-section-names Use long COFF section names even in
executable image files
--disable-long-section-names Never use long COFF section names, even
in object files
--high-entropy-va Image is compatible with 64-bit address space
layout randomization (ASLR)
--dynamicbase Image base address may be relocated using
address space layout randomization (ASLR)
--enable-reloc-section Create the base relocation table
--forceinteg Code integrity checks are enforced
--nxcompat Image is compatible with data execution prevention
--no-isolation Image understands isolation but do not isolate the image
--no-seh Image does not use SEH; no SE handler may
be called in this image
--no-bind Do not bind this image
--wdmdriver Driver uses the WDM model
--tsaware Image is Terminal Server aware
--build-id[=STYLE] Generate build ID
i386pe:
--base_file <basefile> Generate a base file for relocatable DLLs
--dll Set image base to the default for DLLs
--file-alignment <size> Set file alignment
--heap <size> Set initial size of the heap
--image-base <address> Set start address of the executable
--major-image-version <number> Set version number of the executable
--major-os-version <number> Set minimum required OS version
--major-subsystem-version <number> Set minimum required OS subsystem version
--minor-image-version <number> Set revision number of the executable
--minor-os-version <number> Set minimum required OS revision
--minor-subsystem-version <number> Set minimum required OS subsystem revision
--section-alignment <size> Set section alignment
--stack <size> Set size of the initial stack
--subsystem <name>[:<version>] Set required OS subsystem [& version]
--support-old-code Support interworking with old code
--[no-]leading-underscore Set explicit symbol underscore prefix mode
--thumb-entry=<symbol> Set the entry point to be Thumb <symbol>
--[no-]insert-timestamp Use a real timestamp rather than zero (default).
This makes binaries non-deterministic
--add-stdcall-alias Export symbols with and without @nn
--disable-stdcall-fixup Don't link _sym to _sym@nn
--enable-stdcall-fixup Link _sym to _sym@nn without warnings
--exclude-symbols sym,sym,... Exclude symbols from automatic export
--exclude-all-symbols Exclude all symbols from automatic export
--exclude-libs lib,lib,... Exclude libraries from automatic export
--exclude-modules-for-implib mod,mod,...
Exclude objects, archive members from auto
export, place into import library instead.
--export-all-symbols Automatically export all globals to DLL
--kill-at Remove @nn from exported symbols
--output-def <file> Generate a .DEF file for the built DLL
--warn-duplicate-exports Warn about duplicate exports
--compat-implib Create backward compatible import libs;
create __imp_<SYMBOL> as well.
--enable-auto-image-base[=<address>] Automatically choose image base for DLLs
(optionally starting with address) unless
specifically set with --image-base
--disable-auto-image-base Do not auto-choose image base. (default)
--dll-search-prefix=<string> When linking dynamically to a dll without
an importlib, use <string><basename>.dll
in preference to lib<basename>.dll
--enable-auto-import Do sophisticated linking of _sym to
__imp_sym for DATA references
--disable-auto-import Do not auto-import DATA items from DLLs
--enable-runtime-pseudo-reloc Work around auto-import limitations by
adding pseudo-relocations resolved at
runtime.
--disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for
auto-imported DATA.
--enable-extra-pe-debug Enable verbose debug output when building
or linking to DLLs (esp. auto-import)
--large-address-aware Executable supports virtual addresses
greater than 2 gigabytes
--disable-large-address-aware Executable does not support virtual
addresses greater than 2 gigabytes
--enable-long-section-names Use long COFF section names even in
executable image files
--disable-long-section-names Never use long COFF section names, even
in object files
--dynamicbase Image base address may be relocated using
address space layout randomization (ASLR)
--enable-reloc-section Create the base relocation table
--forceinteg Code integrity checks are enforced
--nxcompat Image is compatible with data execution prevention
--no-isolation Image understands isolation but do not isolate the image
--no-seh Image does not use SEH. No SE handler may
be called in this image
--no-bind Do not bind this image
--wdmdriver Driver uses the WDM model
--tsaware Image is Terminal Server aware
--build-id[=STYLE] Generate build ID
Report bugs to <http://www.sourceware.org/bugzilla/>
For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-9/README.Bugs>
版权声明:本文为Lionel_Coder原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。