OS Manuals

/usr/lib/llvm-14/bin/clang-cl

C language family frontend for LLVM 14

From clang-14 14.0.6-r12 (enterprise-packages), captured 2026-11-08 by running clang-cl -help (exit 0). permalink

OVERVIEW: clang LLVM compiler

USAGE: clang-14 [options] file...

CL.EXE COMPATIBILITY OPTIONS:
  /?                      Display available options
  /arch:<value>           Set architecture for code generation
  /Brepro-                Write current time into COFF output (default)
  /Brepro                 Do not write current time into COFF output (breaks link.exe /incremental)
  /clang:<arg>            Pass <arg> to the clang driver
  /C                      Do not discard comments when preprocessing
  /c                      Compile only
  /d1PP                   Retain macro definitions in /E mode
  /d1reportAllClassLayout Dump record layout information
  /diagnostics:caret      Enable caret and column diagnostics (default)
  /diagnostics:classic    Disable column and caret diagnostics
  /diagnostics:column     Disable caret diagnostics but keep column info
  /diasdkdir <dir>        Path to the DIA SDK
  /D <macro[=value]>      Define macro
  /EH<value>              Set exception handling model
  /EP                     Disable linemarker output and preprocess to stdout
  /execution-charset:<value>
                          Set runtime encoding, supports only UTF-8
  /external:env:<var>     Add dirs in env var <var> to include search path with warnings suppressed
  /external:I <dir>       Add directory to include search path with warnings suppressed
  /E                      Preprocess to stdout
  /FA                     Output assembly code file during compilation
  /Fa<file or dir/>       Set assembly output file name (with /FA)
  /Fe<file or dir/>       Set output executable file name
  /FI <value>             Include file before parsing
  /Fi<file>               Set preprocess output file name (with /P)
  /Fo<file or dir/>       Set output object file (with /c)
  /Fp<file>               Set pch file name (with /Yc and /Yu)
  /fsanitize=address      Enable AddressSanitizer
  /GA                     Assume thread-local variables are defined in the executable
  /Gd                     Set __cdecl as a default calling convention
  /GF-                    Disable string pooling
  /GF                     Enable string pooling (default)
  /GR-                    Do not emit RTTI data
  /Gregcall               Set __regcall as a default calling convention
  /GR                     Emit RTTI data (default)
  /Gr                     Set __fastcall as a default calling convention
  /GS-                    Disable buffer security check
  /GS                     Enable buffer security check (default)
  /Gs                     Use stack probes (default)
  /Gs<value>              Set stack probe size (default 4096)
  /guard:<value>          Enable Control Flow Guard with /guard:cf, or only the table with /guard:cf,nochecks. Enable EH Continuation Guard with /guard:ehcont
  /Gv                     Set __vectorcall as a default calling convention
  /Gw-                    Do not put each data item in its own section (default)
  /Gw                     Put each data item in its own section
  /GX-                    Deprecated (like not passing /EH)
  /GX                     Deprecated; use /EHsc
  /Gy-                    Do not put each function in its own section (default)
  /Gy                     Put each function in its own section
  /Gz                     Set __stdcall as a default calling convention
  /help                   Display available options
  /hotpatch               Create hotpatchable image
  /imsvc <dir>            Add <dir> to system include search path, as if in %INCLUDE%
  /I <dir>                Add directory to include search path
  /J                      Make char type unsigned
  /LDd                    Create debug DLL
  /LD                     Create DLL
  /link <options>         Forward options to the linker
  /MDd                    Use DLL debug run-time
  /MD                     Use DLL run-time
  /MTd                    Use static debug run-time
  /MT                     Use static run-time
  /O1                     Optimize for size  (like /Og     /Os /Oy /Ob2 /GF /Gy)
  /O2                     Optimize for speed (like /Og /Oi /Ot /Oy /Ob2 /GF /Gy)
  /Ob0                    Disable function inlining
  /Ob1                    Only inline functions explicitly or implicitly marked inline
  /Ob2                    Inline functions as deemed beneficial by the compiler
  /Od                     Disable optimization
  /Og                     No effect
  /Oi-                    Disable use of builtin functions
  /Oi                     Enable use of builtin functions
  /openmp-                Disable OpenMP support
  /openmp:experimental    Enable OpenMP support with experimental SIMD support
  /openmp                 Enable OpenMP support
  /Os                     Optimize for size
  /Ot                     Optimize for speed
  /Ox                     Deprecated (like /Og /Oi /Ot /Oy /Ob2); use /O2
  /Oy-                    Disable frame pointer omission (x86 only, default)
  /Oy                     Enable frame pointer omission (x86 only)
  /O<flags>               Set multiple /O flags at once; e.g. '/O2y-' for '/O2 /Oy-'
  /o <file or dir/>       Deprecated (set output file name); use /Fe or /Fe
  /permissive-            Disable non conforming code from compiling (default)
  /permissive             Enable some non conforming code to compile
  /P                      Preprocess to file
  /QIntel-jcc-erratum     Align branches within 32-byte boundaries to mitigate the performance impact of the Intel JCC erratum.
  /Qvec-                  Disable the loop vectorization passes
  /Qvec                   Enable the loop vectorization passes
  /showFilenames-         Do not print the name of each compiled file (default)
  /showFilenames          Print the name of each compiled file
  /showIncludes:user      Like /showIncludes but omit system headers
  /showIncludes           Print info about included files to stderr
  /source-charset:<value> Set source encoding, supports only UTF-8
  /std:<value>            Set language version (c++14,c++17,c++20,c++latest,c11,c17)
  /TC                     Treat all source files as C
  /Tc <file>              Treat <file> as C source file
  /TP                     Treat all source files as C++
  /Tp <file>              Treat <file> as C++ source file
  /tune:<value>           Set CPU for optimization without affecting instruction set
  /utf-8                  Set source and runtime encoding to UTF-8 (default)
  /U <macro>              Undefine macro
  /vctoolsdir <dir>       Path to the VCToolChain
  /vctoolsversion <value> For use with /winsysroot, defaults to newest found
  /vd<value>              Control vtordisp placement
  /vmb                    Use a best-case representation method for member pointers
  /vmg                    Use a most-general representation for member pointers
  /vmm                    Set the default most-general representation to multiple inheritance
  /vms                    Set the default most-general representation to single inheritance
  /vmv                    Set the default most-general representation to virtual inheritance
  /volatile:iso           Volatile loads and stores have standard semantics
  /volatile:ms            Volatile loads and stores have acquire and release semantics
  /W0                     Disable all warnings
  /W1                     Enable -Wall
  /W2                     Enable -Wall
  /W3                     Enable -Wall
  /W4                     Enable -Wall and -Wextra
  /Wall                   Enable -Weverything
  /winsdkdir <dir>        Path to the Windows SDK
  /winsdkversion <value>  Full version of the Windows SDK, defaults to newest found
  /winsysroot <dir>       Same as "/diasdkdir <dir>/DIA SDK" /vctoolsdir <dir>/VC/Tools/MSVC/<vctoolsversion> "/winsdkdir <dir>/Windows Kits/10"
  /WX-                    Do not treat warnings as errors (default)
  /WX                     Treat warnings as errors
  /w                      Disable all warnings
  /X                      Do not add %INCLUDE% to include search path
  /Y-                     Disable precompiled headers, overrides /Yc and /Yu
  /Yc<filename>           Generate a pch file for all code up to and including <filename>
  /Yu<filename>           Load a pch file and use it instead of all code up to and including <filename>
  /Z7                     Enable CodeView debug information in object files
  /Zc:alignedNew-         Disable C++17 aligned allocation functions
  /Zc:alignedNew          Enable C++17 aligned allocation functions
  /Zc:char8_t-            Disable char8_t from c++2a
  /Zc:char8_t             Enable char8_t from C++2a
  /Zc:dllexportInlines-   Do not dllexport/dllimport inline member functions of dllexport/import classes
  /Zc:dllexportInlines    dllexport/dllimport inline member functions of dllexport/import classes (default)
  /Zc:sizedDealloc-       Disable C++14 sized global deallocation functions
  /Zc:sizedDealloc        Enable C++14 sized global deallocation functions
  /Zc:strictStrings       Treat string literals as const
  /Zc:threadSafeInit-     Disable thread-safe initialization of static variables
  /Zc:threadSafeInit      Enable thread-safe initialization of static variables
  /Zc:trigraphs-          Disable trigraphs (default)
  /Zc:trigraphs           Enable trigraphs
  /Zc:twoPhase-           Disable two-phase name lookup in templates (default)
  /Zc:twoPhase            Enable two-phase name lookup in templates
  /Zi                     Like /Z7
  /Zl                     Do not let object file auto-link default libraries
  /Zp                     Set default maximum struct packing alignment to 1
  /Zp<value>              Set default maximum struct packing alignment
  /Zs                     Syntax-check only

OPTIONS:
  -###                    Print (but do not run) the commands to run for this compilation
  --analyze               Run the static analyzer
  -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
  --end-no-unused-arguments
                          Start emitting warnings for unused driver arguments
  -faddrsig               Emit an address-significance table
  -fansi-escape-codes     Use ANSI escape codes for diagnostics
  -fblocks                Enable the 'blocks' language feature
  -fcf-protection=<value> Instrument control-flow architecture protection. Options: return, branch, full, none.
  -fcf-protection         Enable cf-protection in 'full' mode
  -fcolor-diagnostics     Enable colors in diagnostics
  -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
  -fcoverage-compilation-dir=<value>
                          The compilation directory to embed in the coverage mapping.
  -fcoverage-mapping      Generate coverage mapping to enable code coverage analysis
  -fcrash-diagnostics-dir=<dir>
                          Put crash-report files in <dir>
  -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)
  -fdebug-compilation-dir=<value>
                          The compilation directory to embed in the debug info
  -fdebug-macro           Emit macro debug information
  -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-parseable-fixits
                          Print fix-its in machine parseable form
  -ffile-compilation-dir=<value>
                          The compilation directory to embed in the debug info and coverage mapping.
  -fforce-emit-vtables    Emits more virtual tables to improve devirtualization
  -fgnuc-version=<value>  Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
  -fimplicit-module-maps  Implicitly search the file system for module map files.
  -fintegrated-cc1        Run cc1 in-process
  -flto=<value>           Set LTO mode to either 'full' or 'thin'
  -flto                   Enable LTO in 'full' mode
  -fmerge-all-constants   Allow merging of constants
  -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-decluse       Require declaration of modules used within a module
  -fmodules-ignore-macro=<value>
                          Ignore the definition of the given macro when building and loading modules
  -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               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
  -fms-hotpatch           Ensure that all functions can be hotpatched at runtime
  -fmsc-version=<value>   Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
  -fno-addrsig            Don't emit an address-significance table
  -fno-builtin-<value>    Disable implicit builtin knowledge of a specific function
  -fno-builtin            Disable implicit builtin knowledge of functions
  -fno-color-diagnostics  Disable colors in diagnostics
  -fno-complete-member-pointers
                          Do not require member pointer base types to be complete if they would be significant under the Microsoft ABI
  -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-debug-macro        Do not emit macro debug information
  -fno-delayed-template-parsing
                          Disable delayed template parsing
  -fno-delete-null-pointer-checks
                          Do not treat usage of null pointers as undefined behavior
  -fno-integrated-cc1     Spawn a separate process for each cc1
  -fno-lto                Disable LTO mode (default)
  -fno-offload-lto        Disable LTO mode (default) for offload compilation
  -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-sanitize-address-outline-instrumentation
                          Use default code inlining logic for the address sanitizer
  -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-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 features of coverage instrumentation for Sanitizers
  -fno-sanitize-hwaddress-experimental-aliasing
                          Disable aliasing mode in HWAddressSanitizer
  -fno-sanitize-ignorelist
                          Don't use ignorelist file for sanitizers
  -fno-sanitize-memory-param-retval
                          Disable detection of uninitialized parameters and return values
  -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-standalone-debug   Limit debug information produced to reduce size of debug binary
  -fno-sycl               Disables SYCL kernels compilation for device
  -fno-temp-file          Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
  -fobjc-runtime=<value>  Specify the target Objective-C runtime kind and version
  -foffload-lto=<value>   Set LTO mode to either 'full' or 'thin' for offload compilation
  -foffload-lto           Enable LTO in 'full' mode for offload compilation
  -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)
  -fpch-instantiate-templates
                          Instantiate templates already while building a PCH
  -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-list=<value>  Filename defining the list of functions/files to instrument
  -fprofile-remapping-file=<file>
                          Use the remappings described in <file> to match the profile data against names in the program
  -fprofile-update=<method>
                          Set update method of profile counters (atomic,prefer-atomic,single)
  -fprotect-parens        Determines whether the optimizer honors parentheses when floating-point expressions are evaluated
  -fsanitize-address-destructor=<value>
                          Set destructor type used in ASan instrumentation
  -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-outline-instrumentation
                          Always generate function calls for address sanitizer instrumentation
  -fsanitize-address-poison-custom-array-cookie
                          Enable poisoning array cookies when using custom operator new[] in AddressSanitizer
  -fsanitize-address-use-after-return=<mode>
                          Select the mode of detecting stack use-after-return in AddressSanitizer: never | runtime (default) | always
  -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>
                          Alias for -fsanitize-ignorelist=
  -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-ignorelist= instead
  -fsanitize-coverage-ignorelist=<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-hwaddress-experimental-aliasing
                          Enable aliasing mode in HWAddressSanitizer
  -fsanitize-ignorelist=<value>
                          Path to ignorelist file for sanitizers
  -fsanitize-memory-param-retval
                          Enable detection of uninitialized parameters and return values
  -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>
                          Alias for -fsanitize-system-ignorelist=
  -fsanitize-system-ignorelist=<value>
                          Path to system ignorelist 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
  -fsplit-lto-unit        Enables splitting of the LTO unit
  -fstandalone-debug      Emit full debug info for all types used by the program
  -fswift-async-fp=<option>
                          Control emission of Swift async extended frame info (option: auto, always, never)
  -fsycl                  Enables 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.
  -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
  -fvirtual-function-elimination
                          Enables dead virtual function elimination optimization. Requires -flto=full
  -fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
  -gcodeview-ghash        Emit type record hashes in a .debug$H section
  -gcodeview              Generate CodeView debug information
  -gdwarf                 Generate source-level debug information with the default dwarf version
  -gline-directives-only  Emit debug line info directives only
  -gline-tables-only      Emit debug line number tables only
  -gno-inline-line-tables Don't emit inline line tables.
  -miamcu                 Use Intel MCU ABI
  -mibt-seal              Optimize fcf-protection=branch/full (requires LTO).
  -mllvm <value>          Additional arguments to forward to LLVM's option processing
  -mlvi-cfi               Enable only control-flow mitigations for Load Value Injection (LVI)
  -mlvi-hardening         Enable all mitigations for Load Value Injection (LVI)
  -mno-lvi-cfi            Disable control-flow mitigations for Load Value Injection (LVI)
  -mno-lvi-hardening      Disable mitigations for Load Value Injection (LVI)
  -mno-seses              Disable speculative execution side effect suppression (SESES)
  -mseses                 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
  -nobuiltininc           Disable builtin #include directories
  -object-file-name=<file>
                          Set the output <file> for debug infos
  -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)
  -Qunused-arguments      Don't emit warning for unused driver arguments
  -R<remark>              Enable the specified remark
  --start-no-unused-arguments
                          Don't emit warnings about unused arguments for the following arguments
  -sycl-std=<value>       SYCL language standard to compile for.
  --target=<value>        Generate code for the given target
  --version               Print version information
  -v                      Show commands to run and use verbose output
  -W<warning>             Enable the specified warning
  -Xclang <arg>           Pass <arg> to the clang compiler
Options (161)
OptionDescriptionSource
-###Print (but do not run) the commands to run for this compilationhelp
--analyzeRun the static analyzerhelp
-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clangTrivial 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 benchmarkhelp
--end-no-unused-argumentsStart emitting warnings for unused driver argumentshelp
-faddrsigEmit an address-significance tablehelp
-fansi-escape-codesUse ANSI escape codes for diagnosticshelp
-fblocksEnable the 'blocks' language featurehelp
-fcf-protectionEnable cf-protection in 'full' modehelp
-fcolor-diagnosticsEnable colors in diagnosticshelp
-fcommonPlace uninitialized global variables in a common blockhelp
-fcomplete-member-pointersRequire member pointer base types to be complete if they would be significant under the Microsoft ABIhelp
-fcoverage-compilation-dir valueThe compilation directory to embed in the coverage mapping.help
-fcoverage-mappingGenerate coverage mapping to enable code coverage analysishelp
-fcrash-diagnostics-dir dirPut crash-report files in <dir>help
-fcs-profile-generate directoryGenerate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)help
-fdebug-compilation-dir valueThe compilation directory to embed in the debug infohelp
-fdebug-macroEmit macro debug informationhelp
-fdelayed-template-parsingParse templated function definitions at the end of the translation unithelp
-fdelete-null-pointer-checksTreat usage of null pointers as undefined behavior (default)help
-fdiagnostics-absolute-pathsPrint absolute paths in diagnosticshelp
-fdiagnostics-parseable-fixitsPrint fix-its in machine parseable formhelp
-ffile-compilation-dir valueThe compilation directory to embed in the debug info and coverage mapping.help
-fforce-emit-vtablesEmits more virtual tables to improve devirtualizationhelp
-fgnuc-version valueSets various macros to claim compatibility with the given GCC version (default is 4.2.1)help
-fimplicit-module-mapsImplicitly search the file system for module map files.help
-fintegrated-cc1Run cc1 in-processhelp
-flto valueSet LTO mode to either 'full' or 'thin'help
-fmerge-all-constantsAllow merging of constantshelp
-fmodule-file name>=]<fileSpecify the mapping of module name to precompiled module file, or load a module file if name is omitted.help
-fmodule-map-file fileLoad this module map filehelp
-fmodule-name nameSpecify the name of the module to buildhelp
-fmodules-decluseRequire declaration of modules used within a modulehelp
-fmodules-ignore-macro valueIgnore the definition of the given macro when building and loading moduleshelp
-fmodules-search-allSearch even non-imported modules to resolve referenceshelp
-fmodules-strict-decluseLike -fmodules-decluse but requires all headers to be in moduleshelp
-fmodulesEnable the 'modules' language featurehelp
-fms-compatibility-version valueDot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))help
-fms-compatibilityEnable full Microsoft Visual C++ compatibilityhelp
-fms-extensionsAccept some non-standard constructs supported by the Microsoft compilerhelp
-fms-hotpatchEnsure that all functions can be hotpatched at runtimehelp
-fmsc-version valueMicrosoft compiler version number to report in _MSC_VER (0 = don't define it (default))help
-fno-addrsigDon't emit an address-significance tablehelp
-fno-builtin- valueDisable implicit builtin knowledge of a specific functionhelp
-fno-builtinDisable implicit builtin knowledge of functionshelp
-fno-color-diagnosticsDisable colors in diagnosticshelp
-fno-complete-member-pointersDo not require member pointer base types to be complete if they would be significant under the Microsoft ABIhelp
-fno-coverage-mappingDisable code coverage analysishelp
-fno-crash-diagnosticsDisable auto-generation of preprocessed source files and a script for reproduction during a clang crashhelp
-fno-debug-macroDo not emit macro debug informationhelp
-fno-delayed-template-parsingDisable delayed template parsinghelp
-fno-delete-null-pointer-checksDo not treat usage of null pointers as undefined behaviorhelp
-fno-integrated-cc1Spawn a separate process for each cc1help
-fno-ltoDisable LTO mode (default)help
-fno-offload-ltoDisable LTO mode (default) for offload compilationhelp
-fno-profile-generateDisable generation of profile instrumentation.help
-fno-profile-instr-generateDisable generation of profile instrumentation.help
-fno-profile-instr-useDisable using instrumentation data for profile-guided optimizationhelp
-fno-sanitize-address-outline-instrumentationUse default code inlining logic for the address sanitizerhelp
-fno-sanitize-address-poison-custom-array-cookieDisable poisoning array cookies when using custom operator new[] in AddressSanitizerhelp
-fno-sanitize-address-use-after-scopeDisable use-after-scope detection in AddressSanitizerhelp
-fno-sanitize-address-use-odr-indicatorDisable ODR indicator globalshelp
-fno-sanitize-cfi-canonical-jump-tablesDo not make the jump table addresses canonical in the symbol tablehelp
-fno-sanitize-cfi-cross-dsoDisable control flow integrity (CFI) checks for cross-DSO calls.help
-fno-sanitize-coverage valueDisable features of coverage instrumentation for Sanitizershelp
-fno-sanitize-hwaddress-experimental-aliasingDisable aliasing mode in HWAddressSanitizerhelp
-fno-sanitize-ignorelistDon't use ignorelist file for sanitizershelp
-fno-sanitize-memory-param-retvalDisable detection of uninitialized parameters and return valueshelp
-fno-sanitize-memory-track-originsDisable origins tracking in MemorySanitizerhelp
-fno-sanitize-memory-use-after-dtorDisable use-after-destroy detection in MemorySanitizerhelp
-fno-sanitize-recover valueDisable recovery for specified sanitizershelp
-fno-sanitize-statsDisable sanitizer statistics gathering.help
-fno-sanitize-thread-atomicsDisable atomic operations instrumentation in ThreadSanitizerhelp
-fno-sanitize-thread-func-entry-exitDisable function entry/exit instrumentation in ThreadSanitizerhelp
-fno-sanitize-thread-memory-accessDisable memory access instrumentation in ThreadSanitizerhelp
-fno-sanitize-trap valueDisable trapping for specified sanitizershelp
-fno-standalone-debugLimit debug information produced to reduce size of debug binaryhelp
-fno-syclDisables SYCL kernels compilation for devicehelp
-fno-temp-fileDirectly create compilation output files.help
-fobjc-runtime valueSpecify the target Objective-C runtime kind and versionhelp
-foffload-lto valueSet LTO mode to either 'full' or 'thin' for offload compilationhelp
-forder-file-instrumentationGenerate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)help
-fpch-instantiate-templatesInstantiate templates already while building a PCHhelp
-fprofile-exclude-files valueInstrument only functions from files where names don't match all the regexes separated by a semi-colonhelp
-fprofile-filter-files valueInstrument only functions from files where names match any regex separated by a semi-colonhelp
-fprofile-generate directoryGenerate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)help
-fprofile-instr-generate fileGenerate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)help
-fprofile-instr-use valueUse instrumentation data for profile-guided optimizationhelp
-fprofile-list valueFilename defining the list of functions/files to instrumenthelp
-fprofile-remapping-file fileUse the remappings described in <file> to match the profile data against names in the programhelp
-fprofile-update methodSet update method of profile counters (atomic,prefer-atomic,single)help
-fprotect-parensDetermines whether the optimizer honors parentheses when floating-point expressions are evaluatedhelp
-fsanitize-address-destructor valueSet destructor type used in ASan instrumentationhelp
-fsanitize-address-field-padding valueLevel of field padding for AddressSanitizerhelp
-fsanitize-address-globals-dead-strippingEnable linker dead stripping of globals in AddressSanitizerhelp
-fsanitize-address-outline-instrumentationAlways generate function calls for address sanitizer instrumentationhelp
-fsanitize-address-poison-custom-array-cookieEnable poisoning array cookies when using custom operator new[] in AddressSanitizerhelp
-fsanitize-address-use-after-return modeSelect the mode of detecting stack use-after-return in AddressSanitizer: never | runtime (default) | alwayshelp
-fsanitize-address-use-after-scopeEnable use-after-scope detection in AddressSanitizerhelp
-fsanitize-address-use-odr-indicatorEnable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary sizehelp
-fsanitize-blacklist valueAlias for -fsanitize-ignorelist=help
-fsanitize-cfi-canonical-jump-tablesMake the jump table addresses canonical in the symbol tablehelp
-fsanitize-cfi-cross-dsoEnable control flow integrity (CFI) checks for cross-DSO calls.help
-fsanitize-cfi-icall-generalize-pointersGeneralize pointers in CFI indirect call type signature checkshelp
-fsanitize-coverage-allowlist valueRestrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked oneshelp
-fsanitize-coverage-blacklist valueDeprecated, use -fsanitize-coverage-ignorelist= insteadhelp
-fsanitize-coverage-ignorelist valueDisable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed oneshelp
-fsanitize-coverage-whitelist valueDeprecated, use -fsanitize-coverage-allowlist= insteadhelp
-fsanitize-coverage valueSpecify the type of coverage instrumentation for Sanitizershelp
-fsanitize-hwaddress-abi valueSelect the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor).help
-fsanitize-hwaddress-experimental-aliasingEnable aliasing mode in HWAddressSanitizerhelp
-fsanitize-ignorelist valuePath to ignorelist file for sanitizershelp
-fsanitize-memory-param-retvalEnable detection of uninitialized parameters and return valueshelp
-fsanitize-memory-track-origins valueEnable origins tracking in MemorySanitizerhelp
-fsanitize-memory-use-after-dtorEnable use-after-destroy detection in MemorySanitizerhelp
-fsanitize-recover valueEnable recovery for specified sanitizershelp
-fsanitize-statsEnable sanitizer statistics gathering.help
-fsanitize-system-blacklist valueAlias for -fsanitize-system-ignorelist=help
-fsanitize-system-ignorelist valuePath to system ignorelist file for sanitizershelp
-fsanitize-thread-atomicsEnable atomic operations instrumentation in ThreadSanitizer (default)help
-fsanitize-thread-func-entry-exitEnable function entry/exit instrumentation in ThreadSanitizer (default)help
-fsanitize-thread-memory-accessEnable memory access instrumentation in ThreadSanitizer (default)help
-fsanitize-trapEnable trapping for all sanitizershelp
-fsanitize-undefined-strip-path-components numberStrip (or keep only, if negative) a given number of path components when emitting check metadata.help
-fsanitize checkTurn on runtime checks for various forms of undefined or suspicious behavior.help
-fsplit-lto-unitEnables splitting of the LTO unithelp
-fstandalone-debugEmit full debug info for all types used by the programhelp
-fswift-async-fp optionControl emission of Swift async extended frame info (option: auto, always, never)help
-fsyclEnables SYCL kernels compilation for devicehelp
-fsystem-moduleBuild this module as a system module.help
-fthin-link-bitcode valueWrite minimized bitcode to <file> for the ThinLTO thin link onlyhelp
-ftime-trace-granularity valueMinimum time granularity (in microseconds) traced by time profilerhelp
-ftime-traceTurn on time profiler.help
-ftrivial-auto-var-init-stop-after valueStop initializing trivial automatic stack variables after the specified number of instanceshelp
-ftrivial-auto-var-init valueInitialize trivial automatic stack variables: uninitialized (default) | patternhelp
-fvirtual-function-eliminationEnables dead virtual function elimination optimization.help
-gcodeview-ghashEmit type record hashes in a .debug$H sectionhelp
-gcodeviewGenerate CodeView debug informationhelp
-gdwarfGenerate source-level debug information with the default dwarf versionhelp
-gline-directives-onlyEmit debug line info directives onlyhelp
-gline-tables-onlyEmit debug line number tables onlyhelp
-miamcuUse Intel MCU ABIhelp
-mibt-sealOptimize fcf-protection=branch/full (requires LTO).help
-mllvm valueAdditional arguments to forward to LLVM's option processinghelp
-mlvi-cfiEnable only control-flow mitigations for Load Value Injection (LVI)help
-mlvi-hardeningEnable all mitigations for Load Value Injection (LVI)help
-mno-lvi-cfiDisable control-flow mitigations for Load Value Injection (LVI)help
-mno-lvi-hardeningDisable mitigations for Load Value Injection (LVI)help
-mno-sesesDisable speculative execution side effect suppression (SESES)help
-msesesEnable speculative execution side effect suppression (SESES).help
-nobuiltinincDisable builtin #include directorieshelp
-object-file-name fileSet the output <file> for debug infoshelp
-print-supported-cpusPrint supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)help
-Qunused-argumentsDon't emit warning for unused driver argumentshelp
-R remarkEnable the specified remarkhelp
--start-no-unused-argumentsDon't emit warnings about unused arguments for the following argumentshelp
-sycl-std valueSYCL language standard to compile for.help
--target valueGenerate code for the given targethelp
--versionPrint version informationhelp
-vShow commands to run and use verbose outputhelp
-W warningEnable the specified warninghelp
-Xclang argPass <arg> to the clang compilerhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.