Emit Clang AST files for source inputs
+.. option:: -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang<arg>
+
+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
+
.. option:: -exported\_symbols\_list <arg>
.. option:: -faligned-new=<arg>
Flush denormal floating point values to zero in CUDA device mode.
-.. option:: -fcuda-rdc, -fno-cuda-rdc
-
-Generate relocatable device code, also known as separate compilation mode.
-
.. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
Use 32-bit pointers for accessing const/local/shared address spaces.
Reserve register r19 (Hexagon only)
+.. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
+
+Generate relocatable device code, also known as separate compilation mode.
+
.. option:: -fheinous-gnu-extensions
.. option:: -flat\_namespace
Generate CodeView debug information
+.. option:: -gcodeview-ghash, -gno-codeview-ghash
+
+Emit type record hashes in a .debug$H section
+
.. option:: -headerpad\_max\_install\_names<arg>
.. option:: -help, --help
.. option:: -mbig-endian, -EB
+.. option:: -mbranch-protection=<arg>
+
+Enforce targets of indirect branches and function returns
+
.. option:: --migrate
Run the migrator
.. option:: -fparse-all-comments
-.. option:: -frecord-command-line, -frecord-gcc-switches, -fno-record-command-line, -fno-record-gcc-switches
-
-Generate a section named ".GCC.command.line" containing the clang driver
-command-line. After linking, the section may contain multiple command lines,
-which will be individually terminated by null bytes. Separate arguments within
-a command line are combined with spaces; spaces and backslashes within an
-argument are escaped with backslashes. This format differs from the format of
-the equivalent section produced by GCC with the -frecord-gcc-switches flag.
-This option is currently only supported on ELF targets.
+.. option:: -frecord-command-line, -fno-record-command-line, -frecord-gcc-switches
.. option:: -fsanitize-address-field-padding=<arg>
Enable linker dead stripping of globals in AddressSanitizer
-.. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-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
-
.. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
-Enable "poisoning" array cookies when allocating arrays with a custom operator new\[\] in Address Sanitizer, preventing accesses to the cookies from user code. An array cookie is a small implementation-defined header added to certain array allocations to record metadata such as the length of the array. Accesses to array cookies from user code are technically allowed by the standard but are more likely to be the result of an out-of-bounds array access.
-
-An operator new\[\] is "custom" if it is not one of the allocation functions provided by the C++ standard library. Array cookies from non-custom allocation functions are always poisoned.
+Enable poisoning array cookies when using custom operator new\[\] in AddressSanitizer
.. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
Enable use-after-scope detection in AddressSanitizer
+.. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-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
+
.. option:: -fsanitize-blacklist=<arg>
Path to blacklist file for sanitizers
Specify the type of coverage instrumentation for Sanitizers
+.. option:: -fsanitize-hwaddress-abi=<arg>
+
+Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor)
+
.. option:: -fsanitize-link-c++-runtime
.. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
+.. option:: --libomptarget-nvptx-path=<arg>
+
+Path to libomptarget-nvptx libraries
+
.. option:: --ptxas-path=<arg>
Path to ptxas (used for compiling CUDA code)
Instrument control-flow architecture protection. Options: return, branch, full, none.
+.. option:: -fcf-runtime-abi=<arg>
+
.. option:: -fchar8\_t, -fno-char8\_t
Enable C++ builtin type char8\_t
remap file source paths in debug info
+.. option:: -fdebug-ranges-base-address, -fno-debug-ranges-base-address
+
+Use DWARF base address selection entries in debug\_ranges
+
.. option:: -fdebug-types-section, -fno-debug-types-section
Place debug types in their own section (ELF Only)
Use EH-safe code when synthesizing retains and releases in -fobjc-arc
+.. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
+
.. option:: -fobjc-exceptions, -fno-objc-exceptions
Enable Objective-C exceptions
.. option:: -fprofile-dir=<arg>
+.. option:: -fprofile-exclude-files=<arg>
+
+Instrument only functions from files where names don't match all the regexes separated by a semi-colon
+
+.. option:: -fprofile-filter-files=<arg>
+
+Instrument only functions from files where names match any regex separated by a semi-colon
+
.. option:: -fprofile-generate, -fno-profile-generate
Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
Use instrumentation data for profile-guided optimization
+.. option:: -fprofile-remapping-file=<file>, -fprofile-remapping-file <arg>
+
+Use the remappings described in <file> to match the profile data against names in the program
+
.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
Specifies that the sample profile is accurate. If the sample
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
+.. option:: -fsplit-lto-unit, -fno-split-lto-unit
+
+Enables splitting of the LTO unit.
+
.. option:: -fsplit-stack
.. option:: -fstack-protector, -fno-stack-protector
-Enable stack protectors for functions potentially vulnerable to stack smashing
+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
.. option:: -fstack-protector-all
-Force the usage of stack protectors for all functions
+Enable stack protectors for all functions
.. option:: -fstack-protector-strong
-Use a strong heuristic to apply stack protectors to functions
+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
.. option:: -fstack-size-section, -fno-stack-size-section
Process trigraph sequences
+.. option:: -ftrivial-auto-var-init=<arg>
+
+Initialize trivial automatic stack variables: uninitialized (default) \| pattern
+
.. option:: -funique-section-names, -fno-unique-section-names
Use unique names for text and data sections (ELF Only)
.. option:: -fverbose-asm, -fno-verbose-asm
+.. option:: -fvisibility-global-new-delete-hidden
+
+Give global C++ operator new and delete declarations hidden visibility
+
.. option:: -fvisibility-inlines-hidden
Give inline C++ member functions hidden visibility by default
.. option:: -mconsole<arg>
-.. option:: -mcpu=<arg>, -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62), -mv65 (equivalent to -mcpu=hexagonv65)
+.. option:: -mcpu=<arg>, -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62), -mv65 (equivalent to -mcpu=hexagonv65), -mv66 (equivalent to -mcpu=hexagonv66)
.. option:: -mcrc, -mno-crc
.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
+.. option:: -mhwmult=<arg>
+
.. option:: -miamcu, -mno-iamcu
Use Intel MCU ABI
Use software floating point
+.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
+
.. option:: -mstack-alignment=<arg>
Set the stack alignment
.. option:: -mthumb, -mno-thumb
+.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
+
+Enable direct TLS access through segment registers (default)
+
.. option:: -mtune=<arg>
.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
AARCH64
-------
-.. option:: -ffixed-x1
-
-Reserve the x1 register (AArch64 only)
-
-.. option:: -ffixed-x2
-
-Reserve the x2 register (AArch64 only)
-
-.. option:: -ffixed-x3
+.. option:: -fcall-saved-x10
-Reserve the x3 register (AArch64 only)
+Make the x10 register call-saved (AArch64 only)
-.. option:: -ffixed-x4
+.. option:: -fcall-saved-x11
-Reserve the x4 register (AArch64 only)
+Make the x11 register call-saved (AArch64 only)
-.. option:: -ffixed-x5
+.. option:: -fcall-saved-x12
-Reserve the x5 register (AArch64 only)
+Make the x12 register call-saved (AArch64 only)
-.. option:: -ffixed-x6
+.. option:: -fcall-saved-x13
-Reserve the x6 register (AArch64 only)
+Make the x13 register call-saved (AArch64 only)
-.. option:: -ffixed-x7
+.. option:: -fcall-saved-x14
-Reserve the x7 register (AArch64 only)
+Make the x14 register call-saved (AArch64 only)
-.. option:: -ffixed-x18
+.. option:: -fcall-saved-x15
-Reserve the x18 register (AArch64 only)
+Make the x15 register call-saved (AArch64 only)
-.. option:: -ffixed-x20
+.. option:: -fcall-saved-x18
-Reserve the x20 register (AArch64 only)
+Make the x18 register call-saved (AArch64 only)
.. option:: -fcall-saved-x8
Make the x9 register call-saved (AArch64 only)
-.. option:: -fcall-saved-x10
+.. option:: -ffixed-x1
-Make the x10 register call-saved (AArch64 only)
+Reserve the 1 register (AArch64 only)
-.. option:: -fcall-saved-x11
+.. option:: -ffixed-x18
-Make the x11 register call-saved (AArch64 only)
+Reserve the 18 register (AArch64 only)
-.. option:: -fcall-saved-x12
+.. option:: -ffixed-x2
-Make the x12 register call-saved (AArch64 only)
+Reserve the 2 register (AArch64 only)
-.. option:: -fcall-saved-x13
+.. option:: -ffixed-x20
-Make the x13 register call-saved (AArch64 only)
+Reserve the 20 register (AArch64 only)
-.. option:: -fcall-saved-x14
+.. option:: -ffixed-x3
-Make the x14 register call-saved (AArch64 only)
+Reserve the 3 register (AArch64 only)
-.. option:: -fcall-saved-x15
+.. option:: -ffixed-x4
-Make the x15 register call-saved (AArch64 only)
+Reserve the 4 register (AArch64 only)
-.. option:: -fcall-saved-x18
+.. option:: -ffixed-x5
-Make the x18 register call-saved (AArch64 only)
+Reserve the 5 register (AArch64 only)
+
+.. option:: -ffixed-x6
+
+Reserve the 6 register (AArch64 only)
+
+.. option:: -ffixed-x7
+
+Reserve the 7 register (AArch64 only)
.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
AMDGPU
------
+.. option:: -mcode-object-v3, -mno-code-object-v3
+
+Enable code object v3 (AMDGPU only)
+
+.. option:: -msram-ecc, -mno-sram-ecc
+
+Enable SRAM ECC (AMDGPU only)
+
.. option:: -mxnack, -mno-xnack
Enable XNACK (AMDGPU only)
.. option:: -msimd128, -mno-simd128
+.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
+
X86
---
.. option:: -m3dnow, -mno-3dnow
.. option:: -ggdb3
+.. option:: -gline-directives-only
+
+Emit debug line info directives only
+
.. option:: -gline-tables-only, -g1, -gmlt
Emit debug line number tables only
.. option:: -gpubnames, -gno-pubnames
-.. option:: -grecord-command-line, -grecord-gcc-switches, -gno-record-command-line, -gno-record-gcc-switches
+.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
.. option:: -gsplit-dwarf
+.. program:: clang1
+.. option:: -gsplit-dwarf=<arg>
+.. program:: clang
+
+Set DWARF fission mode to either 'split' or 'single'
+
.. option:: -gstrict-dwarf, -gno-strict-dwarf
.. option:: -gz