OVERVIEW: clang LLVM compiler USAGE: clang [options] file... DEBUG/DEVELOPMENT OPTIONS: -ccc-install-dir Simulate installation in the given directory -ccc-print-bindings Show bindings of tools to actions -gen-cdb-fragment-path Emit a compilation database fragment to the specified directory -gen-reproducer Auto-generates preprocessed source files and a reproduction script -via-file-asm Write assembly to file for input to assemble jobs DRIVER OPTIONS: -ccc-arcmt-check Check for ARC migration issues that need manual handling -ccc-arcmt-migrate Apply modifications and produces temporary files that conform to ARC -ccc-arcmt-modify Apply modifications to files to conform to ARC -ccc-gcc-name Name for native GCC compiler -ccc-objcmt-migrate Apply modifications and produces temporary files to migrate to modern ObjC syntax --driver-mode= Set the driver mode to either 'gcc', 'g++', 'cpp', 'cl' or 'flang' --rsp-quoting= Set the rsp quoting to either 'posix', or 'windows' OPTIONS: -### Print (but do not run) the commands to run for this compilation --amdgpu-arch-tool= Tool used for detecting AMD GPU arch in the system. --analyzer-output Static analyzer report output format (html|plist|plist-multi-file|plist-html|sarif|sarif-html|text). --analyze Run the static analyzer -arcmt-migrate-emit-errors Emit ARC errors even if the migrator can fix them -arcmt-migrate-report-output Output path for the plist report -B Search $prefix$file for executables, libraries, and data files. If $prefix is a directory, search $prefix/$file -b Pass -b to the linker on AIX -canonical-prefixes Use absolute paths for invoking subcommands (default) -cc1-args pass cc1 options to depscan afterwards -ccc-print-phases Dump list of actions to perform -CC Include comments from within macros in preprocessed output -cl-denorms-are-zero OpenCL only. Allow denormals to be flushed to zero. -cl-ext= OpenCL only. Enable or disable OpenCL extensions/optional features. The argument is a comma-separated sequence of one or more extension names, each prefixed by '+' or '-'. -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-no-stdinc OpenCL only. Disables all standard includes containing non-native compiler types and functions. -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= 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-system-dir= System directory for configuration files --config-user-dir= User directory for configuration files --config= Specify 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-feature= Manually specify the CUDA feature to use --cuda-host-only Compile CUDA code for host only. Has no effect on non-CUDA compilations. --cuda-include-ptx= 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= CUDA installation path -cuid= An ID for compilation unit, which should be the same for the same compilation unit but different for different compilation units. It is used to externalize device-side static variables for single source offloading languages CUDA and HIP so that they can be accessed by the host code of the same compilation unit. -cxx-isystem Add directory to the C++ SYSTEM include search path -C Include comments in preprocessed output -c Only run preprocess, compile, and assemble steps -darwin-target-variant-triple Specify the darwin target variant triple -darwin-target-variant Generate code for an additional runtime variant of the deployment target -dD Print macro definitions in -E mode in addition to normal output -dependency-dot Filename to write DOT-formatted header dependencies to -dependency-file 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 -dsym-dir Directory to output dSYM's (if any) to -dump-depscan-tree= emit the CAS identifier for the tree instead of the full -cc1 -dumpdir Use as a prefix to form auxiliary and dump file names -dumpmachine Display the compiler's target processor -dumpversion Display the version of the compiler -D = Define to (or 1 if omitted) --embed-dir= Add directory to embed search path -emit-ast Emit Clang AST files for source inputs --emit-extension-symbol-graphs Generate additional symbol graphs for extended modules. -emit-interface-stubs Generate Interface 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. -emit-symbol-graph Generate Extract API information as a side effect of compilation. --end-no-unused-arguments Start emitting warnings for unused driver arguments --extract-api-ignores= Comma separated list of files containing a new line separated list of API symbols to ignore when extracting API information. -extract-api Extract API information -E Only run the preprocessor -faapcs-bitfield-load Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only). -faapcs-bitfield-width Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only). -faddrsig Emit an address-significance table -falign-loops= N must be a power of two. Align loops to the boundary -faligned-allocation Enable C++17 aligned allocation functions -fallow-editor-placeholders Treat editor placeholders as valid source code -faltivec-src-compat= Source-level compatibility for Altivec vectors (for PowerPC targets). This includes results of vector comparison (scalar for 'xl', vector for 'gcc') as well as behavior when initializing with a scalar (splatting for 'xl', element zero only for 'gcc'). For 'mixed', the compatibility is as 'gcc' for 'vector bool/vector pixel' and as 'xl' for other types. Current default is 'mixed'. -fansi-escape-codes Use ANSI escape codes for diagnostics -fapinotes-cache-path= Does nothing; API notes are no longer cached separately from modules -fapinotes-modules Enable module-based external API notes support -fapinotes-swift-version= Specify the Swift version to use when filtering API notes -fapinotes Enable external API notes support -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 -fapprox-func Allow certain math function calls to be replaced with an approximately equivalent calculation -fassume-nothrow-exception-dtor Assume that exception objects' destructors are non-throwing -fasync-exceptions Enable EH Asynchronous exceptions -fauto-import MinGW specific. Enable code generation support for automatic dllimport, and enable support for it in the linker. Enabled by default. -fbasic-block-address-map Emit the basic block address map section. -fbasic-block-sections= Place each function's basic blocks in unique sections (ELF Only) -fbinutils-version= Produced object files can use all ELF features supported by this binutils version and newer. If -fno-integrated-as is specified, the generated assembly will consider GNU as support. 'none' means that all ELF features can be used, regardless of binutils support. Defaults to 2.26. -fblocks Enable the 'blocks' language feature -fborland-extensions Accept non-standard constructs supported by the Borland compiler -fbranch-target-identification Emit branch target identification instructions for indirect branch destinations -fbuild-session-file= Use the last modification time of as the build session timestamp -fbuild-session-timestamp=