gcc
The default compiler for most linux distributions
Options
Name | Description |
---|---|
--analyzer-output <value> | Static analyzer report output format |
--analyze | Run the static analyzer |
-arcmt-migrate-emit-errors | Emit ARC errors even if the migrator can fix them |
-arcmt-migrate-report-output <value> | Output path for the plist report |
-B <dir> | Add <dir> to search path for binaries and object files used implicitly |
-CC | Include comments from within macros in preprocessed output |
-cl-denorms-are-zero | OpenCL only. Allow denormals to be flushed to zero |
-cl-fast-relaxed-math | OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__ |
-cl-finite-math-only | OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf |
-cl-fp32-correctly-rounded-divide-sqrt | OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded |
-cl-kernel-arg-info | OpenCL only. Generate kernel argument metadata |
-cl-mad-enable | OpenCL only. Allow use of less precise MAD computations in the generated binary |
-cl-no-signed-zeros | OpenCL only. Allow use of less precise no signed zeros computations in the generated binary |
-cl-opt-disable | OpenCL only. This option disables all optimizations. By default optimizations are enabled |
-cl-single-precision-constant | OpenCL only. Treat double precision floating-point constant as single precision constant |
-cl-std <value> | OpenCL language standard to compile for |
-cl-strict-aliasing | OpenCL only. This option is added for compatibility with OpenCL 1.0 |
-cl-uniform-work-group-size | OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel |
-cl-unsafe-math-optimizations | OpenCL only. Allow unsafe floating-point optimizations |
--config <value> | Specifies configuration file |
--cuda-compile-host-device | Compile CUDA code for both host and device (default) |
--cuda-device-only | Compile CUDA code for device only |
--cuda-host-only | Compile CUDA code for host only |
--cuda-include-ptx <value...> | Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once |
--cuda-noopt-device-debug | Enable device-side debug info generation. Disables ptxas optimizations |
--cuda-path-ignore-env | Ignore environment variables to detect CUDA installation |
--cuda-path <value> | CUDA installation path |
-cxx-isystem <directory> | Add directory to the C++ SYSTEM include search path |
-C | Include comments in preprocessed output |
-c | Only run preprocess, compile, and assemble steps |
-dD | Print macro definitions in -E mode in addition to normal output |
-dependency-dot <value> | Filename to write DOT-formatted header dependencies to |
-dependency-file <value> | Filename (or -) to write dependency output to |
-dI | Print include directives in -E mode in addition to normal output |
-dM | Print macro definitions in -E mode instead of normal output |
-D <macro>=<value> | Define <macro> to <value> (or 1 if <value> omitted) |
-emit-ast | Emit Clang AST files for source inputs |
-emit-interface-stubs | Generate Interface Stub Files |
-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, it'll eventually be removed, and I'm OK with that because I'm only using it to benchmark |
-E | Only run the preprocessor |
-fAAPCSBitfieldLoad | Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only) |
-faddrsig | Emit an address-significance table |
-faligned-allocation | Enable C++17 aligned allocation functions |
-fallow-editor-placeholders | Treat editor placeholders as valid source code |
-fansi-escape-codes | Use ANSI escape codes for diagnostics |
-fapinotes-cache-path <directory> | Does nothing; API notes are no longer cached separately from modules |
-fapinotes-modules | Enable module-based external API notes support |
-fapinotes-swift-version <version> | Specify the Swift version to use when filtering API notes |
-fapinotes | Enable external API notes support |
-fapple-kext | Use Apple's kernel extensions ABI |
-fapple-link-rtlib | Force linking the clang builtins runtime library |
-fapple-pragma-pack | Enable Apple gcc-compatible #pragma pack handling |
-fapplication-extension | Restrict |
-fasm-blocks | |
-fautolink | |
-fbasic-block-sections <value> | Place each function's basic blocks in unique sections (ELF Only) : all | labels | none | list=<file> |
-fblocks | Enable the 'blocks' language feature |
-fborland-extensions | Accept non-standard constructs supported by the Borland compiler |
-fbranch-target-identification | Emit branch target identification instructions for indirect branch destinations |
-fbuild-session-file <file> | Use the last modification time of <file> as the build session timestamp |
-fbuild-session-timestamp <time since Epoch in seconds> | Time when the current build session started |
-fbuiltin-module-map | Load the clang builtins module map file |
-fc++-static-destructors | |
-fcall-saved-x10 | Make the x10 register call-saved (AArch64 only) |
-fcall-saved-x11 | Make the x11 register call-saved (AArch64 only) |
-fcall-saved-x12 | Make the x12 register call-saved (AArch64 only) |
-fcall-saved-x13 | Make the x13 register call-saved (AArch64 only) |
-fcall-saved-x14 | Make the x14 register call-saved (AArch64 only) |
-fcall-saved-x15 | Make the x15 register call-saved (AArch64 only) |
-fcall-saved-x18 | Make the x18 register call-saved (AArch64 only) |
-fcall-saved-x8 | Make the x8 register call-saved (AArch64 only) |
-fcall-saved-x9 | Make the x9 register call-saved (AArch64 only) |
-fcaret-diagnostics | |
-fcf-protection [value] | Enable cf-protection in 'full' mode |
-fchar8_t | Enable C++ builtin type char8_t |
-fclang-abi-compat <version> | Attempt to match the ABI of Clang <version> |
-fcolor-diagnostics | Enable colors in diagnostics |
-fcomment-block-commands <arg> | Treat each comma separated argument in <arg> as a documentation comment block command |
-fcommon | Place uninitialized global variables in a common block |
-fcomplete-member-pointers | Require member pointer base types to be complete if they would be significant under the Microsoft ABI |
-fconvergent-functions | Assume functions may be convergent |
-fcoroutines-ts | Enable support for the C++ Coroutines TS |
-fcoverage-mapping | Generate coverage mapping to enable code coverage analysis |
-fcs-profile-generate [directory] | Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var) |
-fcuda-approx-transcendentals | Use approximate transcendental functions |
-fcuda-flush-denormals-to-zero | Flush denormal floating point values to zero in CUDA device mode |
-fcuda-short-ptr | Use 32-bit pointers for accessing const/local/shared address spaces |
-fcxx-exceptions | Enable C++ exceptions |
-fdata-sections | Place each data in its own section |
-fdebug-compilation-dir <value> | The compilation directory to embed in the debug info |
-fdebug-default-version <value> | Default DWARF version to use, if a -g option caused DWARF debug info to be produced |
-fdebug-info-for-profiling | Emit extra debug info to make sample profile more accurate |
-fdebug-macro | Emit macro debug information |
-fdebug-prefix-map <value> | Remap file source paths in debug info |
-fdebug-ranges-base-address | Use DWARF base address selection entries in .debug_ranges |
-fdebug-types-section | Place debug types in their own section (ELF Only) |
-fdeclspec | Allow __declspec as a keyword |
-fdelayed-template-parsing | Parse templated function definitions at the end of the translation unit |
-fdelete-null-pointer-checks | Treat usage of null pointers as undefined behavior (default) |
-fdiagnostics-absolute-paths | Print absolute paths in diagnostics |
-fdiagnostics-hotness-threshold <number> | Prevent optimization remarks from being output if they do not have at least this profile count |
-fdiagnostics-parseable-fixits | Print fix-its in machine parseable form |
-fdiagnostics-print-source-range-info | Print source range spans in numeric form |
-fdiagnostics-show-hotness | Enable profile hotness information in diagnostic line |
-fdiagnostics-show-note-include-stack | Display include stacks for diagnostic notes |
-fdiagnostics-show-option | Print option name with mappable diagnostics |
-fdiagnostics-show-template-tree | Print a template comparison tree for differing templates |
-fdigraphs | Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default) |
-fdiscard-value-names | Discard value names in LLVM IR |
-fdollars-in-identifiers | Allow '$' in identifiers |
-fdouble-square-bracket-attributes | Enable '[[]]' attributes in all C and C++ language modes |
-fdwarf-directory-asm | |
-fdwarf-exceptions | Use DWARF style exceptions |
-fembed-bitcode-marker | Embed placeholder LLVM IR data as a marker |
-fembed-bitcode [option] | Embed LLVM bitcode (option: off, all, bitcode, marker) |
-femit-all-decls | Emit all declarations, even if unused |
-femulated-tls | Use emutls functions to access thread_local variables |
-fenable-globaldse | Enable experimental global dead store elimination |
-fenable-matrix | Enable matrix data type and related builtin functions |
-fexceptions | Enable support for exception handling |
-fexperimental-new-constant-interpreter | Enable the experimental new constant interpreter |
-fexperimental-new-pass-manager | Enables an experimental new pass manager in LLVM |
-fexperimental-relative-c++-abi-vtables | Use the experimental C++ class ABI for classes with virtual tables |
-fexperimental-strict-floating-point | Enables experimental strict floating point in LLVM |
-ffast-math | Allow aggressive, lossy floating-point optimizations |
-ffile-prefix-map <value> | Remap file source paths in debug info and predefined preprocessor macros |
-ffine-grained-bitfield-accesses | Use separate accesses for consecutive bitfield runs with legal widths and alignments |
-ffixed-point | Enable fixed point types |
-ffixed-r19 | Reserve register r19 (Hexagon only) |
-ffixed-r9 | Reserve the r9 register (ARM only) |
-ffixed-x10 | Reserve the x10 register (AArch64/RISC-V only) |
-ffixed-x11 | Reserve the x11 register (AArch64/RISC-V only) |
-ffixed-x12 | Reserve the x12 register (AArch64/RISC-V only) |
-ffixed-x13 | Reserve the x13 register (AArch64/RISC-V only) |
-ffixed-x14 | Reserve the x14 register (AArch64/RISC-V only) |
-ffixed-x15 | Reserve the x15 register (AArch64/RISC-V only) |
-ffixed-x16 | Reserve the x16 register (AArch64/RISC-V only) |
-ffixed-x17 | Reserve the x17 register (AArch64/RISC-V only) |
-ffixed-x18 | Reserve the x18 register (AArch64/RISC-V only) |
-ffixed-x19 | Reserve the x19 register (AArch64/RISC-V only) |
-ffixed-x1 | Reserve the x1 register (AArch64/RISC-V only) |
-ffixed-x20 | Reserve the x20 register (AArch64/RISC-V only) |
-ffixed-x21 | Reserve the x21 register (AArch64/RISC-V only) |
-ffixed-x22 | Reserve the x22 register (AArch64/RISC-V only) |
-ffixed-x23 | Reserve the x23 register (AArch64/RISC-V only) |
-ffixed-x24 | Reserve the x24 register (AArch64/RISC-V only) |
-ffixed-x25 | Reserve the x25 register (AArch64/RISC-V only) |
-ffixed-x26 | Reserve the x26 register (AArch64/RISC-V only) |
-ffixed-x27 | Reserve the x27 register (AArch64/RISC-V only) |
-ffixed-x28 | Reserve the x28 register (AArch64/RISC-V only) |
-ffixed-x29 | Reserve the x29 register (AArch64/RISC-V only) |
-ffixed-x2 | Reserve the x2 register (AArch64/RISC-V only) |
-ffixed-x30 | Reserve the x30 register (AArch64/RISC-V only) |
-ffixed-x31 | Reserve the x31 register (AArch64/RISC-V only) |
-ffixed-x3 | Reserve the x3 register (AArch64/RISC-V only) |
-ffixed-x4 | Reserve the x4 register (AArch64/RISC-V only) |
-ffixed-x5 | Reserve the x5 register (AArch64/RISC-V only) |
-ffixed-x6 | Reserve the x6 register (AArch64/RISC-V only) |
-ffixed-x7 | Reserve the x7 register (AArch64/RISC-V only) |
-ffixed-x8 | Reserve the x8 register (AArch64/RISC-V only) |
-ffixed-x9 | Reserve the x9 register (AArch64/RISC-V only) |
-fforce-dwarf-frame | Always emit a debug frame section |
-fforce-emit-vtables | Emits more virtual tables to improve devirtualization |
-fforce-enable-int128 | Enable support for int128_t type |
-ffp-contract <value> | Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma) | off (never fuse). Default is 'fast' for CUDA/HIP and 'on' otherwise |
-ffp-exception-behavior <value> | Specifies the exception behavior of floating-point operations |
-ffp-model <value> | Controls the semantics of floating-point calculations |
-ffreestanding | Assert that the compilation takes place in a freestanding environment |
-ffunction-sections | Place each function in its own section |
-fglobal-isel | Enables the global instruction selector |
-fgnu-inline-asm | |
-fgnu-keywords | Allow GNU-extension keywords regardless of language standard |
-fgnu-runtime | Generate output compatible with the standard GNU Objective-C runtime |
-fgnu89-inline | Use the gnu89 inline semantics |
-fgnuc-version <value> | Sets various macros to claim compatibility with the given GCC version |
-fgpu-allow-device-init | Allow |
-fgpu-rdc | Generate relocatable device code, also known as separate compilation mode |
-fhip-new-launch-api | Use new kernel launching API for HIP |
-fignore-exceptions | Enable support for ignoring exception handling constructs |
-fimplicit-module-maps | Implicitly search the file system for module map files |
-finline-functions | Inline suitable functions |
-finline-hint-functions | Inline |
-finstrument-function-entry-bare | Instrument function entry only, after inlining, without arguments to the instrumentation call |
-finstrument-functions-after-inlining | Like -finstrument-functions, but insert the calls after inlining |
-finstrument-functions | Generate calls to instrument function entry and exit |
-fintegrated-as | Enable the integrated assembler |
-fintegrated-cc1 | Run cc1 in-process |
-fjump-tables | Use jump tables for lowering switches |
-fkeep-static-consts | Keep static const variables if unused |
-flax-vector-conversions <value> | Enable implicit vector bit-casts |
-flto-jobs <value> | Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected) |
-flto [value] | Set LTO mode to either 'full' or 'thin' |
-fmacro-prefix-map <value> | Remap file source paths in predefined preprocessor macros |
-fmath-errno | Require math functions to indicate errors by setting errno |
-fmax-tokens <value> | Max total number of preprocessed tokens for -Wmax-tokens |
-fmax-type-align <value> | Specify the maximum alignment to enforce on pointers lacking an explicit alignment |
-fmerge-all-constants | Allow merging of constants |
-fmessage-length <value> | Format message diagnostics so that they fit within N columns |
-fmodule-file <<name> | Specify the mapping of module name to precompiled module file, or load a module file if name is omitted |
-fmodule-map-file <file> | Load this module map file |
-fmodule-name <name> | Specify the name of the module to build |
-fmodules-cache-path <directory> | Specify the module cache path |
-fmodules-decluse | Require declaration of modules used within a module |
-fmodules-disable-diagnostic-validation | Disable validation of the diagnostic options when loading the module |
-fmodules-ignore-macro <value> | Ignore the definition of the given macro when building and loading modules |
-fmodules-prune-after <seconds> | Specify the interval (in seconds) after which a module file will be considered unused |
-fmodules-prune-interval <seconds> | Specify the interval (in seconds) between attempts to prune the module cache |
-fmodules-search-all | Search even non-imported modules to resolve references |
-fmodules-strict-decluse | Like -fmodules-decluse but requires all headers to be in modules |
-fmodules-ts | Enable support for the C++ Modules TS |
-fmodules-user-build-path <directory> | Specify the module user build path |
-fmodules-validate-input-files-content | Validate PCM input files based on content if mtime differs |
-fmodules-validate-once-per-build-session | Don't verify input files for the modules if the module has been successfully validated or loaded during this build session |
-fmodules-validate-system-headers | Validate the system headers that a module depends on when loading the module |
-fmodules | Enable the 'modules' language feature |
-fms-compatibility-version <value> | Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default)) |
-fms-compatibility | Enable full Microsoft Visual C++ compatibility |
-fms-extensions | Accept some non-standard constructs supported by the Microsoft compiler |
-fmsc-version <value> | Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default)) |
-fnew-alignment <align> | Specifies the largest alignment guaranteed by '::operator new(size_t)' |
-fno-access-control | |
-fno-addrsig | Don't emit an address-significance table |
-fno-allow-editor-placeholders | |
-fno-apinotes-modules | Disable module-based external API notes support |
-fno-apinotes | Disable external API notes support |
-fno-asm-blocks | |
-fno-assume-sane-operator-new | Don't assume that C++'s global operator new can't alias any pointer |
-fno-autolink | Disable generation of linker directives for automatic library linking |
-fno-blocks | |
-fno-builtin <value> | Disable implicit builtin knowledge of functions |
-fno-c++-static-destructors | Disable C++ static destructor registration |
-fno-caret-diagnostics | |
-fno-char8_t | Disable C++ builtin type char8_t |
-fno-color-diagnostics | Disable colors in diagnostics |
-fno-common | Compile common globals like normal definitions |
-fno-complete-member-pointers | Do not require member pointer base types to be complete if they would be significant under the Microsoft ABI |
-fno-constant-cfstrings | Disable |
-fno-constant-nsarray-literals | Disable creation of CodeFoundation-type constant initializer `NSArray`s from array literals |
-fno-constant-nsdictionary-literals | Disable creation of CodeFoundation-type constant initializer `NSDictionary`s from dictionary literals |
-fno-constant-nsnumber-literals | Disable creation of CodeFoundation-type constant initializer `NSNumber`s from number literals |
-fno-coroutines-ts | |
-fno-coverage-mapping | Disable code coverage analysis |
-fno-crash-diagnostics | Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash |
-fno-cuda-approx-transcendentals | Don't use approximate transcendental functions |
-fno-cuda-short-ptr | |
-fno-cxx-exceptions | |
-fno-data-sections | |
-fno-debug-info-for-profiling | |
-fno-debug-macro | Do not emit macro debug information |
-fno-debug-ranges-base-address | |
-fno-declspec | Disallow __declspec as a keyword |
-fno-delayed-template-parsing | Disable delayed template parsing |
-fno-delete-null-pointer-checks | Do not treat usage of null pointers as undefined behavior |
-fno-diagnostics-fixit-info | Do not include fixit information in diagnostics |
-fno-digraphs | Disallow alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' |
-fno-discard-value-names | Do not discard value names in LLVM IR |
-fno-dollars-in-identifiers | Disallow '$' in identifiers |
-fno-double-square-bracket-attributes | Disable '[[]]' attributes in all C and C++ language modes |
-fno-dwarf-directory-asm | |
-fno-elide-constructors | Disable |
-fno-elide-type | Do not elide types when printing diagnostics |
-fno-exceptions | Disable support for exception handling |
-fno-experimental-new-pass-manager | Disables an experimental new pass manager in LLVM |
-fno-experimental-relative-c++-abi-vtables | Do not use the experimental C++ class ABI for classes with virtual tables |
-fno-fast-math | |
-fno-fine-grained-bitfield-accesses | Use large-integer access for consecutive bitfield runs |
-fno-fixed-point | Disable fixed point types |
-fno-force-dwarf-frame | |
-fno-force-emit-vtables | |
-fno-force-enable-int128 | Disable support for int128_t type |
-fno-function-sections | |
-fno-global-isel | Disables the global instruction selector |
-fno-gnu-inline-asm | Disable GNU style inline asm |
-fno-gnu89-inline | |
-fno-gpu-allow-device-init | Don't allow device side init function in HIP |
-fno-gpu-rdc | |
-fno-hip-new-launch-api | Don't |
-fno-integrated-as | Disable the integrated assembler |
-fno-integrated-cc1 | Spawn a separate process for each cc1 |
-fno-jump-tables | Do not use jump tables for lowering switches |
-fno-keep-static-consts | Don't |
-fno-lto | Disable LTO mode (default) |
-fno-math-errno | |
-fno-merge-all-constants | Disallow merging of constants |
-fno-no-access-control | Disable C++ access control |
-fno-objc-infer-related-result-type | Do not infer Objective-C related result type based on method family |
-fno-operator-names | Do not treat C++ operator name keywords as synonyms for operators |
-fno-pch-codegen | Do not generate code for uses of this PCH that assumes an explicit object file will be built for the PCH |
-fno-pch-debuginfo | Do not generate debug info for types in an object file built from this PCH and do not generate them elsewhere |
-fno-plt | Use GOT indirection instead of PLT to make external function calls (x86 only) |
-fno-preserve-as-comments | Do not preserve comments in inline assembly |
-fno-profile-generate | Disable generation of profile instrumentation |
-fno-profile-instr-generate | Disable generation of profile instrumentation |
-fno-profile-instr-use | Disable using instrumentation data for profile-guided optimization |
-fno-ptrauth-abi-version | Disable Pointer Authentication ABI versioning |
-fno-ptrauth-kernel-abi-version | Disable Pointer Authentication kernel ABI versioning |
-fno-register-global-dtors-with-atexit | Don't use atexit or __cxa_atexit to register global destructors |
-fno-reroll-loops | |
-fno-rewrite-imports | |
-fno-rewrite-includes | |
-fno-ropi | |
-fno-rtlib-add-rpath | Do not add -rpath with architecture-specific resource directory to the linker flags |
-fno-rtti-data | Disable generation of RTTI data |
-fno-rtti | Disable generation of rtti information |
-fno-rwpi | |
-fno-sanitize-address-poison-custom-array-cookie | Disable poisoning array cookies when using custom operator new[] in AddressSanitizer |
-fno-sanitize-address-use-after-scope | Disable use-after-scope detection in AddressSanitizer |
-fno-sanitize-address-use-odr-indicator | Disable ODR indicator globals |
-fno-sanitize-blacklist | Don't |
-fno-sanitize-cfi-canonical-jump-tables | Do not make the jump table addresses canonical in the symbol table |
-fno-sanitize-cfi-cross-dso | Disable control flow integrity (CFI) checks for cross-DSO calls |
-fno-sanitize-coverage <value> | Disable specified features of coverage instrumentation for Sanitizers |
-fno-sanitize-memory-track-origins | Disable origins tracking in MemorySanitizer |
-fno-sanitize-memory-use-after-dtor | Disable use-after-destroy detection in MemorySanitizer |
-fno-sanitize-recover <value> | Disable recovery for specified sanitizers |
-fno-sanitize-stats | Disable sanitizer statistics gathering |
-fno-sanitize-thread-atomics | Disable atomic operations instrumentation in ThreadSanitizer |
-fno-sanitize-thread-func-entry-exit | Disable function entry/exit instrumentation in ThreadSanitizer |
-fno-sanitize-thread-memory-access | Disable memory access instrumentation in ThreadSanitizer |
-fno-sanitize-trap [value] | Disable trapping for specified sanitizers |
-fno-short-wchar | Force wchar_t to be an unsigned int |
-fno-show-column | Do not include column number on diagnostics |
-fno-show-source-location | Do not include source location information with diagnostics |
-fno-signed-char | Char is unsigned |
-fno-signed-zeros | Allow optimizations that ignore the sign of floating point zeros |
-fno-spell-checking | Disable spell-checking |
-fno-split-lto-unit | |
-fno-stack-check | Disable stack checking |
-fno-stack-clash-protection | Disable stack clash protection |
-fno-stack-protector | Disable the use of stack protectors |
-fno-stack-size-section | |
-fno-standalone-debug | Limit debug information produced to reduce size of debug binary |
-fno-strict-float-cast-overflow | Relax language rules and try to match the behavior of the target's native float-to-int conversion instructions |
-fno-strict-return | Don't treat control flow paths that fall off the end of a non-void function as unreachable |
-fno-sycl | Disable SYCL kernels compilation for device |
-fno-temp-file | Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes |
-fno-threadsafe-statics | Do |
-fno-trigraphs | Do not process trigraph sequences |
-fno-unique-basic-block-section-names | |
-fno-unique-internal-linkage-names | |
-fno-unique-section-names | Don't use unique names for text and data sections |
-fno-unroll-loops | Turn off loop unroller |
-fno-use-cxa-atexit | Don't use __cxa_atexit for calling destructors |
-fno-use-init-array | Use .ctors/.dtors instead of .init_array/.fini_array |
-fno-use-line-directives | |
-fno-virtual-function-elimination | |
-fno-visibility-inlines-hidden-static-local-var | Disables -fvisibility-inlines-hidden-static-local-var (this is the default on non-darwin targets) |
-fno-whole-program-vtables | |
-fno-xray-always-emit-customevents | |
-fno-xray-always-emit-typedevents | |
-fno-xray-function-index | Omit function index section at the expense of single-function patching performance |
-fno-xray-ignore-loops | |
-fno-xray-instrument | |
-fno-zero-initialized-in-bss | Don't place zero initialized data in BSS |
-fno-zvector | |
-fobjc-arc-exceptions | Use EH-safe code when synthesizing retains and releases in -fobjc-arc |
-fobjc-arc | Synthesize retain and release calls for Objective-C pointers |
-fobjc-exceptions | Enable Objective-C exceptions |
-fobjc-relative-method-lists | Enable relative method lists |
-fobjc-runtime <value> | Specify the target Objective-C runtime kind and version |
-fobjc-weak | Enable ARC-style weak references in Objective-C |
-fopenmp-simd | Emit OpenMP code only for SIMD-based constructs |
-fopenmp-targets <value> | Specify comma-separated list of triples OpenMP offloading targets to be supported |
-fopenmp | Parse OpenMP pragmas and generate parallel code |
-foptimization-record-file <file> | Specify the output name of the file containing the optimization remarks. Implies -fsave-optimization-record. On Darwin platforms, this cannot be used with multiple -arch <arch> options |
-foptimization-record-passes <regex> | Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes) |
-forder-file-instrumentation | Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var) |
-fpack-struct <value> | Specify the default maximum struct packing alignment |
-fpascal-strings | Recognize and construct Pascal-style string literals |
-fpass-plugin <dsopath> | Load pass plugin from a dynamic shared object file (only with new pass manager) |
-fpatchable-function-entry <N,M> | Generate M NOPs before function entry and N-M NOPs after function entry |
-fpcc-struct-return | Override the default ABI to return all structs on the stack |
-fpch-codegen | Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH |
-fpch-debuginfo | Generate debug info for types in an object file built from this PCH and do not generate them elsewhere |
-fpch-instantiate-templates | Instantiate templates already while building a PCH |
-fpch-validate-input-files-content | Validate PCH input files based on content if mtime differs |
-fplt | |
-fplugin <dsopath> | Load the named plugin (dynamic shared object) |
-fprebuilt-module-path <directory> | Specify the prebuilt module path |
-fpreserve-as-comments | |
-fprofile-exclude-files <value> | Instrument only functions from files where names don't match all the regexes separated by a semi-colon |
-fprofile-filter-files <value> | Instrument only functions from files where names match any regex separated by a semi-colon |
-fprofile-generate [directory] | Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var) |
-fprofile-instr-generate [file] | Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var) |
-fprofile-instr-use <value> | Use instrumentation data for profile-guided optimization |
-fprofile-remapping-file <file> | Use the remappings described in <file> to match the profile data against names in the program |
-fprofile-sample-accurate | Specifies that the sample profile is accurate |
-fprofile-sample-use <value> | Enable sample-based profile guided optimizations |
-fprofile-use <pathname> | Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname> |
-fptrauth-abi-version <value> | Pointer Authentication ABI version |
-fptrauth-auth-traps | Enable traps on authentication failures |
-fptrauth-block-descriptor-pointers | Enable signing block descriptors |
-fptrauth-calls | Enable signing and authentication of all indirect calls |
-fptrauth-function-pointer-type-discrimination | Enabling type discrimination on C function pointers |
-fptrauth-indirect-gotos | Enable signing and authentication of indirect goto targets |
-fptrauth-intrinsics | Enable pointer-authentication intrinsics |
-fptrauth-kernel-abi-version | Enable Pointer Authentication kernel ABI version |
-fptrauth-objc-isa-masking | Pre- and post-authentication masking mode of objective-c isa pointers |
-fptrauth-objc-isa-mode <value> | Authentication mode for ObjC isa field. Full auth if unspecified |
-fptrauth-objc-isa | Enable signing and authentication of Objective-C object's 'isa' field |
-fptrauth-returns | Enable signing and authentication of return addresses |
-fptrauth-soft | Enable software lowering of pointer authentication |
-fptrauth-vtable-pointer-address-discrimination | Enable address discrimination of vtable pointers |
-fptrauth-vtable-pointer-type-discrimination | Enable type discrimination of vtable pointers |
-freciprocal-math | Allow division operations to be reassociated |
-freg-struct-return | Override the default ABI to return small structs in registers |
-fregister-global-dtors-with-atexit | Use atexit or __cxa_atexit to register global destructors |
-frelaxed-template-template-args | Enable C++17 relaxed template template argument matching |
-freroll-loops | Turn on loop reroller |
-frewrite-imports | |
-frewrite-includes | |
-fropi | Generate read-only position independent code (ARM only) |
-frtlib-add-rpath | Add -rpath with architecture-specific resource directory to the linker flags |
-frtti-data | |
-frtti | |
-frwpi | Generate read-write position independent code (ARM only) |
-fsanitize-address-field-padding <value> | Level of field padding for AddressSanitizer |
-fsanitize-address-globals-dead-stripping | Enable linker dead stripping of globals in AddressSanitizer |
-fsanitize-address-poison-custom-array-cookie | Enable poisoning array cookies when using custom operator new[] in AddressSanitizer |
-fsanitize-address-use-after-scope | Enable use-after-scope detection in AddressSanitizer |
-fsanitize-address-use-odr-indicator | Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size |
-fsanitize-blacklist <value> | Path to blacklist file for sanitizers |
-fsanitize-cfi-canonical-jump-tables | Make the jump table addresses canonical in the symbol table |
-fsanitize-cfi-cross-dso | Enable control flow integrity (CFI) checks for cross-DSO calls |
-fsanitize-cfi-icall-generalize-pointers | Generalize pointers in CFI indirect call type signature checks |
-fsanitize-coverage-allowlist <value> | Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones |
-fsanitize-coverage-blacklist <value> | Deprecated, use -fsanitize-coverage-blocklist= instead |
-fsanitize-coverage-blocklist <value> | Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones |
-fsanitize-coverage-whitelist <value> | Deprecated, use -fsanitize-coverage-allowlist= instead |
-fsanitize-coverage <value> | Specify the type of coverage instrumentation for Sanitizers |
-fsanitize-hwaddress-abi <value> | Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused |
-fsanitize-memory-track-origins [value] | Enable origins tracking in MemorySanitizer |
-fsanitize-memory-use-after-dtor | Enable use-after-destroy detection in MemorySanitizer |
-fsanitize-recover <value> | Enable recovery for specified sanitizers |
-fsanitize-stats | Enable sanitizer statistics gathering |
-fsanitize-system-blacklist <value> | Path to system blacklist file for sanitizers |
-fsanitize-thread-atomics | Enable atomic operations instrumentation in ThreadSanitizer (default) |
-fsanitize-thread-func-entry-exit | Enable function entry/exit instrumentation in ThreadSanitizer (default) |
-fsanitize-thread-memory-access | Enable memory access instrumentation in ThreadSanitizer (default) |
-fsanitize-trap <value> | Enable trapping for sanitizers |
-fsanitize-undefined-strip-path-components <number> | Strip (or keep only, if negative) a given number of path components when emitting check metadata |
-fsanitize <check> | Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks |
-fsave-optimization-record [format] | Generate an optimization record file in a specific format |
-fseh-exceptions | Use SEH style exceptions |
-fshort-enums | Allocate to an enum type only as many bytes as it needs for the declared range of possible values |
-fshort-wchar | Force wchar_t to be a short unsigned int |
-fshow-column | |
-fshow-overloads <value> | Which overload candidates to show when overload resolution fails: best|all; defaults to all |
-fsigned-char | Char is signed |
-fsized-deallocation | Enable C++14 sized global deallocation functions |
-fsjlj-exceptions | Use SjLj style exceptions |
-fslp-vectorize | Enable the superword-level parallelism vectorization passes |
-fsmall-block-descriptors | Enable small block descriptors |
-fsplit-dwarf-inlining | Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF |
-fsplit-lto-unit | Enables splitting of the LTO unit |
-fstack-check | Enable stack checking |
-fstack-clash-protection | Enable stack clash protection |
-fstack-protector-all | Enable stack protectors for all functions |
-fstack-protector-strong | Enable stack protectors for some functions vulnerable to stack smashing. Compared to -fstack-protector, this uses a stronger heuristic that includes functions containing arrays of any size (and any type), as well as any calls to alloca or the taking of an address from a local variable |
-fstack-protector | Enable stack protectors for some functions vulnerable to stack smashing. This uses a loose heuristic which considers functions vulnerable if they contain a char (or 8bit integer) array or constant sized calls to alloca, which are of greater size than ssp-buffer-size (default: 8 bytes). All variable sized calls to alloca are considered vulnerable |
-fstack-size-section | Emit section containing metadata on function stack sizes |
-fstandalone-debug | Emit full debug info for all types used by the program |
-fstrict-enums | Enable optimizations based on the strict definition of an enum's value range |
-fstrict-float-cast-overflow | Assume that overflowing float-to-int casts are undefined (default) |
-fstrict-return | |
-fstrict-vtable-pointers | Enable optimizations based on the strict rules for overwriting polymorphic C++ objects |
-fsycl | Enable SYCL kernels compilation for device |
-fsystem-module | Build this module as a system module. Only used with -emit-module |
-ftarget-variant-availability-checks | Enable availability checks for the target variant platform |
-fthin-link-bitcode <value> | Write minimized bitcode to <file> for the ThinLTO thin link only |
-fthinlto-index <value> | Perform ThinLTO importing using provided function summary index |
-ftime-trace-granularity <value> | Minimum time granularity (in microseconds) traced by time profiler |
-ftime-trace | Turn on time profiler. Generates JSON file based on output filename |
-ftrap-function <value> | Issue call to specified function rather than a trap instruction |
-ftrapv-handler <function name> | Specify the function to be called on overflow |
-ftrapv | Trap on integer overflow |
-ftrigraphs | Process trigraph sequences |
-ftrivial-auto-var-init-stop-after <value> | Stop initializing trivial automatic stack variables after the specified number of instances |
-ftrivial-auto-var-init <value> | Initialize trivial automatic stack variables |
-funique-basic-block-section-names | Use unique names for basic block sections (ELF Only) |
-funique-internal-linkage-names | Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path |
-funique-section-names | |
-funroll-loops | Turn on loop unroller |
-fuse-init-array | |
-fuse-line-directives | Use #line in preprocessed output |
-fvalidate-ast-input-files-content | Compute and store the hash of input files used to build an AST. Files with mismatching mtime's are considered valid if both contents is identical |
-fveclib <value> | Use the given vector functions library |
-fvectorize | Enable the loop vectorization passes |
-fverbose-asm | Generate verbose assembly output |
-fvirtual-function-elimination | Enables dead virtual function elimination optimization. Requires -flto=full |
-fvisibility-global-new-delete-hidden | Give global C++ operator new and delete declarations hidden visibility |
-fvisibility-inlines-hidden-static-local-var | When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default |
-fvisibility-inlines-hidden | Give inline C++ member functions hidden visibility by default |
-fvisibility-ms-compat | Give global types 'default' visibility and global functions and variables 'hidden' visibility by default |
-fvisibility <value> | Set the default symbol visibility for all global declarations |
-fwasm-exceptions | Use WebAssembly style exceptions |
-fwhole-program-vtables | Enables |
-fwrapv | Treat signed integer overflow as two's complement |
-fwritable-strings | Store string literals as writable data |
-fxray-always-emit-customevents | Always emit __xray_customevent(...) calls even if the containing function is not always instrumented |
-fxray-always-emit-typedevents | Always emit __xray_typedevent(...) calls even if the containing function is not always instrumented |
-fxray-always-instrument <value> | DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute |
-fxray-attr-list <value> | Filename defining the list of functions/types for imbuing XRay attributes |
-fxray-function-index | |
-fxray-ignore-loops | Don't instrument functions with loops unless they also meet the minimum function size |
-fxray-instruction-threshold <value> | Sets the minimum function size to instrument with XRay |
-fxray-instrumentation-bundle <fxray-instrumentation-bundle> | Select which XRay instrumentation points to emit. 'function' includes both 'function-entry' and 'function-exit' |
-fxray-instrument | Generate XRay instrumentation sleds on function entry and exit |
-fxray-link-deps | Tells clang to add the link dependencies for XRay |
-fxray-modes <value> | List of modes to link in by default into XRay instrumented binaries |
-fxray-never-instrument <value> | DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute |
-fzero-initialized-in-bss | |
-fzvector | Enable System z vector language extension |
-F <value> | Add directory to framework include search path |
--gcc-toolchain <value> | Use the gcc toolchain at the given directory |
-gcodeview-ghash | Emit type record hashes in a .debug$H section |
-gcodeview | Generate CodeView debug information |
-gdwarf-2 | Generate source-level debug information with dwarf version 2 |
-gdwarf-3 | Generate source-level debug information with dwarf version 3 |
-gdwarf-4 | Generate source-level debug information with dwarf version 4 |
-gdwarf-5 | Generate source-level debug information with dwarf version 5 |
-gdwarf | Generate source-level debug information with the default dwarf version |
-gembed-source | Embed source text in DWARF debug sections |
-gline-directives-only | Emit debug line info directives only |
-gline-tables-only | Emit debug line number tables only |
-gmodules | Generate debug info with external references to clang modules or precompiled headers |
-gno-embed-source | Restore the default behavior of not embedding source text in DWARF debug sections |
-gno-inline-line-tables | Don't |
--gpu-max-threads-per-block <value> | Default max threads per block for kernel launch bounds for HIP |
-gsplit-dwarf <value> | Set DWARF fission mode to either 'split' or 'single' |
-gz [value] | DWARF debug sections compression type |
-G <size> | Put objects of at most <size> bytes into small data section (MIPS / Hexagon) |
-g | Generate source-level debug information |
--help-hidden | Display help for hidden options |
-help | Display available options |
--hip-device-lib <value> | HIP device library |
--hip-link | Link clang-offload-bundler bundles for HIP |
--hip-version <value> | HIP version in the format of major.minor.patch |
-H | Show header includes and nesting depth |
-I- | Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path |
-iapinotes-modules <directory> | Add directory to the API notes search path referenced by module name |
-ibuiltininc | Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it |
-idirafter <value> | Add directory to AFTER include search path |
-iframeworkwithsysroot <directory> | Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot |
-iframework <value> | Add directory to SYSTEM framework search path |
-imacros <file> | Include macros from file before parsing |
-include-pch <file> | Include precompiled header file |
-include <file> | Include file before parsing |
-index-header-map | Make the next included directory (-I or -F) an indexer header map |
-index-ignore-system-symbols | Ignore symbols from system headers |
-index-record-codegen-name | Record the codegen name for symbols |
-index-store-path <value> | Enable indexing with the specified data store path |
-iprefix <dir> | Set the -iwithprefix/-iwithprefixbefore prefix |
-iquote <directory> | Add directory to QUOTE include search path |
-isysroot <dir> | Set the system root directory (usually /) |
-isystem-after <directory> | Add directory to end of the SYSTEM include search path |
-isystem <directory> | Add directory to SYSTEM include search path |
-ivfsoverlay <value> | Overlay the virtual filesystem described by file over the real file system |
-iwithprefixbefore <dir> | Set directory to include search path with prefix |
-iwithprefix <dir> | Set directory to SYSTEM include search path with prefix |
-iwithsysroot <directory> | Add directory to SYSTEM include search path, absolute paths are relative to -isysroot |
-I <dir> | Add directory to include search path |
--libomptarget-nvptx-path <value> | Path to libomptarget-nvptx libraries |
-L <dir> | Add directory to library search path |
-mabicalls | Enable SVR4-style position-independent code (Mips only) |
-maix-struct-return | Return all structs in memory (PPC32 only) |
-malign-branch-boundary <value> | Specify the boundary's size to align branches |
-malign-branch <value> | Specify types of branches to align |
-malign-double | Align doubles to two words in structs (x86 only) |
-mbackchain | Link stack frames through backchain on System Z |
-mbranch-protection <value> | Enforce targets of indirect branches and function returns |
-mbranches-within-32B-boundaries | Align selected branches (fused, jcc, jmp) within 32-byte boundary |
-mcmodel [edan] | Equivalent to -mcmodel=medium, compatible with RISC-V gcc |
-mcmse | Allow use of CMSE (Armv8-M Security Extensions) |
-mcode-object-v3 | Enable code object v3 (AMDGPU only) |
-mcrc | Allow use of CRC instructions (ARM/Mips only) |
-mcumode | CU wavefront execution mode is used (AMDGPU only) |
-mdouble <value> | Force double to be 32 bits or 64 bits |
-MD | Write a depfile containing user and system headers |
-meabi <value> | Set EABI type, e.g. 4, 5 or gnu (default depends on triple) |
-membedded-data | Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS) |
-menable-experimental-extensions | Enable use of experimental RISC-V extensions |
-mexec-model <value> | Execution model (WebAssembly only) |
-mexecute-only | Disallow generation of data access to code sections (ARM only) |
-mextern-sdata | Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS) |
-mfentry | Insert calls to fentry at function entry (x86/SystemZ only) |
-mfix-cortex-a53-835769 | Workaround |
-mfp32 | Use 32-bit floating point registers (MIPS only) |
-mfp64 | Use 64-bit floating point registers (MIPS only) |
-MF <file> | Write depfile output from -MMD, -MD, -MM, or -M to <file> |
-mgeneral-regs-only | Generate code which only uses the general purpose registers (AArch64 only) |
-mglobal-merge | Enable merging of globals |
-mgpopt | Use GP relative accesses for symbols known to be in a small data section (MIPS) |
-MG | Add missing headers to depfile |
-mharden-sls <value> | Select straight-line speculation hardening scope |
-mhvx-length <value> | Set Hexagon Vector Length |
-mhvx [value] | Enable Hexagon Vector eXtensions |
-miamcu | Use Intel MCU ABI |
--migrate | Run the migrator |
-mincremental-linker-compatible | (integrated-as) Emit an object file which can be used with an incremental linker |
-mindirect-jump <value> | Change indirect jump instructions to inhibit speculation |
-mios-version-min <value> | Set iOS deployment target |
-MJ <value> | Write a compilation database entry per input |
-mllvm <value> | Additional arguments to forward to LLVM's option processing |
-mlocal-sdata | Extend the -G behaviour to object local data (MIPS) |
-mlong-calls | Generate branches with extended addressability, usually via indirect jumps |
-mlong-double-128 | Force long double to be 128 bits |
-mlong-double-64 | Force long double to be 64 bits |
-mlong-double-80 | Force long double to be 80 bits, padded to 128 bits for storage |
-mlvi-cfi | Enable only control-flow mitigations for Load Value Injection (LVI) |
-mlvi-hardening | Enable all mitigations for Load Value Injection (LVI) |
-mmacosx-version-min <value> | Set Mac OS X deployment target |
-mmadd4 | Enable the generation of 4-operand madd.s, madd.d and related instructions |
-MMD | Write a depfile containing user headers |
-mmemops | Enable generation of memop instructions |
-mms-bitfields | Set the default structure layout to be compatible with the Microsoft compiler standard |
-mmsa | Enable MSA ASE (MIPS only) |
-mmt | Enable MT ASE (MIPS only) |
-MM | Like -MMD, but also implies -E and writes to stdout by default |
-mno-abicalls | Disable SVR4-style position-independent code (Mips only) |
-mno-code-object-v3 | Disable code object v3 (AMDGPU only) |
-mno-crc | Disallow use of CRC instructions (Mips only) |
-mno-cumode | WGP wavefront execution mode is used (AMDGPU only) |
-mno-embedded-data | Do not place constants in the .rodata section instead of the .sdata if they meet the -G <size> threshold (MIPS) |
-mno-execute-only | Allow generation of data access to code sections (ARM only) |
-mno-extern-sdata | Do not assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS) |
-mno-fix-cortex-a53-835769 | Don't workaround Cortex-A53 erratum 835769 (AArch64 only) |
-mno-global-merge | Disable merging of globals |
-mno-gpopt | Do not use GP relative accesses for symbols known to be in a small data section (MIPS) |
-mno-hvx | Disable Hexagon Vector eXtensions |
-mno-implicit-float | Don't generate implicit floating point instructions |
-mno-incremental-linker-compatible | (integrated-as) Emit an object file which cannot be used with an incremental linker |
-mno-local-sdata | Do not extend the -G behaviour to object local data (MIPS) |
-mno-long-calls | Restore the default behaviour of not generating long calls |
-mno-lvi-cfi | Disable control-flow mitigations for Load Value Injection (LVI) |
-mno-lvi-hardening | Disable mitigations for Load Value Injection (LVI) |
-mno-madd4 | Disable the generation of 4-operand madd.s, madd.d and related instructions |
-mno-memops | Disable generation of memop instructions |
-mno-movt | Disallow use of movt/movw pairs (ARM only) |
-mno-ms-bitfields | Do not set the default structure layout to be compatible with the Microsoft compiler standard |
-mno-msa | Disable MSA ASE (MIPS only) |
-mno-mt | Disable MT ASE (MIPS only) |
-mno-neg-immediates | Disallow converting instructions with negative immediates to their negation or inversion |
-mno-nvj | Disable generation of new-value jumps |
-mno-nvs | Disable generation of new-value stores |
-mno-outline | Disable function outlining (AArch64 only) |
-mno-packets | Disable generation of instruction packets |
-mno-relax | Disable linker relaxation |
-mno-restrict-it | Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode |
-mno-save-restore | Disable using library calls for save and restore |
-mno-seses | Disable speculative execution side effect suppression (SESES) |
-mno-sram-ecc | Disable SRAM ECC (AMDGPU only) |
-mno-stack-arg-probe | Disable stack probes which are enabled by default |
-mno-tls-direct-seg-refs | Disable direct TLS access through segment registers |
-mno-unaligned-access | Force all memory accesses to be aligned (AArch32/AArch64 only) |
-mno-wavefrontsize64 | Wavefront size 32 is used |
-mno-xnack | Disable XNACK (AMDGPU only) |
-mnocrc | Disallow use of CRC instructions (ARM only) |
-mnop-mcount | Generate mcount/__fentry__ calls as nops. To activate they need to be patched in |
-mnvj | Enable generation of new-value jumps |
-mnvs | Enable generation of new-value stores |
-module-dependency-dir <value> | Directory to dump module dependencies to |
-module-file-info | Provide information about a particular module file |
-momit-leaf-frame-pointer | Omit frame pointer setup for leaf functions |
-moutline | Enable function outlining (AArch64 only) |
-mpacked-stack | Use packed stack layout (SystemZ only) |
-mpackets | Enable generation of instruction packets |
-mpad-max-prefix-size <value> | Specify maximum number of prefixes to use for padding |
-mpie-copy-relocations | Use copy relocations support for PIE builds |
-mprefer-vector-width <value> | Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions |
-MP | Create phony target for each dependency (other than main file) |
-mqdsp6-compat | Enable hexagon-qdsp6 backward compatibility |
-MQ <value> | Specify name of main file output to quote in depfile |
-mrecord-mcount | Generate a __mcount_loc section entry for each __fentry__ call |
-mrelax-all | (integrated-as) Relax all machine instructions |
-mrelax | Enable linker relaxation |
-mrestrict-it | Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode |
-mrtd | Make StdCall calling convention the default |
-msave-restore | Enable using library calls for save and restore |
-mseses | Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations |
-msign-return-address <value> | Select return address signing scope |
-msmall-data-limit <value> | Put global and static data smaller than the limit into a special section |
-msoft-float | Use software floating point |
-msram-ecc | Enable SRAM ECC (AMDGPU only) |
-mstack-alignment <value> | Set the stack alignment |
-mstack-arg-probe | Enable stack probes |
-mstack-probe-size <value> | Set the stack probe size |
-mstackrealign | Force realign the stack at entry to every function |
-msvr4-struct-return | Return small structs in registers (PPC32 only) |
-mthread-model <value> | The thread model to use, e.g. posix, single (posix by default) |
-mtls-direct-seg-refs | Enable direct TLS access through segment registers (default) |
-mtls-size <value> | Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) | 24 (for 16MB, default) | 32 (for 4GB) | 48 (for 256TB, needs -mcmodel=large) |
-mtp <value> | Thread pointer access method (AArch32/AArch64 only) |
-mtune <value> | Accepted for compatibility with GCC. Currently has no effect |
-MT <value> | Specify name of main file output in depfile |
-munaligned-access | Allow memory accesses to be unaligned (AArch32/AArch64 only) |
-MV | Use NMake/Jom format for the depfile |
-mwavefrontsize64 | Wavefront size 64 is used |
-mxnack | Enable XNACK (AMDGPU only) |
-M | Like -MD, but also implies -E and writes to stdout by default |
--no-cuda-include-ptx <value...> | Do not include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once |
--no-cuda-version-check | Don't |
--no-offload-arch <value> | Remove CUDA/HIP offloading device architecture (e.g. sm_35, gfx906) from the list of devices to compile for. 'all' resets the list to its default value |
--no-system-header-prefix <prefix> | Treat all #include paths starting with <prefix> as not including a system header |
-nobuiltininc | Disable builtin #include directories |
-nogpulib | Do not link device library for CUDA/HIP device compilation |
-nostdinc++ | Disable standard #include directories for the C++ standard library |
-ObjC++ | Treat source input files as Objective-C++ inputs |
-objcmt-atomic-property | Make |
-objcmt-migrate-all | Enable migration to modern ObjC |
-objcmt-migrate-annotation | Enable migration to property and method annotations |
-objcmt-migrate-designated-init | Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods |
-objcmt-migrate-instancetype | Enable migration to infer instancetype for method result type |
-objcmt-migrate-literals | Enable migration to modern ObjC literals |
-objcmt-migrate-ns-macros | Enable migration to NS_ENUM/NS_OPTIONS macros |
-objcmt-migrate-property-dot-syntax | Enable migration of setter/getter messages to property-dot syntax |
-objcmt-migrate-property | Enable migration to modern ObjC property |
-objcmt-migrate-protocol-conformance | Enable migration to add protocol conformance on classes |
-objcmt-migrate-readonly-property | Enable migration to modern ObjC readonly property |
-objcmt-migrate-readwrite-property | Enable migration to modern ObjC readwrite property |
-objcmt-migrate-subscripting | Enable migration to modern ObjC subscripting |
-objcmt-ns-nonatomic-iosonly | Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute |
-objcmt-returns-innerpointer-property | Enable migration to annotate property with NS_RETURNS_INNER_POINTER |
-objcmt-whitelist-dir-path <value> | Only modify files with a filename contained in the provided directory path |
-ObjC | Treat source input files as Objective-C inputs |
-o <file> | Write output to <file> |
-pg | Enable mcount instrumentation |
-pipe | Use pipes between commands, when possible |
--precompile | Only precompile the input |
-print-effective-triple | |
-print-file-name <file> | Print the full library path |
-print-ivar-layout | Enable Objective-C Ivar layout bitmap print trace |
-print-libgcc-file-name | |
-print-prog-name <name> | Print the full program path of <name> |
-print-resource-dir | Print the resource directory pathname |
-print-search-dirs | Print the paths used for finding libraries and programs |
-print-supported-cpus | Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target) |
-print-target-triple | Print the normalized target triple |
-print-targets | Print the registered targets |
-pthread | Support POSIX threads in generated code |
--ptxas-path <value> | Path to ptxas (used for compiling CUDA code) |
-P | Disable linemarker output in -E mode |
-Qn | Do not emit metadata containing compiler name and version |
-Qunused-arguments | Don't emit warning for unused driver arguments |
-Qy | Emit metadata containing compiler name and version |
-relocatable-pch | Whether to build a relocatable precompiled header |
-rewrite-legacy-objc | Rewrite Legacy Objective-C source to C++ |
-rewrite-objc | Rewrite Objective-C source to C++ |
--rocm-device-lib-path <value> | ROCm device library path. Alternative to rocm-path |
--rocm-path <value> | ROCm installation path, used for finding and automatically linking required bitcode libraries |
-Rpass-analysis <value> | Report transformation analysis from optimization passes whose name matches the given POSIX regular expression |
-Rpass-missed <value> | Report missed transformations by optimization passes whose name matches the given POSIX regular expression |
-Rpass <value> | Report transformations performed by optimization passes whose name matches the given POSIX regular expression |
-rtlib <value> | Compiler runtime library to use |
-R <remark> | Enable the specified remark |
-save-stats [value] | Save llvm statistics |
-save-temps [value] | Save intermediate compilation results |
-serialize-diagnostics <value> | Serialize compiler diagnostics to a file |
-shared-libsan | Dynamically link the sanitizer runtime |
-static-libsan | Statically link the sanitizer runtime |
-static-openmp | Use the static host OpenMP runtime while linking |
-stdlib++-isystem <directory> | Use directory as the C++ standard library include path |
-stdlib <value> | C++ standard library to use |
-sycl-std <value> | SYCL language standard to compile for |
--system-header-prefix <prefix> | Treat all #include paths starting with <prefix> as including a system header |
-S | Only run preprocess and compilation steps |
-target-variant <value> | Generate code that may run on a particular variant of the deployment target |
--target <value> | Generate code for the given target |
-Tbss <addr> | Set starting address of BSS to <addr> |
-Tdata <addr> | Set starting address of DATA to <addr> |
-time | Time individual commands |
-traditional-cpp | Enable some traditional CPP emulation |
-trigraphs | Process trigraph sequences |
-Ttext <addr> | Set starting address of TEXT to <addr> |
-T <script> | Specify <script> as linker script |
-undef | Undef all system defines |
-unwindlib <value> | Unwind library to use |
-U <macro> | Undefine macro <macro> |
--verify-debug-info | Verify the binary representation of debug output |
-verify-pch | Load and verify that a pre-compiled header file is not stale |
--version | Print version information |
-v | Show commands to run and use verbose output |
-Wdeprecated | Enable warnings for deprecated constructs and define __DEPRECATED |
-working-directory <value...> | Resolve file paths relative to the specified directory |
-w | Suppress all warnings |
-Xanalyzer <arg> | Pass <arg> to the static analyzer |
-Xarch_device <arg> | Pass <arg> to the CUDA/HIP device compilation |
-Xarch_host <arg> | Pass <arg> to the CUDA/HIP host compilation |
-Xassembler <arg> | Pass <arg> to the assembler |
-Xclang <arg> | Pass <arg> to the clang compiler |
-Xcuda-fatbinary <arg> | Pass <arg> to fatbinary invocation |
-Xcuda-ptxas <arg> | Pass <arg> to the ptxas assembler |
-Xlinker <arg> | Pass <arg> to the linker |
-Xopenmp-target [triple] | Pass <arg> to the target offloading toolchain identified by <triple> |
-Xpreprocessor <arg> | Pass <arg> to the preprocessor |
-x <language> | Treat subsequent input files as having type <language> |
-z <arg> | Pass -z <arg> to the linker |
-std <value> | Language standard to compile for |