Scroll to navigation

CASTXML(1) User Commands CASTXML(1)

NAME

castxml - Create an XML representation of C++ declarations

SYNOPSIS

castxml ( <castxml-opt> | <clang-opt> | <src> )...

DESCRIPTION

Options interpreted by castxml are listed below. Remaining options are given to the internal Clang compiler.

OPTIONS

--castxml-cc-<id> <cc>

--castxml-cc-<id> "(" <cc> <cc-opt>... ")"

Configure the internal Clang preprocessor and target platform to match that of the given compiler command. The <id> must be "gnu", "msvc", "gnu-c", or "msvc-c". <cc> names a compiler (e.g. "gcc") and <cc-opt>... specifies options that may affect its target (e.g. "-m32").

--castxml-output=<v>

Write castxml-format output to <src>.xml or file named by '-o' The <v> specifies the "epic" format version number to generate, and must be '1'.

--castxml-gccxml

Write gccxml-format output to <src>.xml or file named by '-o' Use this option if you need an output similar to the one generated by the legacy gccxml tool.

--castxml-start <name>[,<name>]...

Start AST traversal at declaration(s) with the given (qualified) name(s). Multiple names may be specified as a comma-separated list or by repeating the option.

-help, --help

Print castxml and internal Clang compiler usage information

-o <file>

Write output to <file>

--version

Print castxml and internal Clang compiler version information

Help for the internal Clang compiler appears below.

---------------------------------------------------------------

OVERVIEW: clang LLVM compiler

USAGE: clang [options] file...

OPTIONS:

-###
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
-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)
-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:

December 2020 castxml version 0.3.6