'-mavx2[support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation]'
'-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]'
'-mavx512bf16[avx512bf16]'
'-mavx512bitalg[avx512bitalg]'
'-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]'
'-mavx512vbmi2[avx512vbmi2]'
'-mavx512vbmi[support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI 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[avx512vnni]'
'-mavx512vp2intersect[avx512vp2intersect]'
'-mavx512vpopcntdq[support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation]'
'-mavx[support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation]'
'-mavxvnni[avxvnni]'
'-mbionic[use Bionic C library]'
'-mbmi2[support BMI2 built-in functions and code generation]'
'-mbmi[support BMI built-in functions and code generation]'
'-mbranch-cost=-[branches are this expensive (1-5, arbitrary units)]:branch cost (1-5): '
'-mcldemote[cldemote]'
'-mcld[generate cld instruction in the function prologue]'
'-mclflushopt[support CLFLUSHOPT instructions]'
'-mclwb[support CLWB instruction]'
'-mclzero[support CLZERO built-in functions and code generation]'
'-mcmodel=-[use given x86-64 code model]:memory model:(32 small kernel medium large)'
'-mcpu=-[set CPU type]:CPU type:->arch'
'-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]'
'-menqcmd[enqcmd]'
'-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]'
'-mfma4[support FMA4 built-in functions and code generation]'
'-mfma[support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation]'
'-mforce-drap[always use Dynamic Realigned Argument Pointer (DRAP) to realign stack]'
'-mfpmath=-[generate floating point mathematics using given instruction set]:FPU type:(387 sse sse,387 both)'
'-mfp-ret-in-387[return values of functions in FPU registers]'
'-mfsgsbase[support FSGSBASE built-in functions and code generation]'
'-mfunction-return=-[convert function return to call and return thunk]:choice:(keep thunk thunk-inline thunk-extern)'
'-mfxsr[support FXSAVE and FXRSTOR instructions]'
'-mgeneral-regs-only[generate code which uses only the general registers]'
'-mgfni[gfni]'
'-mglibc[use GNU C library]'
'-mhard-float[use hardware fp]'
'-mhle[support Hardware Lock Elision prefixes]'
'-mhreset[hreset]'
'-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]:assumed size of boundary: '
'-mindirect-branch=-[convert indirect call and jump to call and return thunks]:choice:(keep thunk thunk-inline thunk-extern)'
'-mindirect-branch-register[force indirect call and jump via register]'
'-minline-all-stringops[inline all known string operations]'
'-minline-stringops-dynamically[inline memset/memcpy string operations, but perform inline version only for small blocks]'
'-minvpcid[invpcid]'
'-mkl[kl]'
'-mlarge-data-threshold=-[data greater than given threshold will go into .ldata section in x86-64 medium model]:threshold: '
'-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]'
{'-mmemset-strategy=-','-mmemcpy-strategy=-'}'[specify memcpy expansion strategy when expected size is known]:strategy:'
'-mmitigate-rop[attempt to avoid generating instruction sequences containing ret bytes]'
'-mmmx[support MMX built-in functions]'
'-mmovbe[support code generation of movbe instruction]'
'-mmovdir64b[movdir64b]'
'-mmovdiri[movdiri]'
'-mmpx[support MPX code generation]'
'-mms-bitfields[use native (MS) bitfield layout]'
'-mmusl[use musl C library]'
'-mmwaitx[support MWAITX and MONITORX built-in functions and code generation]'
'-mno-default[clear all tune features]'
'-mnop-mcount[generate mcount/__fentry__ calls as nops. To activate they need to be patched in]'
'-mno-sse4[do not support SSE4.1 and SSE4.2 built-in functions and code generation]'
'-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]'
'-mpconfig[pconfig]'
'-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]'
'-mpreferred-stack-boundary=-[attempt to keep stack aligned to this power of 2]:size of boundary: '
'-mprefetchwt1[support PREFETCHWT1 built-in functions and code generation]'
'-mprfchw[support PREFETCHW instruction]'
'-mptwrite[ptwrite]'
'-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=-[control generation of reciprocal estimates]::instruction:(all none div divf divd rsqrt rsqrtf rsqrtd)' # TODO comma separated and can have !
'-mrecip[generate reciprocals instead of divss and sqrtss]'
'-mrecord-mcount[generate __mcount_loc section with all mcount or __fentry__ calls]'
'-mred-zone[use red-zone in the x86-64 code]'
'-mreg-alloc=[control the default allocation order of integer registers]:default register allocation order:'
'-mregparm=-[number of registers used to pass integer arguments]:number of integer argument registers: '
'-emit-llvm[use the LLVM representation for assembler and object files]'
'-emit-merged-ifs[generate Interface Stub Files, emit merged text not binary]'
'--emit-static-lib[enable linker job to emit a static library]'
#'-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang[trivial automatic variable initialization to zero is only here for benchmarks]'
'-Wabi-tag[warn if a subobject has an abi_tag attribute that the complete object type does not have]'
'-Wabi[warn about things that will change when compiling with an ABI-compliant compiler]::'
'-Waddress[warn about suspicious uses of memory addresses]'
'-Waggregate-return[warn about returning structures, unions or arrays]'
'-Waggressive-loop-optimizations[warn if a loop with constant number of iterations triggers undefined behavior]'
'-Waliasing[warn about possible aliasing of dummy arguments]'
'-Walign-commons[warn about alignment of COMMON blocks]'
'-Waligned-new=[warn even if '\'new\'' uses a class member allocation function]:none|global|all: '
'-Wall[enable most warning messages]'
'-Walloca-larger-than=[warn on unbounded uses of alloca, and on bounded uses of alloca whose bound can be larger than <number> bytes]:bytes: '
'-Walloca[warn on any use of alloca]'
'-Walloc-size-larger-than=[warn for calls to allocation functions that attempt to allocate objects larger than the specified number of bytes]:bytes: '
'-Walloc-zero[warn for calls to allocation functions that specify zero bytes]'
'-Wampersand[warn about missing ampersand in continued character constants]'
'-Wargument-mismatch[warn about type and rank mismatches between arguments and parameters]'
'-Warray-bounds[warn if an array is accessed out of bounds]'
'-Warray-bounds=[warn if an array is accessed out of bounds]:level:(1 2)'
'-Warray-temporaries[warn about creation of array temporaries]'
'-Wassign-intercept[warn whenever an Objective-C assignment is being intercepted by the garbage collector]'
'-Wattributes[warn about inappropriate attribute usage]'
'-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++0x-compat[deprecated in favor of -Wc++11-compat]'
'-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++1z-compat[warn about C++ constructs whose meaning differs between ISO C++ 2014 and (forthcoming) ISO C++ 201z(7?)]'
'-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-align[warn about pointer casts which increase alignment]'
'-Wcast-qual[warn about casts which discard qualifiers]'
'-Wc-binding-type[warn if the type of a variable might be not interoperable with C]'
'-Wc++-compat[warn about C constructs that are not in the common subset of C and C++]'
'-Wcharacter-truncation[warn about truncated character expressions]'
'-Wchar-subscripts[warn about subscripts whose type is "char"]'
'-Wchkp[warn about memory access errors found by Pointer Bounds Checker]'
'-Wclobbered[warn about variables that might be changed by "longjmp" or "vfork"]'
'-Wcomments[synonym for -Wcomment]'
'-Wcomment[warn about possibly nested block comments, and C++ comments spanning more than one physical line]'
'-Wcompare-reals[warn about equality comparisons involving REAL or COMPLEX expressions]'
'-Wconditionally-supported[warn for conditionally-supported constructs]'
'-Wconversion-extra[warn about most implicit conversions]'
'-Wconversion-null[warn for converting NULL from/to a non-pointer type]'
'-Wconversion[warn for implicit type conversions that may change a value]'
'-Wcoverage-mismatch[warn in case profiles in -fprofile-use do not match]'
'-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-declarations[warn about uses of __attribute__((deprecated)) declarations]'
'-Wdeprecated[warn if a deprecated compiler feature, class, method, or field is used]'
'-Wdesignated-init[warn about positional initialization of structs requiring designated initializers]'
'-Wdisabled-optimization[warn when an optimization pass is disabled]'
'-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"]'
'-Wduplicated-branches[warn about duplicated branches in if-else statements]'
'-Wduplicated-cond[warn about duplicated conditions in an if-else-if chain]'
'-Wduplicate-decl-specifier[warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier]'
'-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-implicit-function-declaration[this switch is deprecated; use -Werror=implicit-fun]' # this still exists but makes completing -Werror= less convenient
'-Wexpansion-to-defined[warn if "defined" is used outside #if]'
'-Wextra[print extra (possibly unwanted) warnings]'
'-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-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[warn about function calls with format strings that write past the end of the destination region]'
'-Wformat-overflow=[warn about function calls with format strings that write past the end of the destination region]:level:(1 2)'
'-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=[warn about calls to snprintf and similar functions that truncate output]:level:(1 2)'
'-Wformat=[warn about printf/scanf/strftime/strfmon format string anomalies]::level:(1 2)'
'-Wformat-y2k[warn about strftime formats yielding 2-digit years]'
'-Wformat-zero-length[warn about zero-length formats]'
'-Wframe-address[warn when __builtin_frame_address or __builtin_return_address is used unsafely]'
'-Wframe-larger-than=[warn if a function'\''s stack frame requires more than <number> bytes]:bytes: '
'-Wfree-nonheap-object[warn when attempting to free a non-heap object]'
'-Wfunction-elimination[warn about function call elimination]'
'-Whsa[warn when a function cannot be expanded to HSAIL]'
'-Wignored-attributes[warn whenever attributes are ignored]'
'-Wignored-qualifiers[warn whenever type qualifiers are ignored]'
'-Wimplicit-fallthrough=[warn when a switch case falls through]:level:(1 2 3 4 5)'
'-Wimplicit-function-declaration[warn about implicit function declarations]'
'-Wimplicit-interface[warn about calls with implicit interface]'
'-Wimplicit-int[warn when a declaration does not specify a type]'
'-Wimplicit-procedure[warn about called procedures not explicitly declared]'
'-Wimplicit[warn about implicit declarations]'
'-Wimport[warn about imports]'
'-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-self[warn about variables which are initialized to themselves]'
'-Winline[warn when an inlined function cannot be inlined]'
'-Wint-conversion[warn about incompatible integer to pointer and pointer to integer conversions]'
'-Winteger-division[warn about constant integer divisions with truncated results]'
'-Wint-in-bool-context[warn for suspicious integer expressions in boolean context]'
'-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]'
'-Wint-to-pointer-cast[warn when there is a cast to a pointer from an integer of a different size]'
'-Winvalid-memory-model[warn when an atomic memory model parameter is known to be outside the valid range]'
'-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]'
'-Wlarger-than=[warn if an object is larger than <number> bytes]:bytes: '
'-Wline-truncation[warn about truncated source lines]'
'-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]'
'-Wlto-type-mismatch[during link time optimization warn about mismatched types of global declarations]'
'-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-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-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[warn about constructs not instrumented by -fmudflap]'
'-Wmultichar[warn about use of multi-character character constants]'
'-Wmultiple-inheritance[warn on direct multiple inheritance]'
'-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]'
'-Wnoexcept-type[warn if C++1z noexcept function type will change the mangled name of a symbol]'
'-Wnoexcept[warn when a noexcept expression evaluates to false even though the expression can''t actually throw]'
'-Wnonnull-compare[warn if comparing pointer parameter with nonnull attribute with NULL]'
'-Wnonnull[warn about NULL being passed to argument slots marked as requiring non-NULL]'
'-Wnonportable-cfstrings[warn on CFStrings containing nonportable characters]'
'-Wnon-template-friend[warn when non-templatized friend functions are declared within a template]'
'-Wnon-virtual-dtor[warn about non-virtual destructors]'
'-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]'
'-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]'
'-Woverflow[warn about overflow in arithmetic expressions]'
'-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-side-effects[warn about overriding initializers with side effects]'
'-Woverride-init[warn about overriding initializers without side effects]'
'-Wpacked-bitfield-compat[warn about packed bit-fields whose offset changed in GCC 4.4]'
'-Wpacked[warn when the packed attribute has no effect on struct layout]'
'-Wpadded[warn when padding is required to align structure members]'
'-Wparentheses[warn about possibly missing parentheses]'
'-Wpedantic[issue warnings needed for strict compliance to the standard]'
'-Wplacement-new=[warn for placement new expressions with undefined behavior]::level:(1 2)'
'-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]'
'-Wpoison-system-directories[warn for -I and -L options using system directories if cross compiling]'
'-Wpragmas[warn about misuses of pragmas]'
'-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[warn about psabi]'
'-Wrealloc-lhs-all[warn when a left-hand-side variable is reallocated]'
'-Wrealloc-lhs[warn when a left-hand-side array variable is reallocated]'
'-Wreal-q-constant[warn about real-literal-constants with '\'q\'' exponent-letter]'
'-Wredundant-decls[warn about multiple declarations of the same object]'
'-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-local-addr[warn about returning a pointer/reference to a local or temporary variable]'
'-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]'
'-Wshadow[warn when one variable shadows another. Same as -Wshadow=global]'
'-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=[warn if left shift of a signed value overflows]:level:(1 2)'
'-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-memaccess[warn about suspicious length parameters to certain string functions if the argument uses sizeof]'
'-Wstack-protector[warn when not issuing stack smashing protection for some reason]'
'-Wstack-usage=[warn if stack usage might be larger than specified amount]:bytes: '
'-Wstrict-aliasing[warn about code which might break strict aliasing rules]'
'-Wstrict-aliasing=-[warn about code which might break strict aliasing rules]:level of checking (higher is more accurate):(1 2 3)'
'-Wstrict-null-sentinel[warn about uncasted NULL used as sentinel]'
'-Wstrict-overflow[warn about optimizations that assume that signed overflow is undefined]'
'-Wstrict-overflow=-[warn about optimizations that assume that signed overflow is undefined]:level of checking (higher finds more cases):(1 2 3 4 5)'
'-Wstrict-prototypes[warn about unprototyped function declarations]'
'-Wstrict-selector-match[warn if type signatures of candidate methods do not match exactly]'
'-Wstringop-overflow=[under the control of Object Size type, warn about buffer overflow in string manipulation functions like memcpy and strcpy]:level:(1 2 3 4)'
'-Wstringop-overflow[warn about buffer overflow in string manipulation functions like memcpy and strcpy. Same as -Wstringop-overflow=]'
'-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-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]'
'-Wsuggest-override[suggest that the override keyword be used when the declaration of a virtual function overrides another]'
'-Wsurprising[warn about "suspicious" constructs]'
'-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]'
'-Wswitch-unreachable[warn about statements between switch'\''s controlling expression and the first case]'
'-Wswitch[warn about enumerated switches, with no default, missing a 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]'
'-Wtabs[permit nonconforming uses of the tab character]'
'-Wtarget-lifetime[warn if the pointer in a pointer assignment might outlive its target]'
'-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()]'
'-W[this switch is deprecated; use -Wextra instead]'
'-Wtraditional-conversion[warn of prototypes causing type conversions different from what would happen in the absence of prototype]'
'-Wtraditional[warn about features not present in traditional C]'
'-Wtrampolines[warn whenever a trampoline is generated]'
'-Wtrigraphs[warn if trigraphs are encountered that might affect the meaning of the program]'
'-Wtype-limits[warn if a comparison is always true or always false due to the limited range of the data type]'
'-Wundeclared-selector[warn about @selector()s without previously declared methods]'
'-Wundefined-do-loop[warn about an invalid DO loop]'
'-Wundef[warn if an undefined macro is used in an #if directive]'
'-Wunderflow[warn about underflow of numerical constant expressions]'
'-Wuninitialized[warn about uninitialized automatic variables]'
'-Wunknown-pragmas[warn about unrecognized pragmas]'
'-Wunsafe-loop-optimizations[warn if the loop cannot be optimized due to nontrivial assumptions]'
'-Wunsuffixed-float-constants[warn about unsuffixed float constants]'
'-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-const-variable[warn when a const variable is unused. Same as -Wunused-const-variable=]'
'-Wunused-const-variable=[warn when a const variable is unused]:level:(1 2)'
'-Wunused-dummy-argument[warn about unused dummy arguments]'
'-Wunused[enable all -Wunused- warnings]'
'-Wunused-function[warn when a function is unused]'
'-Wunused-label[warn when a label 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-parameter[warn when a function parameter is unused]'
'-Wunused-result[warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value]'
'-Wunused-value[warn when an expression value is unused]'
'-Wunused-variable[warn when a variable is unused]'
'-Wuseless-cast[warn about useless casts]'
'-Wuse-without-only[warn about USE statements that have no ONLY qualifier]'
'-Wvarargs[warn about questionable usage of the macros used to retrieve variable arguments]'
'-Wvariadic-macros[warn about using variadic macros]'
'-Wvector-operation-performance[warn when a vector operation is compiled outside the SIMD]'
'-Wvirtual-inheritance[warn on direct virtual inheritance]'
'-Wvirtual-move-assign[warn if a virtual base has a non-trivial move assignment operator]'
'-Wvla-larger-than=[warn on unbounded uses of variable-length arrays, and on bounded uses of variable-length arrays whose bound can be larger than <number> bytes]:bytes: '
'-Wvla[warn if a variable length array is used]'
'-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]'
'-Wzero-as-null-pointer-constant[warn when a literal '\''0'\'' is used as null pointer]'
'-fchkp-check-incomplete-type[generate pointer bounds check for variables with incomplete type]'
'-fchkp-check-read[generate checks for all read accesses to memory]'
'-fchkp-check-write[generate checks for all write accesses to memory]'
'-fchkp-first-field-has-own-bounds[forces checker to use narrowed bounds for address of the first field]'
'-fchkp-instrument-calls[generate bounds passing for calls]'
'-fchkp-instrument-marked-only[instrument only functions marked with bnd_instrument attribute]'
'-fchkp-narrow-bounds[control how checker handle pointers to object fields]'
'-fchkp-narrow-to-innermost-array[forces checker to use bounds of the innermost arrays in case of nested static array access]'
'-fchkp-optimize[allow checker optimizations]'
'-fchkp-store-bounds[generate bounds stores for pointer writes]'
'-fchkp-treat-zero-dynamic-size-as-infinite[with this option zero size obtained dynamically for objects with incomplete type will be treated as infinite]'
'-fchkp-use-fast-string-functions[allow to use *_nobnd versions of string functions]'
'-fchkp-use-nochk-string-functions[allow to use *_nochk versions of string functions]'
'-fchkp-use-static-bounds[use statically initialized variable for vars bounds instead of generating them each time it is required]'
'-fchkp-use-static-const-bounds[use statically initialized variable for constant bounds]'
'-fchkp-use-wrappers[transform instrumented builtin calls into calls to wrappers]'
'-fchkp-zero-input-bounds-for-main[use zero bounds for all incoming arguments in main function]'
'-fcilkplus[enable Cilk Plus]'
'-fcode-hoisting[enable code hoisting]'
'-fcombine-stack-adjustments[looks for opportunities to reduce stack adjustments and stack references]'
'-fcommon[do not put uninitialized globals in the common section]'
'-fcompare-debug=-[compile with and without e.g. -gtoggle, and compare the final-insns dump]:opts:' # TODO: complete gcc options here
'-fcompare-debug-second[run only the second compilation of -fcompare-debug]'
'-fcompare-elim[perform comparison elimination after register allocation has finished]'
'-fcond-mismatch[allow the arguments of the ? operator to have different types]'
'-fconserve-stack[do not perform optimizations increasing noticeably stack usage]'
'-fcprop-registers[perform a register copy-propagation optimization pass]'
'-fipa-pure-const[discover pure and const functions]'
'-fipa-ra[use caller save register across calls if possible]'
'-fipa-reference[discover readonly and non addressable static variables]'
'-fipa-sra[perform interprocedural reduction of aggregates]'
'-fipa-vrp[perform IPA Value Range Propagation]'
'-fira-algorithm=[set the used IRA algorithm]:algorithm:(cb priority)'
'-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=-[set regions for IRA]:region:(all mixed one)'
'-fira-region=[set regions for IRA]:region:(one all mixed)'
'-fira-share-save-slots[share slots for saving different hard registers]'
'-fira-share-spill-slots[share stack slots for spilled pseudo-registers]'
'-fira-verbose=-[control IRA'\''s level of diagnostic messages]:verbosity: '
'-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]'
'-fisolate-erroneous-paths-dereference[detect paths that trigger erroneous or undefined behavior due to dereferencing a null pointer. Isolate those paths from the main]'
'-fivopts[optimize induction variables on trees]'
'-fjump-tables[use jump tables for sufficiently large switch statements]'
'-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]'
'-flax-vector-conversions[allow implicit conversions between vectors with differing numbers of subparts and/or differing element types]'
'-fleading-underscore[give external symbols a leading underscore]'
'-flifetime-dse[tell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes]'
'-flive-range-shrinkage[relief of register pressure through live range shrinkage]'
'-floop-nest-optimize[enable the loop nest optimizer]'
'-floop-parallelize-all[mark all loops as parallel]'
'-flra-remat[do CFG-sensitive rematerialization in LRA]'
'-flto-compression-level=-[use specified zlib compression level for IL]:compression level: '
'-flto-odr-type-merging[merge C++ types using One Definition Rule]'
'-flto-partition=-[partition symbols and vars at linktime based on object files they originate from]:partitioning algorithm:(1to1 balanced max one none)'
'-flto-report[report various link-time optimization statistics]'
'-fmath-errno[set errno after built-in math functions]'
'-fmax-errors=-[maximum number of errors to report]:errors: '
'-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=-[limit diagnostics to <number> characters per line. 0 suppresses line-wrapping]:length: '
'-fmodulo-sched-allow-regmoves[perform SMS based modulo scheduling with register moves allowed]'
'-fmodulo-sched[perform SMS based modulo scheduling before the first scheduling pass]'
'-fmove-loop-invariants[move loop invariant computations out of loops]'
"-fms-extensions[don't warn about uses of Microsoft extensions]"
{-H,--trace-includes}'[print name of each header file used]'
{'*-idirafter','*--include-directory-after='}'[add directory after include search path]:second include path directory:_files -/'
{'*-I-','*--include-directory='}'[add directory to include search path]:header file search path:_files -/'
{'*-imacros','*--imacros='}'[include macros from file before parsing]:macro input file:_files -g \*.h\(-.\)'
'-imultiarch[set <dir> to be the multiarch include subdirectory]:directory:_files -/' #XXX not in manpage
'-imultilib=[set dir to be the multilib include subdirectory]:dir:_files -/'
'--include-barrier[restrict all prior -I flags to double-quoted inclusion and remove current directory from include path]'
{'*-include=','*--include='}'[include file before parsing]:include file:_files -g \*.h\(-.\)'
'-iplugindir=-[set <dir> to be the default plugin directory]:directory:_files -/'
{'*-iprefix','*--include-prefix='}'[set the -iwithprefix prefix]:prefix:_files'
'-iquote=[add dir to the end of the quote include path]:dir:_files -/'
'-isysroot=[set dir to be the system root directory]:dir:_files -/'
'*-isystem[add directory to system include search path]:second include path directory (system):_files -/'
{'*-iwithprefixbefore','*--include-with-prefix-before='}'[set directory to include search path with prefix]:main include path directory:_files -/'
{'*-iwithprefix','*--include-with-prefix=','*--include-with-prefix-after='}'[set directory to system include search path with prefix]:second include path directory:_files -/'
'*-L-[add directory to library search path]:library search path:_files -/'
'-lang-asm[set lang asm]'
'*-l+[include library found in search path]:library:->library'
'-MF[write dependency output to the given file]:file:_files'
'-MJ[write a compilation database entry per input]'
'-MQ[add a make-quoted target]:target'
'*-M-[set flags for generating Makefile dependencies]::output dependencies:->dependencies'
'-MT[add an unquoted target]:target'
'-no-canonical-prefixes[do not canonicalize paths when building relative prefixes to other gcc components]'
'-nodefaultlibs[do not use the standard system libraries when linking]'
'-nostartfiles[do not use the standard system startup files when linking]'
{-nostdinc,--no-standard-includes}'[do not search standard system directories or compiler builtin directories for include files]'
'-nostdlib[do not use standard system startup files or libraries when linking]'