-help
Common
+Display this information
-param
Common Separate
+--param <param>=<value> Set paramter <param> to value. See below for a complete list of parameters
-target-help
Common
G
Common Joined Separate UInteger
+-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
O
Common JoinedOrMissing
+-O<number> Set optimization level to <number>
Os
Common
+Optimize for space rather than speed
W
Common RejectNegative
+This switch is deprecated; use -Wextra instead
Waggregate-return
Common
+Warn about returning structures, unions or arrays
Wcast-align
Common
+Warn about pointer casts which increase alignment
Wdeprecated-declarations
Common
+Warn about uses of __attribute__((deprecated)) declarations
Wdisabled-optimization
Common
+Warn when an optimization pass is disabled
Werror
Common
+Treat all warnings as errors
Wextra
Common
+Print extra (possibly unwanted) warnings
Winline
Common
+Warn when an inlined function cannot be inlined
Wlarger-than-
Common RejectNegative Joined UInteger
+-Wlarger-than-<number> Warn if an object is larger than <number> bytes
Wmissing-noreturn
Common
+Warn about functions which might be candidates for __attribute__((noreturn))
Wpacked
Common
+Warn when the packed attribute has no effect on struct layout
Wpadded
Common
+Warn when padding is required to align structure members
Wshadow
Common
+Warn when one local variable shadows another
Wstrict-aliasing
Common
+Warn about code which might break strict aliasing rules
Wswitch
Common
+Warn about enumerated switches, with no default, missing a case
Wswitch-default
Common
+Warn about enumerated switches missing a \"default:\" statement
Wswitch-enum
Common
+Warn about all enumerated switches missing a specific case
Wsystem-headers
Common
+Do not suppress warnings from system headers
Wuninitialized
Common
+Warn about uninitialized automatic variables
Wunreachable-code
Common
+Warn about code that will never be executed
Wunused
Common
+Enable all -Wunused- warnings
Wunused-function
Common
+Warn when a function is unused
Wunused-label
Common
+Warn when a label is unused
Wunused-parameter
Common
+Warn when a function parameter is unused
Wunused-value
Common
+Warn when an expression value is unused
Wunused-variable
Common
+Warn when a variable is unused
aux-info
Common Separate
+-aux-info <file> Emit declaration information into <file>
aux-info=
Common Joined
d
Common Joined
+-d<letters> Enable dumps from specific passes of the compiler
dumpbase
Common Separate
+-dumpbase <file> Set the file basename to be used for dumps
+
+fPIC
+Common
+
+fPIE
+Common
+
+falign-functions
+Common
+Align the start of functions
falign-functions=
Common RejectNegative Joined UInteger
+falign-jumps
+Common
+Align labels which are only reached by jumping
+
falign-jumps=
Common RejectNegative Joined UInteger
+falign-labels
+Common
+Align all labels
+
falign-labels=
Common RejectNegative Joined UInteger
+falign-loops
+Common
+Align the start of loops
+
falign-loops=
Common RejectNegative Joined UInteger
+fargument-alias
+Common
+Specify that arguments may alias each other and globals
+
+fargument-noalias
+Common
+Assume arguments may alias globals but not each other
+
+fargument-noalias-global
+Common
+Assume arguments alias neither each other nor globals
+
+fasynchronous-unwind-tables
+Common
+Generate unwind tables that are exact at each instruction boundary
+
+fbounds-check
+Common
+Generate code to check bounds before indexing arrays
+
+fbranch-count-reg
+Common
+Replace add, compare, branch with branch on count register
+
+fbranch-probabilities
+Common
+Use profiling information for branch probabilities
+
+fbranch-target-load-optimize
+Common
+Perform branch target load optimization before prologue / epilogue threading
+
+fbranch-target-load-optimize2
+Common
+Perform branch target load optimization after prologue / epilogue threading
+
fcall-saved-
Common Joined RejectNegative
+-fcall-saved-<register> Mark <register> as being preserved across functions
fcall-used-
Common Joined RejectNegative
+-fcall-used-<register> Mark <register> as being corrupted by function calls
+
+fcaller-saves
+Common
+Save registers around function calls
+
+fcommon
+Common
+Do not put uninitialized globals in the common section
+
+fcprop-registers
+Common
+Perform a register copy-propagation optimization pass
+
+fcrossjumping
+Common
+Perform cross-jumping optimization
+
+fcse-follow-jumps
+Common
+When running CSE, follow jumps to their targets
+
+fcse-skip-blocks
+Common
+When running CSE, follow conditional jumps
+
+fdata-sections
+Common
+Place data items into their own section
+
+fdefer-pop
+Common
+Defer popping functions args from stack until later
+
+fdelayed-branch
+Common
+Attempt to fill delay slots of branch instructions
+
+fdelete-null-pointer-checks
+Common
+Delete useless null pointer checks
+
+fdiagnostics-show-location=
+Common Joined RejectNegative
+-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
+
+fdump-unnumbered
+Common
+Suppress output of instruction numbers and line number notes in debugging dumps
+
+feliminate-dwarf2-dups
+Common
+Perform DWARF2 duplicate elimination
+
+feliminate-unused-debug-symbols
+Common
+Perform unused type elimination in debug info
+
+feliminate-unused-debug-types
+Common
+Perform unused type elimination in debug info
+
+fexceptions
+Common
+Enable exception handling
+
+fexpensive-optimizations
+Common
+Perform a number of minor, expensive optimizations
ffast-math
Common
+ffinite-math-only
+Common
+Assume no NaNs or infinities are generated
+
ffixed-
Common Joined RejectNegative
+-ffixed-<register> Mark <register> as being unavailable to the compiler
+
+ffloat-store
+Common
+Do not store floats in registers
+
+fforce-addr
+Common
+Copy memory address constants into registers before use
+
+fforce-mem
+Common
+Copy memory operands into registers before use
+
+ffunction-cse
+Common
+Allow function addresses to be held in registers
+
+ffunction-sections
+Common
+Place each function into its own section
+
+fgcse
+Common
+Perform global common subexpression elimination
+
+fgcse-lm
+Common
+Perform enhanced load motion during global common subexpression elimination
+
+fgcse-sm
+Common
+Perform store motion after global common subexpression elimination
+
+fgcse-las
+Common
+Perform redundant load after store elimination in global common subexpression elimination
+
+fgnu-linker
+Common
+Output GNU ld formatted global initializers
+
+fguess-branch-probability
+Common
+Enable guessing of branch probabilities
+
+fident
+Common
+Process #ident directives
+
+fif-conversion
+Common
+Perform conversion of conditional jumps to branchless equivalents
+
+fif-conversion2
+Common
+Perform conversion of conditional jumps to conditional execution
+
+finhibit-size-directive
+Common
+Do not generate .size directives
+
+finline
+Common
+Pay attention to the \"inline\" keyword
+
+finline-functions
+Common
+Integrate simple functions into their callers
+
+finline-limit-
+Common RejectNegative Joined UInteger
+
+finline-limit=
+Common RejectNegative Joined UInteger
+-finline-limit=<number> Limit the size of inlined functions to <number>
+
+finstrument-functions
+Common
+Instrument function entry and exit with profiling calls
+
+fkeep-inline-functions
+Common
+Generate code for functions even if they are fully inlined
+
+fkeep-static-consts
+Common
+Emit static const variables even if they are not used
+
+fleading-underscore
+Common
+Give external symbols a leading underscore
+
+floop-optimize
+Common
+Perform loop optimizations
+
+fmath-errno
+Common
+Set errno after built-in math functions
+
+fmem-report
+Common
+Report on permanent memory allocation
+
+fmerge-all-constants
+Common
+Attempt to merge identical constants and constant variables
+
+fmerge-constants
+Common
+Attempt to merge identical constants across compilation units
+
+fmessage-length=
+Common RejectNegative Joined UInteger
+-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
+
+fmove-all-movables
+Common
+Force all loop invariant computations out of loops
+
+fnew-ra
+Common
+Use graph-coloring register allocation
+
+fnon-call-exceptions
+Common
+Support synchronous non-call exceptions
+
+fold-unroll-loops
+Common
+Perform loop unrolling when iteration count is known
+
+fold-unroll-all-loops
+Common
+Perform loop unrolling for all loops
+
+fomit-frame-pointer
+Common
+When possible do not generate stack frames
+
+foptimize-register-move
+Common
+Do the full register move optimization pass
+
+foptimize-sibling-calls
+Common
+Optimize sibling and tail recursive calls
+
+fpack-struct
+Common
+Pack structure members together without holes
+
+fpcc-struct-return
+Common
+Return small aggregates in memory, not registers
+
+fpeel-loops
+Common
+Perform loop peeling
+
+fpeephole
+Common
+Enable machine specific peephole optimizations
+
+fpeephole2
+Common
+Enable an RTL peephole pass before sched2
+
+fpic
+Common
+Generate position-independent code if possible
+
+fpie
+Common
+Generate position-independent code for executables if possible
+
+fprefetch-loop-arrays
+Common
+Generate prefetch instructions, if available, for arrays in loops
+
+fprofile
+Common
+Enable basic program profiling code
+
+fprofile-arcs
+Common
+Insert arc-based program profiling code
+
+fprofile-values
+Common
+Insert code to profile values of expressions
+
+frandom-seed
+Common
+
+frandom-seed=
+Common Joined RejectNegative
+-frandom-seed=<string> Make compile reproducible using <string>
+
+freduce-all-givs
+Common
+Strength reduce all loop general induction variables
+
+freg-struct-return
+Common
+Return small aggregates in registers
+
+fregmove
+Common
+Enables a register move optimization
+
+frename-registers
+Common
+Perform a register renaming optimization pass
+
+freorder-blocks
+Common
+Reorder basic blocks to improve code placement
+
+freorder-functions
+Common
+Reorder functions to improve code placement
+
+frerun-cse-after-loop
+Common
+Add a common subexpression elimination pass after loop optimizations
+
+frerun-loop-opt
+Common
+Run the loop optimizer twice
+
+frounding-math
+Common
+Disable optimizations that assume default FP rounding behavior
+
+fsched-interblock
+Common
+Enable scheduling across basic blocks
+
+fsched-spec
+Common
+Allow speculative motion of non-loads
+
+fsched-spec-load
+Common
+Allow speculative motion of some loads
+
+fsched-spec-load-dangerous
+Common
+Allow speculative motion of more loads
+
+fsched-verbose=
+Common RejectNegative Joined
+-fsched-verbose=<number> Set the verbosity level of the scheduler
+
+fsched2-use-superblocks
+Common
+If scheduling post reload, do superblock scheduling
+
+fsched2-use-traces
+Common
+If scheduling post reload, do trace scheduling
+
+fschedule-insns
+Common
+Reschedule instructions before register allocation
+
+fschedule-insns2
+Common
+Reschedule instructions after register allocation
+
+fsched-stalled-insns
+Common
+Allow premature scheduling of queued insns
+
+fsched-stalled-insns=
+Common RejectNegative Joined UInteger
+-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
+
+fsched-stalled-insns-dep
+Common
+Set dependence distance checking in premature scheduling of queued insns
+
+fsched-stalled-insns-dep=
+Common RejectNegative Joined UInteger
+-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
+
+fshared-data
+Common
+Mark data as shared rather than private
+
+fsignaling-nans
+Common
+Disable optimizations observable by IEEE signaling NaNs
+
+fsingle-precision-constant
+Common
+Convert floating point constants to single precision constants
+
+fssa
+Common
+Enable static single assignment optimizations
+
+fssa-ccp
+Common
+Enable SSA conditional constant propagation
+
+fssa-dce
+Common
+Enable aggressive SSA dead code elimination
+
+fstack-check
+Common
+Insert stack checking code into the program
+
+fstack-limit
+Common
fstack-limit-register=
Common RejectNegative Joined
+-fstack-limit-register=<register> Trap if the stack goes past <register>
fstack-limit-symbol=
Common RejectNegative Joined
+-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
+
+fstrength-reduce
+Common
+Perform strength reduction optimizations
+
+fstrict-aliasing
+Common
+Assume strict aliasing rules apply
+
+fsyntax-only
+Common
+Check for syntax errors, then stop
+
+ftest-coverage
+Common
+Create data files needed by \"gcov\"
+
+fthread-jumps
+Common
+Perform jump threading optimizations
+
+ftime-report
+Common
+Report the time taken by each compiler pass
ftls-model=
Common Joined RejectNegative
+-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
+
+ftracer
+Common
+Perform superblock formation via tail duplication
+
+ftrapping-math
+Common
+Assume floating-point operations can trap
+
+ftrapv
+Common
+Trap for signed overflow in addition, subtraction and multiplication
+
+funit-at-a-time
+Common
+Compile whole compilation unit at a time
+
+funroll-loops
+Common
+Perform loop unrolling when iteration count is known
+
+funroll-all-loops
+Common
+Perform loop unrolling for all loops
+
+funsafe-math-optimizations
+Common
+Allow math optimizations that may violate IEEE or ISO standards
+
+funswitch-loops
+Common
+Perform loop unswitching
+
+funwind-tables
+Common
+Just generate unwind tables for exception handling
+
+fverbose-asm
+Common
+Add extra commentary to assembler output
+
+fvpt
+Common
+Use expression value profiles in optimizations
+
+fweb
+Common
+Construct webs and split unrelated uses of single variable
+
+fwrapv
+Common
+Assume signed arithmetic overflow wraps around
+
+fwritable-strings
+Common
+Store strings in writable data section
+
+fzero-initialized-in-bss
+Common
+Put zero initialized data in the bss section
g
Common JoinedOrMissing
+Generate debug information in default format
+
+gcoff
+Common JoinedOrMissing
+Generate debug information in COFF format
+
+gdwarf
+Common JoinedOrMissing
+Generate debug information in DWARF v1 format
+
+gdwarf+
+Common JoinedOrMissing
+Generate debug information in extended DWARF v1 format
+
+gdwarf-2
+Common JoinedOrMissing
+Generate debug information in DWARF v2 format
+
+ggdb
+Common JoinedOrMissing
+Generate debug information in default extended format
+
+gstabs
+Common JoinedOrMissing
+Generate debug information in STABS format
+
+gstabs+
+Common JoinedOrMissing
+Generate debug information in extended STABS format
+
+gvms
+Common JoinedOrMissing
+Generate debug information in VMS format
+
+gxcoff
+Common JoinedOrMissing
+Generate debug information in XCOFF format
+
+gxcoff+
+Common JoinedOrMissing
+Generate debug information in extended XCOFF format
m
Common Joined
o
Common Joined Separate
+-o <file> Place output into <file>
p
Common
+Enable function profiling
pedantic
Common
+Issue warnings needed for strict compliance to the standard
pedantic-errors
Common
+Like -pedantic but issue them as errors
quiet
Common
+Do not display functions compiled or elapsed time
version
Common
+Display the compiler's version
w
Common
+Suppress warnings
; This comment is to ensure we retain the blank line above.