Help for the internal Clang compiler appears below.
USAGE: clang [options] file...
- -###
- Print (but do not run) the commands to run for this compilation
- --analyzer-output
<value>
- Static analyzer report output format
(html|plist|plist-multi-file|plist-html|sarif|text).
- --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. Also implies
-cl-no-signed-zeros and -cl-mad-enable.
- --config
<value>
- Specifies configuration file
- --cuda-compile-host-device
- Compile CUDA code for both host and device (default). Has no effect on
non-CUDA compilations.
- --cuda-device-only
- Compile CUDA code for device only
- --cuda-host-only
- Compile CUDA code for host only. Has no effect on non-CUDA
compilations.
- --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 Inteface 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
- -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 code to those available
for App Extensions
-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
- -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> Instrument control-flow
architecture protection. Options: return, branch, full, none.
- -fcf-protection
- 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
- 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)
- -fcs-profile-generate
- Generate instrumented code to collect context sensitive execution counts
into 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)
- -fembed-bitcode
- Embed LLVM IR bitcode as data
- -femit-all-decls
- Emit all declarations, even if unused
- -femulated-tls
- Use emutls functions to access thread_local variables
- -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
(default is 4.2.1)
-fgpu-allow-device-init Allow device side init function
in HIP
- -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 functions which are
(explicitly or implicitly) marked 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'
- -flto
- Enable LTO in 'full' mode
- -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>=]<file>
- 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-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 a specific function
- -fno-builtin
- 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 creation of
CodeFoundation-type constant strings
-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 C++ copy constructor
elision
- -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 use new kernel launching
API for HIP
- -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 keep static const
variables if unused
- -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-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 use blacklist file for
sanitizers
- -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-sanitize-trap
- Disable trapping for all 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-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 not emit code to make
initialization of local statics thread safe
- -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-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-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-generate
- Generate instrumented code to collect execution counts into
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-generate
- Generate instrumented code to collect execution counts into
default.profraw file (overridden by '=' form of option or
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>.
- -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-track-origins
- 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
specified sanitizers
- -fsanitize-trap
- Enable trapping for all 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
- -fsave-optimization-record
- Generate a YAML optimization record file
- -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
- -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-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
- -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: uninitialized (default) |
pattern
- -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
- 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 whole-program vtable
optimization. Requires -flto
- -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=
<value>
- Select which XRay instrumentation points to emit. Options: all, none,
function-entry, function-exit, function, custom. Default is 'all'.
'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 emit inline line
tables
- --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
- -gz
- 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
- -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
- -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=medany
- Equivalent to -mcmodel=medium, compatible with RISC-V
gcc.
- -mcmodel=medlow
- Equivalent to -mcmodel=small, 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 Cortex-A53 erratum
835769 (AArch64 only)
- -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
- -mhvx
- 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 error out if the detected
version of the CUDA install is too low for the requested CUDA gpu
architecture.
- --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 migration to 'atomic'
properties
- -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
- --offload-arch=<value>
- CUDA/HIP offloading device architecture (e.g. sm_35, gfx906). May be
specified more than once.
- -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 the effective target
triple
-print-file-name=<file> Print the full library
path of <file>
- -print-ivar-layout
- Enable Objective-C Ivar layout bitmap print trace
-print-libgcc-file-name Print the library path for the
currently used compiler runtime library ("libgcc.a" or
"libclang_rt.builtins.*.a")
-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-stats
- Save llvm statistics.
- -save-temps=<value>
- Save intermediate compilation results.
- -save-temps
- 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.
- -std=<value>
- Language standard to compile for
- -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=<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
- -Wa,<arg>
- Pass the comma separated arguments in <arg> to the assembler
- -Wdeprecated
- Enable warnings for deprecated constructs and define __DEPRECATED
- -Wl,<arg>
- Pass the comma separated arguments in <arg> to the linker
- -working-directory
<value>
- Resolve file paths relative to the specified directory
- -Wp,<arg>
- Pass the comma separated arguments in <arg> to the preprocessor
- -W<warning>
- Enable the specified warning
- -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>
<arg>
- Pass <arg> to the target offloading toolchain identified by
<triple>.
- -Xopenmp-target
<arg>
- Pass <arg> to the target offloading toolchain.
- -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
CastXML project maintained and supported by Kitware
(kitware.com).
Debian clang version 11.0.0-5+b1 Target: x86_64-pc-linux-gnu
Thread model: posix InstalledDir: