# Support of Clang options Clang version: clang version 12.0.0 927e2776dc0e4bb0119efbc5ea405b7425d7f4ac |Option|Support|Description| |-------|------|-------| |`-###`|Supported|`Print (but do not run) the commands to run for this compilation`| |`--analyzer-output `|Supported|`Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|sarif\|text).`| |`--analyze`|Supported|`Run the static analyzer`| |`-arcmt-migrate-emit-errors`|Unsupported|`Emit ARC errors even if the migrator can fix them`| |`-arcmt-migrate-report-output `|Unsupported|`Output path for the plist report`| |`-byteswapio`|Supported|`Swap byte-order for unformatted input/output`| |`-B `|Supported|`Add to search path for binaries and object files used implicitly`| |`-CC`|Supported|`Include comments from within macros in preprocessed output`| |`-cl-denorms-are-zero`|Supported|`OpenCL only. Allow denormals to be flushed to zero.`| |`-cl-fast-relaxed-math`|Supported|`OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.`| |`-cl-finite-math-only`|Supported|`OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.`| |`-cl-fp32-correctly-rounded-divide-sqrt`|Supported|`OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.`| |`-cl-kernel-arg-info`|Supported|`OpenCL only. Generate kernel argument metadata.`| |`-cl-mad-enable`|Supported|`OpenCL only. Allow use of less precise MAD computations in the generated binary.`| |`-cl-no-signed-zeros`|Supported|`OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.`| |`-cl-opt-disable`|Supported|`OpenCL only. This option disables all optimizations. By default optimizations are enabled.`| |`-cl-single-precision-constant`|Supported|`OpenCL only. Treat double precision floating-point constant as single precision constant.`| |`-cl-std=`|Supported|`OpenCL language standard to compile for.`| |`-cl-strict-aliasing`|Supported|`OpenCL only. This option is added for compatibility with OpenCL 1.0.`| |`-cl-uniform-work-group-size`|Supported|`OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel`| |`-cl-unsafe-math-optimizations`|Supported|`OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.`| |`--config `|Supported|`Specifies configuration file`| |`--cuda-compile-host-device`|Supported|`Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.`| |`--cuda-device-only`|Supported|`Compile CUDA code for device only`| |`--cuda-host-only`|Supported|`Compile CUDA code for host only. Has no effect on non-CUDA compilations.`| |`--cuda-include-ptx=`|Unsupported|`Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.`| |`--cuda-noopt-device-debug`|Unsupported|`Enable device-side debug info generation. Disables ptxas optimizations.`| |`--cuda-path-ignore-env`|Unsupported|`Ignore environment variables to detect CUDA installation`| |`--cuda-path=`|Unsupported|`CUDA installation path`| |`-cxx-isystem `|Supported|`Add directory to the C++ SYSTEM include search path`| |`-C`|Supported|`Include comments in preprocessed output`| |`-c`|Supported|`Only run preprocess, compile, and assemble steps`| |`-dD`|Supported|`Print macro definitions in -E mode in addition to normal output`| |`-dependency-dot `|Supported|`Filename to write DOT-formatted header dependencies to`| |`-dependency-file `|Supported|`Filename (or -) to write dependency output to`| |`-dI`|Supported|`Print include directives in -E mode in addition to normal output`| |`-dM`|Supported|`Print macro definitions in -E mode instead of normal output`| |`-dsym-dir `|Unsupported|`Directory to output dSYM's (if any) to`| |`-D `|Supported|`= Define to (or 1 if omitted)`| |`-emit-ast`|Supported|`Emit Clang AST files for source inputs`| |`-emit-interface-stubs`|Supported|`Generate Interface Stub Files.`| |`-emit-llvm`|Supported|`Use the LLVM representation for assembler and object files`| |`-emit-merged-ifs`|Supported|`Generate Interface Stub Files, emit merged text not binary.`| |`--emit-static-lib`|Supported|`Enable linker job to emit a static library.`| |`-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang`|Supported|`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`|Supported|`Only run the preprocessor`| |`-fAAPCSBitfieldLoad`|Unsupported|`Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).`| |`-faddrsig`|Supported|`Emit an address-significance table`| |`-faligned-allocation`|Supported|`Enable C++17 aligned allocation functions`| |`-fallow-editor-placeholders`|Supported|`Treat editor placeholders as valid source code`| |`-fallow-fortran-gnu-ext`|Supported|`Allow Fortran GNU extensions`| |`-fansi-escape-codes`|Supported|`Use ANSI escape codes for diagnostics`| |`-fapple-kext`|Unsupported|`Use Apple's kernel extensions ABI`| |`-fapple-link-rtlib`|Unsupported|`Force linking the clang builtins runtime library`| |`-fapple-pragma-pack`|Unsupported|`Enable Apple gcc-compatible #pragma pack handling`| |`-fapplication-extension`|Unsupported|`Restrict code to those available for App Extensions`| |`-fbackslash`|Supported|`Treat backslash as C-style escape character`| |`-fbasic-block-sections=`|Supported|`Place each function's basic blocks in unique sections (ELF Only) : all \| labels \| none \| list=`| |`-fblocks`|Supported|`Enable the 'blocks' language feature`| |`-fborland-extensions`|Unsupported|`Accept non-standard constructs supported by the Borland compiler`| |`-fbuild-session-file=`|Supported|`Use the last modification time of as the build session timestamp`| |`-fbuild-session-timestamp=