.. ------------------------------------------------------------------- NOTE: This file is automatically generated by running clang-tblgen -gen-opt-docs. Do not edit this file by hand!! ------------------------------------------------------------------- ===================================== Clang command line argument reference ===================================== .. contents:: :local: Introduction ============ This page lists the command line arguments currently supported by the GCC-compatible ``clang`` and ``clang++`` drivers. .. program:: clang .. option:: -B<dir>, --prefix <arg>, --prefix=<arg> Add <dir> to search path for binaries and object files used implicitly .. option:: -F<arg> Add directory to framework include search path .. option:: -ObjC Treat source input files as Objective-C inputs .. program:: clang1 .. option:: -ObjC++ .. program:: clang Treat source input files as Objective-C++ inputs .. option:: -Qunused-arguments Don't emit warning for unused driver arguments .. option:: -Wa,<arg>,<arg2>... Pass the comma separated arguments in <arg> to the assembler .. option:: -Wlarge-by-value-copy=<arg> .. option:: -Xarch\_<arg1> <arg2> .. option:: -Xcuda-fatbinary <arg> Pass <arg> to fatbinary invocation .. option:: -Xcuda-ptxas <arg> Pass <arg> to the ptxas assembler .. option:: -Z<arg> .. option:: -a<arg>, --profile-blocks .. option:: -all\_load .. option:: -allowable\_client <arg> .. option:: --analyze Run the static analyzer .. option:: --analyze-auto .. option:: --analyzer-no-default-checks .. option:: --analyzer-output<arg> Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text). .. option:: -ansi, --ansi .. option:: -arch <arg> .. program:: clang1 .. option:: -arch\_errors\_fatal .. program:: clang .. program:: clang2 .. option:: -arch\_only <arg> .. program:: clang .. option:: -arcmt-migrate-emit-errors Emit ARC errors even if the migrator can fix them .. option:: -arcmt-migrate-report-output <arg> Output path for the plist report .. option:: -bind\_at\_load .. option:: -bundle .. program:: clang1 .. option:: -bundle\_loader <arg> .. program:: clang .. option:: -client\_name<arg> .. option:: -compatibility\_version<arg> .. option:: --constant-cfstrings .. option:: -coverage, --coverage .. option:: --cuda-compile-host-device Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations. .. option:: --cuda-device-only Compile CUDA code for device only .. option:: --cuda-gpu-arch=<arg>, --no-cuda-gpu-arch=<arg> CUDA GPU architecture (e.g. sm\_35). May be specified more than once. .. option:: --cuda-host-only Compile CUDA code for host only. Has no effect on non-CUDA compilations. .. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug Enable device-side debug info generation. Disables ptxas optimizations. .. option:: -current\_version<arg> .. option:: -dead\_strip .. option:: -dependency-dot <arg> Filename to write DOT-formatted header dependencies to .. option:: -dependency-file <arg> Filename (or -) to write dependency output to .. option:: -dumpmachine .. option:: -dumpversion .. option:: --dyld-prefix=<arg>, --dyld-prefix <arg> .. option:: -dylib\_file <arg> .. option:: -dylinker .. program:: clang1 .. option:: -dylinker\_install\_name<arg> .. program:: clang .. option:: -dynamic .. option:: -dynamiclib .. option:: -emit-ast Emit Clang AST files for source inputs .. option:: -exported\_symbols\_list <arg> .. option:: -faligned-new=<arg> .. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals Use approximate transcendental functions .. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero Flush denormal floating point values to zero in CUDA device mode. .. option:: -fheinous-gnu-extensions .. option:: -flat\_namespace .. option:: -fopenmp-targets=<arg1>,<arg2>... Specify comma-separated list of triples OpenMP offloading targets to be supported .. option:: -force\_cpusubtype\_ALL .. program:: clang1 .. option:: -force\_flat\_namespace .. program:: clang .. program:: clang2 .. option:: -force\_load <arg> .. program:: clang .. option:: -framework <arg> .. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath Add -rpath with architecture-specific resource directory to the linker flags .. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg> Use the gcc toolchain at the given directory .. option:: -gcodeview Generate CodeView debug information .. option:: -headerpad\_max\_install\_names<arg> .. option:: -help, --help Display available options .. option:: --help-hidden .. option:: -image\_base <arg> .. option:: -index-header-map Make the next included directory (-I or -F) an indexer header map .. option:: -init <arg> .. option:: -install\_name <arg> .. option:: -keep\_private\_externs .. option:: -lazy\_framework <arg> .. program:: clang1 .. option:: -lazy\_library <arg> .. program:: clang .. option:: -mbig-endian, -EB .. option:: --migrate Run the migrator .. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg> .. option:: -mlinker-version=<arg> .. option:: -mlittle-endian, -EL .. option:: -mllvm <arg> Additional arguments to forward to LLVM's option processing .. option:: -module-dependency-dir <arg> Directory to dump module dependencies to .. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg> .. option:: -multi\_module .. option:: -multiply\_defined <arg> .. program:: clang1 .. option:: -multiply\_defined\_unused <arg> .. program:: clang .. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg> .. option:: --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. .. option:: -no-integrated-cpp, --no-integrated-cpp .. option:: -no\_dead\_strip\_inits\_and\_terms .. option:: -nobuiltininc Disable builtin #include directories .. option:: -nocudainc .. option:: -nocudalib .. option:: -nodefaultlibs .. option:: -nofixprebinding .. option:: -nolibc .. option:: -nomultidefs .. option:: -nopie .. option:: -noprebind .. option:: -noseglinkedit .. option:: -nostartfiles .. option:: -nostdinc, --no-standard-includes .. program:: clang1 .. option:: -nostdinc++ .. program:: clang Disable standard #include directories for the C++ standard library .. option:: -nostdlib, --no-standard-libraries .. option:: -nostdlibinc .. option:: -o<file>, --output <arg>, --output=<arg> Write output to <file> .. option:: -objcmt-atomic-property Make migration to 'atomic' properties .. option:: -objcmt-migrate-all Enable migration to modern ObjC .. option:: -objcmt-migrate-annotation Enable migration to property and method annotations .. option:: -objcmt-migrate-designated-init Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods .. option:: -objcmt-migrate-instancetype Enable migration to infer instancetype for method result type .. option:: -objcmt-migrate-literals Enable migration to modern ObjC literals .. option:: -objcmt-migrate-ns-macros Enable migration to NS\_ENUM/NS\_OPTIONS macros .. option:: -objcmt-migrate-property Enable migration to modern ObjC property .. option:: -objcmt-migrate-property-dot-syntax Enable migration of setter/getter messages to property-dot syntax .. option:: -objcmt-migrate-protocol-conformance Enable migration to add protocol conformance on classes .. option:: -objcmt-migrate-readonly-property Enable migration to modern ObjC readonly property .. option:: -objcmt-migrate-readwrite-property Enable migration to modern ObjC readwrite property .. option:: -objcmt-migrate-subscripting Enable migration to modern ObjC subscripting .. option:: -objcmt-ns-nonatomic-iosonly Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute .. option:: -objcmt-returns-innerpointer-property Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER .. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg> Only modify files with a filename contained in the provided directory path .. option:: -object .. option:: -p, --profile .. option:: -pagezero\_size<arg> .. option:: -pg Enable mcount instrumentation .. option:: -pie .. option:: -pipe, --pipe Use pipes between commands, when possible .. option:: -prebind .. program:: clang1 .. option:: -prebind\_all\_twolevel\_modules .. program:: clang .. option:: -preload .. option:: --print-diagnostic-categories .. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg> Print the full library path of <file> .. option:: -print-ivar-layout Enable Objective-C Ivar layout bitmap print trace .. option:: -print-libgcc-file-name, --print-libgcc-file-name Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a") .. option:: -print-multi-directory, --print-multi-directory .. option:: -print-multi-lib, --print-multi-lib .. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg> Print the full program path of <name> .. option:: -print-resource-dir, --print-resource-dir Print the resource directory pathname .. option:: -print-search-dirs, --print-search-dirs Print the paths used for finding libraries and programs .. option:: -private\_bundle .. option:: -pthread, -no-pthread Support POSIX threads in generated code .. option:: -pthreads .. option:: -rdynamic .. option:: -read\_only\_relocs <arg> .. option:: -relocatable-pch, --relocatable-pch Whether to build a relocatable precompiled header .. option:: -remap .. option:: -rewrite-legacy-objc Rewrite Legacy Objective-C source to C++ .. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg> Compiler runtime library to use .. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd) Save llvm statistics. .. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd) Save intermediate compilation results. .. option:: -sectalign <arg1> <arg2> <arg3> .. option:: -sectcreate <arg1> <arg2> <arg3> .. option:: -sectobjectsymbols <arg1> <arg2> .. option:: -sectorder <arg1> <arg2> <arg3> .. option:: -seg1addr<arg> .. option:: -seg\_addr\_table <arg> .. program:: clang1 .. option:: -seg\_addr\_table\_filename <arg> .. program:: clang .. option:: -segaddr <arg1> <arg2> .. option:: -segcreate <arg1> <arg2> <arg3> .. option:: -seglinkedit .. option:: -segprot <arg1> <arg2> <arg3> .. option:: -segs\_read\_<arg> .. program:: clang1 .. option:: -segs\_read\_only\_addr <arg> .. program:: clang .. program:: clang2 .. option:: -segs\_read\_write\_addr <arg> .. program:: clang .. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg> Serialize compiler diagnostics to a file .. option:: -shared, --shared .. option:: -shared-libasan .. option:: -shared-libgcc .. option:: -single\_module .. option:: -specs=<arg>, --specs=<arg> .. option:: -static, --static .. option:: -static-libgcc .. option:: -static-libstdc++ .. option:: -std-default=<arg> .. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg> C++ standard library to use .. option:: -sub\_library<arg> .. program:: clang1 .. option:: -sub\_umbrella<arg> .. program:: clang .. option:: --sysroot=<arg>, --sysroot <arg> .. option:: --target-help .. option:: --target=<arg>, -target <arg> Generate code for the given target .. option:: -time Time individual commands .. option:: -traditional, --traditional .. option:: -traditional-cpp, --traditional-cpp Enable some traditional CPP emulation .. option:: -twolevel\_namespace .. program:: clang1 .. option:: -twolevel\_namespace\_hints .. program:: clang .. option:: -umbrella <arg> .. option:: -unexported\_symbols\_list <arg> .. option:: -v, --verbose Show commands to run and use verbose output .. option:: --verify-debug-info Verify the binary representation of debug output .. option:: --version .. option:: -w, --no-warnings Suppress all warnings .. option:: -weak-l<arg> .. option:: -weak\_framework <arg> .. program:: clang1 .. option:: -weak\_library <arg> .. program:: clang .. program:: clang2 .. option:: -weak\_reference\_mismatches <arg> .. program:: clang .. option:: -whatsloaded .. option:: -whyload .. option:: -working-directory<arg>, -working-directory=<arg> Resolve file paths relative to the specified directory .. option:: -x<language>, --language <arg>, --language=<arg> Treat subsequent input files as having type <language> .. option:: -y<arg> Actions ======= The action to perform on the input. .. option:: -E, --preprocess Only run the preprocessor .. option:: -S, --assemble Only run preprocess and compilation steps .. option:: -c, --compile Only run preprocess, compile, and assemble steps .. option:: -emit-llvm Use the LLVM representation for assembler and object files .. option:: -fsyntax-only .. option:: -module-file-info Provide information about a particular module file .. option:: --precompile Only precompile the input .. option:: -rewrite-objc Rewrite Objective-C source to C++ .. option:: -verify-pch Load and verify that a pre-compiled header file is not stale Compilation flags ================= Flags controlling the behavior of Clang during compilation. These flags have no effect during actions that do not perform compilation. .. option:: -Xassembler <arg> Pass <arg> to the assembler .. option:: -Xclang <arg> Pass <arg> to the clang compiler .. option:: -fcomment-block-commands=<arg>,<arg2>... Treat each comma separated argument in <arg> as a documentation comment block command .. option:: -fdeclspec, -fno-declspec Allow \_\_declspec as a keyword .. option:: -fdepfile-entry=<arg> .. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info .. option:: -fdiagnostics-format=<arg> .. option:: -fdiagnostics-parseable-fixits Print fix-its in machine parseable form .. option:: -fdiagnostics-print-source-range-info Print source range spans in numeric form .. option:: -fdiagnostics-show-category=<arg> .. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager Enables an experimental new pass manager in LLVM. .. option:: -finline-functions, -fno-inline-functions Inline suitable functions .. option:: -finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline .. option:: -fno-crash-diagnostics Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash .. option:: -fno-sanitize-blacklist Don't use blacklist file for sanitizers .. option:: -fparse-all-comments .. option:: -fsanitize-address-field-padding=<arg> Level of field padding for AddressSanitizer .. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope Enable use-after-scope detection in AddressSanitizer .. option:: -fsanitize-blacklist=<arg> Path to blacklist file for sanitizers .. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso Enable control flow integrity (CFI) checks for cross-DSO calls. .. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>... Specify the type of coverage instrumentation for Sanitizers .. option:: -fsanitize-link-c++-runtime .. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins Enable origins tracking in MemorySanitizer .. program:: clang1 .. option:: -fsanitize-memory-track-origins=<arg> .. program:: clang Enable origins tracking in MemorySanitizer .. option:: -fsanitize-memory-use-after-dtor Enable use-after-destroy detection in MemorySanitizer .. option:: -fsanitize-recover, -fno-sanitize-recover .. program:: clang1 .. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>... .. program:: clang Enable recovery for specified sanitizers .. option:: -fsanitize-stats, -fno-sanitize-stats Enable sanitizer statistics gathering. .. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics Enable atomic operations instrumentation in ThreadSanitizer (default) .. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit Enable function entry/exit instrumentation in ThreadSanitizer (default) .. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access Enable memory access instrumentation in ThreadSanitizer (default) .. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>... Enable trapping for specified sanitizers .. option:: -fsanitize-undefined-strip-path-components=<number> Strip (or keep only, if negative) a given number of path components when emitting check metadata. .. option:: -fsanitize-undefined-trap-on-error, -fno-sanitize-undefined-trap-on-error .. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>... Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks .. option:: --param <arg>, --param=<arg> .. option:: -std=<arg>, --std=<arg>, --std <arg> Language standard to compile for Preprocessor flags ~~~~~~~~~~~~~~~~~~ Flags controlling the behavior of the Clang preprocessor. .. option:: -C, --comments Include comments in preprocessed output .. option:: -CC, --comments-in-macros Include comments from within macros in preprocessed output .. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg> Define <macro> to <value> (or 1 if <value> omitted) .. option:: -H, --trace-includes Show header includes and nesting depth .. option:: -P, --no-line-commands Disable linemarker output in -E mode .. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg> Undefine macro <macro> .. option:: -Wp,<arg>,<arg2>... Pass the comma separated arguments in <arg> to the preprocessor .. option:: -Xpreprocessor <arg> Pass <arg> to the preprocessor Include path management ----------------------- Flags controlling how ``#include``\s are resolved to files. .. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg> Add directory to include search path .. option:: -I-, --include-barrier Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path .. option:: --cuda-path=<arg> CUDA installation path .. option:: -cxx-isystem<directory> Add directory to the C++ SYSTEM include search path .. option:: -fbuild-session-file=<file> Use the last modification time of <file> as the build session timestamp .. option:: -fbuild-session-timestamp=<time since Epoch in seconds> Time when the current build session started .. option:: -fmodules-cache-path=<directory> Specify the module cache path .. option:: -fmodules-disable-diagnostic-validation Disable validation of the diagnostic options when loading the module .. option:: -fmodules-prune-after=<seconds> Specify the interval (in seconds) after which a module file will be considered unused .. option:: -fmodules-prune-interval=<seconds> Specify the interval (in seconds) between attempts to prune the module cache .. option:: -fmodules-user-build-path <directory> Specify the module user build path .. option:: -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 .. option:: -fmodules-validate-system-headers Validate the system headers that a module depends on when loading the module .. option:: -fprebuilt-module-path=<directory> Specify the prebuilt module path .. option:: -i<arg> .. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg> Add directory to AFTER include search path .. option:: -iframework<arg> Add directory to SYSTEM framework search path .. option:: -iframeworkwithsysroot<directory> Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot .. option:: -imacros<file>, --imacros<file>, --imacros=<arg> Include macros from file before parsing .. option:: -include<file>, --include<file>, --include=<arg> Include file before parsing .. option:: -include-pch <file> Include precompiled header file .. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg> Set the -iwithprefix/-iwithprefixbefore prefix .. option:: -iquote<directory> Add directory to QUOTE include search path .. option:: -isysroot<dir> Set the system root directory (usually /) .. option:: -isystem<directory> Add directory to SYSTEM include search path .. option:: -isystem-after<directory> Add directory to end of the SYSTEM include search path .. option:: -ivfsoverlay<arg> Overlay the virtual filesystem described by file over the real file system .. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg> Set directory to SYSTEM include search path with prefix .. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg> Set directory to include search path with prefix .. option:: -iwithsysroot<directory> Add directory to SYSTEM include search path, absolute paths are relative to -isysroot .. option:: --ptxas-path=<arg> Path to ptxas (used for compiling CUDA code) .. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg> Treat all #include paths starting with <prefix> as including a system header. Dependency file generation -------------------------- Flags controlling generation of a dependency file for ``make``-like build systems. .. option:: -M, --dependencies Like -MD, but also implies -E and writes to stdout by default .. option:: -MD, --write-dependencies Write a depfile containing user and system headers .. option:: -MF<file> Write depfile output from -MMD, -MD, -MM, or -M to <file> .. option:: -MG, --print-missing-file-dependencies Add missing headers to depfile .. option:: -MJ<arg> Write a compilation database entry per input .. option:: -MM, --user-dependencies Like -MMD, but also implies -E and writes to stdout by default .. option:: -MMD, --write-user-dependencies Write a depfile containing user headers .. option:: -MP Create phony target for each dependency (other than main file) .. option:: -MQ<arg> Specify name of main file output to quote in depfile .. option:: -MT<arg> Specify name of main file output in depfile .. option:: -MV Use NMake/Jom format for the depfile Dumping preprocessor state -------------------------- Flags allowing the state of the preprocessor to be dumped in various ways. .. option:: -d .. program:: clang1 .. option:: -d<arg> .. program:: clang .. option:: -dA .. option:: -dD Print macro definitions in -E mode in addition to normal output .. option:: -dI Print include directives in -E mode in addition to normal output .. option:: -dM Print macro definitions in -E mode instead of normal output Diagnostic flags ~~~~~~~~~~~~~~~~ Flags controlling which warnings, errors, and remarks Clang will generate. See the :doc:`full list of warning and remark flags <DiagnosticsReference>`. .. option:: -R<remark> Enable the specified remark .. option:: -Rpass-analysis=<arg> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression .. option:: -Rpass-missed=<arg> Report missed transformations by optimization passes whose name matches the given POSIX regular expression .. option:: -Rpass=<arg> Report transformations performed by optimization passes whose name matches the given POSIX regular expression .. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg> Enable the specified warning .. option:: -Wdeprecated, -Wno-deprecated Enable warnings for deprecated constructs and define \_\_DEPRECATED .. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg> Target-independent compilation options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. option:: -Wframe-larger-than=<arg> .. option:: -fPIC, -fno-PIC .. option:: -fPIE, -fno-PIE .. option:: -faccess-control, -fno-access-control .. program:: clang1 .. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation .. program:: clang Enable C++17 aligned allocation functions .. option:: -fallow-unsupported .. option:: -faltivec, -fno-altivec .. option:: -fansi-escape-codes Use ANSI escape codes for diagnostics .. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables Use Apple's kernel extensions ABI .. option:: -fapple-pragma-pack, -fno-apple-pragma-pack Enable Apple gcc-compatible #pragma pack handling .. option:: -fapplication-extension, -fno-application-extension Restrict code to those available for App Extensions .. option:: -fasm, -fno-asm .. option:: -fasm-blocks, -fno-asm-blocks .. option:: -fassociative-math, -fno-associative-math .. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new .. option:: -fast .. option:: -fastcp .. option:: -fastf .. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables .. option:: -fautolink, -fno-autolink .. option:: -fblocks, -fno-blocks Enable the 'blocks' language feature .. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg> .. option:: -fborland-extensions, -fno-borland-extensions Accept non-standard constructs supported by the Borland compiler .. option:: -fbracket-depth=<arg> .. option:: -fbuiltin, -fno-builtin .. option:: -fbuiltin-module-map Load the clang builtins module map file. .. option:: -fcaret-diagnostics, -fno-caret-diagnostics .. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg> .. option:: -fcolor-diagnostics, -fno-color-diagnostics Use colors in diagnostics .. option:: -fcommon, -fno-common .. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg> .. option:: -fconstant-cfstrings, -fno-constant-cfstrings .. option:: -fconstant-string-class=<arg> .. option:: -fconstexpr-backtrace-limit=<arg> .. option:: -fconstexpr-depth=<arg> .. option:: -fconstexpr-steps=<arg> .. option:: -fcoroutines-ts, -fno-coroutines-ts Enable support for the C++ Coroutines TS .. option:: -fcoverage-mapping, -fno-coverage-mapping Generate coverage mapping to enable code coverage analysis .. option:: -fcreate-profile .. option:: -fcxx-exceptions, -fno-cxx-exceptions Enable C++ exceptions .. option:: -fcxx-modules, -fno-cxx-modules .. option:: -fdata-sections, -fno-data-sections Place each data in its own section (ELF Only) .. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling Emit extra debug info to make sample profile more accurate. .. option:: -fdebug-macro, -fno-debug-macro Emit macro debug information .. option:: -fdebug-pass-arguments .. option:: -fdebug-pass-structure .. option:: -fdebug-prefix-map=<arg> remap file source paths in debug info .. option:: -fdebug-types-section, -fno-debug-types-section Place debug types in their own section (ELF Only) .. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing Parse templated function definitions at the end of the translation unit .. option:: -fdenormal-fp-math=<arg> .. option:: -fdiagnostics-absolute-paths Print absolute paths in diagnostics .. option:: -fdiagnostics-color, -fno-diagnostics-color .. program:: clang1 .. option:: -fdiagnostics-color=<arg> .. program:: clang .. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness Enable profile hotness information in diagnostic line .. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack Display include stacks for diagnostic notes .. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option Print option name with mappable diagnostics .. option:: -fdiagnostics-show-template-tree Print a template comparison tree for differing templates .. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers Allow '$' in identifiers .. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm .. option:: -felide-constructors, -fno-elide-constructors .. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols .. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker) Embed LLVM bitcode (option: off, all, bitcode, marker) .. option:: -femit-all-decls Emit all declarations, even if unused .. option:: -femulated-tls, -fno-emulated-tls Use emutls functions to access thread\_local variables .. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg> .. option:: -ferror-limit=<arg> .. option:: -fexceptions, -fno-exceptions Enable support for exception handling .. option:: -fexec-charset=<arg> .. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg> .. option:: -ffast-math, -fno-fast-math Allow aggressive, lossy floating-point optimizations .. option:: -ffinite-math-only, -fno-finite-math-only .. option:: -ffor-scope, -fno-for-scope .. option:: -ffp-contract=<arg> Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma, default) \| off (never fuse) .. option:: -ffreestanding Assert that the compilation takes place in a freestanding environment .. option:: -ffunction-sections, -fno-function-sections Place each function in its own section (ELF Only) .. option:: -fgnu-inline-asm, -fno-gnu-inline-asm .. option:: -fgnu-keywords, -fno-gnu-keywords Allow GNU-extension keywords regardless of language standard .. option:: -fgnu-runtime Generate output compatible with the standard GNU Objective-C runtime .. option:: -fgnu89-inline, -fno-gnu89-inline Use the gnu89 inline semantics .. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities .. option:: -fhonor-nans, -fno-honor-nans .. option:: -fhosted .. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps Implicitly search the file system for module map files. .. option:: -fimplicit-modules, -fno-implicit-modules .. option:: -finput-charset=<arg> .. option:: -finstrument-functions Generate calls to instrument function entry and exit .. option:: -fintegrated-as, -fno-integrated-as, -integrated-as Enable the integrated assembler .. option:: -fjump-tables, -fno-jump-tables .. option:: -flax-vector-conversions, -fno-lax-vector-conversions .. option:: -flimited-precision=<arg> .. option:: -flto, -fno-lto Enable LTO in 'full' mode .. option:: -flto-jobs=<arg> Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected) .. program:: clang1 .. option:: -flto=<arg> .. program:: clang Set LTO mode to either 'full' or 'thin' .. option:: -fmacro-backtrace-limit=<arg> .. option:: -fmath-errno, -fno-math-errno Require math functions to indicate errors by setting errno .. option:: -fmax-type-align=<arg> Specify the maximum alignment to enforce on pointers lacking an explicit alignment .. option:: -fmerge-all-constants, -fno-merge-all-constants .. option:: -fmessage-length=<arg> .. option:: -fmodule-file-deps, -fno-module-file-deps .. option:: -fmodule-file=<file> Load this precompiled module file .. option:: -fmodule-map-file=<file> Load this module map file .. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg> Specify the name of the module to build .. option:: -fmodules, -fno-modules Enable the 'modules' language feature .. option:: -fmodules-decluse, -fno-modules-decluse Require declaration of modules used within a module .. option:: -fmodules-ignore-macro=<arg> Ignore the definition of the given macro when building and loading modules .. option:: -fmodules-search-all, -fno-modules-search-all Search even non-imported modules to resolve references .. option:: -fmodules-strict-decluse Like -fmodules-decluse but requires all headers to be in modules .. option:: -fmodules-ts Enable support for the C++ Modules TS .. option:: -fms-compatibility, -fno-ms-compatibility Enable full Microsoft Visual C++ compatibility .. option:: -fms-compatibility-version=<arg> Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default)) .. option:: -fms-extensions, -fno-ms-extensions Accept some non-standard constructs supported by the Microsoft compiler .. option:: -fms-memptr-rep=<arg> .. option:: -fms-volatile<arg> .. option:: -fmsc-version=<arg> Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default)) .. option:: -fmudflap .. option:: -fmudflapth .. option:: -fnested-functions .. option:: -fnew-alignment=<align>, -fnew-alignment <arg> Specifies the largest alignment guaranteed by '::operator new(size\_t)' .. option:: -fnext-runtime .. option:: -fno-builtin-<arg> Disable implicit builtin knowledge of a specific function .. option:: -fno-elide-type Do not elide types when printing diagnostics .. option:: -fno-max-type-align .. option:: -fno-operator-names Do not treat C++ operator name keywords as synonyms for operators .. option:: -fno-strict-modules-decluse .. option:: -fno-working-directory .. option:: -fnoopenmp-use-tls .. option:: -fobjc-abi-version=<arg> .. option:: -fobjc-arc, -fno-objc-arc Synthesize retain and release calls for Objective-C pointers .. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions Use EH-safe code when synthesizing retains and releases in -fobjc-arc .. option:: -fobjc-exceptions, -fno-objc-exceptions Enable Objective-C exceptions .. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type .. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch .. option:: -fobjc-link-runtime .. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi .. option:: -fobjc-nonfragile-abi-version=<arg> .. option:: -fobjc-runtime=<arg> Specify the target Objective-C runtime kind and version .. option:: -fobjc-sender-dependent-dispatch .. option:: -fobjc-weak, -fno-objc-weak Enable ARC-style weak references in Objective-C .. option:: -fomit-frame-pointer, -fno-omit-frame-pointer .. option:: -fopenmp, -fno-openmp .. option:: -fopenmp-dump-offload-linker-script .. option:: -fopenmp-use-tls .. option:: -fopenmp-version=<arg> .. program:: clang1 .. option:: -fopenmp=<arg> .. program:: clang .. option:: -foperator-arrow-depth=<arg> .. option:: -foptimization-record-file=<arg> Specify the file name of any generated YAML optimization record .. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls .. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg> .. option:: -fpack-struct, -fno-pack-struct .. program:: clang1 .. option:: -fpack-struct=<arg> .. program:: clang Specify the default maximum struct packing alignment .. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings Recognize and construct Pascal-style string literals .. option:: -fpcc-struct-return Override the default ABI to return all structs on the stack .. option:: -fpch-preprocess .. option:: -fpic, -fno-pic .. option:: -fpie, -fno-pie .. option:: -fplugin=<dsopath> Load the named plugin (dynamic shared object) .. option:: -fpreserve-as-comments, -fno-preserve-as-comments .. option:: -fprofile-arcs, -fno-profile-arcs .. option:: -fprofile-dir=<arg> .. option:: -fprofile-generate, -fno-profile-generate Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var) .. program:: clang1 .. option:: -fprofile-generate=<directory> .. program:: clang Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var) .. option:: -fprofile-instr-generate, -fno-profile-instr-generate Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var) .. program:: clang1 .. option:: -fprofile-instr-generate=<file> .. program:: clang Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var) .. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use .. program:: clang1 .. option:: -fprofile-instr-use=<arg> .. program:: clang Use instrumentation data for profile-guided optimization .. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use .. program:: clang1 .. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg> .. program:: clang Enable sample-based profile guided optimizations .. program:: clang1 .. option:: -fprofile-use=<pathname> .. program:: clang Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>. .. option:: -freciprocal-math, -fno-reciprocal-math Allow division operations to be reassociated .. option:: -freg-struct-return Override the default ABI to return small structs in registers .. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args Enable C++17 relaxed template template argument matching .. option:: -freroll-loops, -fno-reroll-loops Turn on loop reroller .. option:: -fretain-comments-from-system-headers .. option:: -frewrite-includes, -fno-rewrite-includes .. option:: -frewrite-map-file <arg> .. program:: clang1 .. option:: -frewrite-map-file=<arg> .. program:: clang .. option:: -fropi, -fno-ropi .. option:: -frtti, -fno-rtti .. option:: -frwpi, -fno-rwpi .. option:: -fsave-optimization-record, -fno-save-optimization-record Generate a YAML optimization record file .. option:: -fshort-enums, -fno-short-enums Allocate to an enum type only as many bytes as it needs for the declared range of possible values .. option:: -fshort-wchar, -fno-short-wchar Force wchar\_t to be a short unsigned int .. option:: -fshow-column, -fno-show-column .. option:: -fshow-overloads=<arg> Which overload candidates to show when overload resolution fails: best\|all; defaults to all .. option:: -fshow-source-location, -fno-show-source-location .. option:: -fsignaling-math, -fno-signaling-math .. option:: -fsigned-bitfields .. option:: -fsigned-char, -fno-signed-char, --signed-char .. option:: -fsigned-zeros, -fno-signed-zeros .. option:: -fsized-deallocation, -fno-sized-deallocation Enable C++14 sized global deallocation functions .. option:: -fsjlj-exceptions Use SjLj style exceptions .. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize Enable the superword-level parallelism vectorization passes .. option:: -fslp-vectorize-aggressive, -fno-slp-vectorize-aggressive Enable the BB vectorization passes .. option:: -fspell-checking, -fno-spell-checking .. option:: -fspell-checking-limit=<arg> .. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining Place debug types in their own section (ELF Only) .. option:: -fsplit-stack .. option:: -fstack-protector, -fno-stack-protector Enable stack protectors for functions potentially vulnerable to stack smashing .. option:: -fstack-protector-all Force the usage of stack protectors for all functions .. option:: -fstack-protector-strong Use a strong heuristic to apply stack protectors to functions .. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug Emit full debug info for all types used by the program .. option:: -fstrict-aliasing, -fno-strict-aliasing .. option:: -fstrict-enums, -fno-strict-enums Enable optimizations based on the strict definition of an enum's value range .. option:: -fstrict-overflow, -fno-strict-overflow .. option:: -fstrict-return, -fno-strict-return Always treat control flow paths that fall off the end of a non-void function as unreachable .. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers Enable optimizations based on the strict rules for overwriting polymorphic C++ objects .. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa .. option:: -ftabstop=<arg> .. option:: -ftemplate-backtrace-limit=<arg> .. option:: -ftemplate-depth-<arg> .. option:: -ftemplate-depth=<arg> .. option:: -ftest-coverage .. option:: -fthinlto-index=<arg> Perform ThinLTO importing using provided function summary index .. option:: -fthreadsafe-statics, -fno-threadsafe-statics .. option:: -ftime-report .. option:: -ftls-model=<arg> .. option:: -ftrap-function=<arg> Issue call to specified function rather than a trap instruction .. option:: -ftrapping-math, -fno-trapping-math .. option:: -ftrapv Trap on integer overflow .. option:: -ftrapv-handler <arg> .. program:: clang1 .. option:: -ftrapv-handler=<function name> .. program:: clang Specify the function to be called on overflow .. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs Process trigraph sequences .. option:: -funique-section-names, -fno-unique-section-names Use unique names for text and data sections (ELF Only) .. option:: -funit-at-a-time, -fno-unit-at-a-time .. option:: -funroll-loops, -fno-unroll-loops Turn on loop unroller .. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations .. option:: -funsigned-bitfields .. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char .. option:: -funwind-tables, -fno-unwind-tables .. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit .. option:: -fuse-init-array, -fno-use-init-array Use .init\_array instead of .ctors .. option:: -fuse-ld=<arg> .. option:: -fuse-line-directives, -fno-use-line-directives .. option:: -fveclib=<arg> Use the given vector functions library .. option:: -fvectorize, -fno-vectorize, -ftree-vectorize Enable the loop vectorization passes .. option:: -fverbose-asm, -fno-verbose-asm .. option:: -fvisibility-inlines-hidden Give inline C++ member functions default visibility by default .. option:: -fvisibility-ms-compat Give global types 'default' visibility and global functions and variables 'hidden' visibility by default .. option:: -fvisibility=<arg> Set the default symbol visibility for all global declarations .. option:: -fwhole-program-vtables, -fno-whole-program-vtables Enables whole-program vtable optimization. Requires -flto .. option:: -fwrapv, -fno-wrapv Treat signed integer overflow as two's complement .. option:: -fwritable-strings Store string literals as writable data .. option:: -fxray-always-instrument=<arg> Filename defining the whitelist for imbuing the 'always instrument' XRay attribute. .. option:: -fxray-instruction-threshold<arg> .. program:: clang1 .. option:: -fxray-instruction-threshold=<arg> .. program:: clang Sets the minimum function size to instrument with XRay .. option:: -fxray-instrument, -fno-xray-instrument Generate XRay instrumentation sleds on function entry and exit .. option:: -fxray-never-instrument=<arg> Filename defining the whitelist for imbuing the 'never instrument' XRay attribute. .. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss .. option:: -fzvector, -fno-zvector, -mzvector Enable System z vector language extension .. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic .. option:: -pedantic-errors, --pedantic-errors OpenCL flags ------------ .. option:: -cl-denorms-are-zero OpenCL only. Allow denormals to be flushed to zero. .. option:: -cl-fast-relaxed-math OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_. .. option:: -cl-finite-math-only OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf. .. option:: -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. .. option:: -cl-kernel-arg-info OpenCL only. Generate kernel argument metadata. .. option:: -cl-mad-enable OpenCL only. Allow use of less precise MAD computations in the generated binary. .. option:: -cl-no-signed-zeros OpenCL only. Allow use of less precise no signed zeros computations in the generated binary. .. option:: -cl-opt-disable OpenCL only. This option disables all optimizations. By default optimizations are enabled. .. option:: -cl-single-precision-constant OpenCL only. Treat double precision floating-point constant as single precision constant. .. option:: -cl-std=<arg> OpenCL language standard to compile for. .. option:: -cl-strict-aliasing OpenCL only. This option is added for compatibility with OpenCL 1.0. .. option:: -cl-unsafe-math-optimizations OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable. Target-dependent compilation options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. option:: -G<size>, -G=<arg>, -msmall-data-threshold=<arg> Put objects of at most <size> bytes into small data section (MIPS / Hexagon) .. option:: -m16 .. option:: -m32 .. option:: -m64 .. option:: -mabi=<arg> .. option:: -mabicalls, -mno-abicalls Enable SVR4-style position-independent code (Mips only) .. option:: -malign-double Align doubles to two words in structs (x86 only) .. option:: -march=<arg> .. option:: -masm=<arg> .. option:: -mbackchain, -mno-backchain Link stack frames through backchain on System Z .. option:: -mcheck-zero-division, -mno-check-zero-division .. option:: -mcmodel=<arg> .. option:: -mcompact-branches=<arg> .. option:: -mconsole<arg> .. option:: -mcpu=<arg>, -mv4 (equivalent to -mcpu=hexagonv4), -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62) .. option:: -mdll<arg> .. option:: -mdouble-float .. option:: -mdsp, -mno-dsp .. option:: -mdspr2, -mno-dspr2 .. option:: -mdynamic-no-pic<arg> .. option:: -meabi <arg> Set EABI type, e.g. 4, 5 or gnu (default depends on triple) .. option:: -mfentry Insert calls to fentry at function entry (x86 only) .. option:: -mfloat-abi=<arg> .. option:: -mfp32 Use 32-bit floating point registers (MIPS only) .. option:: -mfp64 Use 64-bit floating point registers (MIPS only) .. option:: -mfpmath=<arg> .. option:: -mfpu=<arg> .. option:: -mglobal-merge, -mno-global-merge Enable merging of globals .. option:: -mhard-float .. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg> .. option:: -miamcu, -mno-iamcu Use Intel MCU ABI .. option:: -mimplicit-float, -mno-implicit-float .. option:: -mimplicit-it=<arg> .. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible (integrated-as) Emit an object file which can be used with an incremental linker .. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg> .. option:: -mips16 .. option:: -mkernel .. option:: -mldc1-sdc1, -mno-ldc1-sdc1 .. option:: -mlong-calls, -mno-long-calls Generate branches with extended addressability, usually via indirect jumps. .. option:: -mmacosx-version-min=<arg> Set Mac OS X deployment target .. option:: -mmicromips, -mno-micromips .. option:: -mms-bitfields, -mno-ms-bitfields Set the default structure layout to be compatible with the Microsoft compiler standard .. option:: -mmsa, -mno-msa Enable MSA ASE (MIPS only) .. option:: -mnan=<arg> .. option:: -mno-mips16 .. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer Omit frame pointer setup for leaf functions .. option:: -moslib=<arg> .. option:: -mpie-copy-relocations, -mno-pie-copy-relocations Use copy relocations support for PIE builds .. option:: -mqdsp6-compat Enable hexagon-qdsp6 backward compatibility .. option:: -mrecip .. program:: clang1 .. option:: -mrecip=<arg1>,<arg2>... .. program:: clang .. option:: -mred-zone, -mno-red-zone .. option:: -mregparm=<arg> .. option:: -mrelax-all, -mno-relax-all (integrated-as) Relax all machine instructions .. option:: -mrtd, -mno-rtd Make StdCall calling convention the default .. option:: -msingle-float .. option:: -msoft-float, -mno-soft-float Use software floating point .. option:: -mstack-alignment=<arg> Set the stack alignment .. option:: -mstack-probe-size=<arg> Set the stack probe size .. option:: -mstackrealign, -mno-stackrealign Force realign the stack at entry to every function .. option:: -mthread-model <arg> The thread model to use, e.g. posix, single (posix by default) .. option:: -mthreads<arg> .. option:: -mthumb, -mno-thumb .. option:: -mtune=<arg> .. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg> .. option:: -municode<arg> .. option:: -mvx, -mno-vx .. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings .. option:: -mwatchos-version-min=<arg> .. option:: -mwindows<arg> .. option:: -mx32 .. option:: -mxgot, -mno-xgot AARCH64 ------- .. option:: -ffixed-x18 Reserve the x18 register (AArch64 only) .. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769 Workaround Cortex-A53 erratum 835769 (AArch64 only) .. option:: -mgeneral-regs-only Generate code which only uses the general purpose registers (AArch64 only) AMDGPU ------ ARM --- .. option:: -ffixed-r9 Reserve the r9 register (ARM only) .. option:: -mcrc Allow use of CRC instructions (ARM only) .. option:: -mexecute-only, -mno-execute-only, -mpure-code Disallow generation of data access to code sections (ARM only) .. option:: -mno-movt Disallow use of movt/movw pairs (ARM only) .. option:: -mno-neg-immediates Disallow converting instructions with negative immediates to their negation or inversion. .. option:: -mnocrc Disallow use of CRC instructions (ARM only) .. option:: -mrestrict-it, -mno-restrict-it Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode. .. option:: -munaligned-access, -mno-unaligned-access Allow memory accesses to be unaligned (AArch32/AArch64 only) Hexagon ------- .. option:: -mhvx, -mno-hvx Enable Hexagon Vector eXtensions .. option:: -mhvx-double, -mno-hvx-double Enable Hexagon Double Vector eXtensions .. option:: -mieee-rnd-near PowerPC ------- .. option:: -maltivec, -mno-altivec .. option:: -mcmpb, -mno-cmpb .. option:: -mcrbits, -mno-crbits .. option:: -mcrypto, -mno-crypto .. option:: -mdirect-move, -mno-direct-move .. option:: -mfloat128, -mno-float128 .. option:: -mfprnd, -mno-fprnd .. option:: -mhtm, -mno-htm .. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors .. option:: -misel, -mno-isel .. option:: -mlongcall, -mno-longcall .. option:: -mmfocrf, -mmfcrf, -mno-mfocrf .. option:: -mpopcntd, -mno-popcntd .. option:: -mpower8-vector, -mno-power8-vector .. option:: -mpower9-vector, -mno-power9-vector .. option:: -mqpx, -mno-qpx .. option:: -mvsx, -mno-vsx WebAssembly ----------- .. option:: -msimd128, -mno-simd128 X86 --- .. option:: -m3dnow, -mno-3dnow .. option:: -m3dnowa, -mno-3dnowa .. option:: -madx, -mno-adx .. option:: -maes, -mno-aes .. option:: -mavx, -mno-avx .. option:: -mavx2, -mno-avx2 .. option:: -mavx512bw, -mno-avx512bw .. option:: -mavx512cd, -mno-avx512cd .. option:: -mavx512dq, -mno-avx512dq .. option:: -mavx512er, -mno-avx512er .. option:: -mavx512f, -mno-avx512f .. option:: -mavx512ifma, -mno-avx512ifma .. option:: -mavx512pf, -mno-avx512pf .. option:: -mavx512vbmi, -mno-avx512vbmi .. option:: -mavx512vl, -mno-avx512vl .. option:: -mbmi, -mno-bmi .. option:: -mbmi2, -mno-bmi2 .. option:: -mclflushopt, -mno-clflushopt .. option:: -mclwb, -mno-clwb .. option:: -mclzero, -mno-clzero .. option:: -mcx16, -mno-cx16 .. option:: -mf16c, -mno-f16c .. option:: -mfma, -mno-fma .. option:: -mfma4, -mno-fma4 .. option:: -mfsgsbase, -mno-fsgsbase .. option:: -mfxsr, -mno-fxsr .. option:: -mlzcnt, -mno-lzcnt .. option:: -mmmx, -mno-mmx .. option:: -mmovbe, -mno-movbe .. option:: -mmpx, -mno-mpx .. option:: -mmwaitx, -mno-mwaitx .. option:: -mpclmul, -mno-pclmul .. option:: -mpku, -mno-pku .. option:: -mpopcnt, -mno-popcnt .. option:: -mprefetchwt1, -mno-prefetchwt1 .. option:: -mprfchw, -mno-prfchw .. option:: -mrdrnd, -mno-rdrnd .. option:: -mrdseed, -mno-rdseed .. option:: -mrtm, -mno-rtm .. option:: -msgx, -mno-sgx .. option:: -msha, -mno-sha .. option:: -msse, -mno-sse .. option:: -msse2, -mno-sse2 .. option:: -msse3, -mno-sse3 .. option:: -msse4.1, -mno-sse4.1 .. program:: clang1 .. option:: -msse4.2, -mno-sse4.2, -msse4 .. program:: clang .. option:: -msse4a, -mno-sse4a .. option:: -mssse3, -mno-ssse3 .. option:: -mtbm, -mno-tbm .. option:: -mx87, -m80387, -mno-x87 .. option:: -mxop, -mno-xop .. option:: -mxsave, -mno-xsave .. option:: -mxsavec, -mno-xsavec .. option:: -mxsaveopt, -mno-xsaveopt .. option:: -mxsaves, -mno-xsaves Optimization level ~~~~~~~~~~~~~~~~~~ Flags controlling how much optimization should be performed. .. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg> .. option:: -Ofast<arg> Debug information generation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Flags controlling how much and what kind of debug information should be generated. Kind and level of debug information ----------------------------------- .. option:: -g, --debug, --debug=<arg> Generate source-level debug information .. option:: -gdwarf-2 Generate source-level debug information with dwarf version 2 .. option:: -gdwarf-3 Generate source-level debug information with dwarf version 3 .. option:: -gdwarf-4, -gdwarf Generate source-level debug information with dwarf version 4 .. option:: -gdwarf-5 Generate source-level debug information with dwarf version 5 .. option:: -gfull .. option:: -gused Debug level ___________ .. option:: -g0 .. option:: -g2 .. option:: -g3 .. option:: -ggdb0 .. option:: -ggdb1 .. option:: -ggdb2 .. option:: -ggdb3 .. option:: -gline-tables-only, -g1, -gmlt Emit debug line number tables only .. option:: -gmodules Generate debug info with external references to clang modules or precompiled headers Debugger to tune debug information for ______________________________________ .. option:: -ggdb .. option:: -glldb .. option:: -gsce Debug information flags ----------------------- .. option:: -gcolumn-info, -gno-column-info .. option:: -gdwarf-aranges .. option:: -ggnu-pubnames .. option:: -grecord-gcc-switches, -gno-record-gcc-switches .. option:: -gsplit-dwarf .. option:: -gstrict-dwarf, -gno-strict-dwarf Static analyzer flags ===================== Flags controlling the behavior of the Clang Static Analyzer. .. option:: -Xanalyzer <arg> Pass <arg> to the static analyzer Fortran compilation flags ========================= Flags that will be passed onto the ``gfortran`` compiler when Clang is given a Fortran input. .. option:: -A<arg>, --assert <arg>, --assert=<arg> .. option:: -A-<arg> .. option:: -J<arg> .. option:: -cpp .. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination .. option:: -falign-commons, -fno-align-commons .. option:: -fall-intrinsics, -fno-all-intrinsics .. option:: -fautomatic, -fno-automatic .. option:: -fbackslash, -fno-backslash .. option:: -fbacktrace, -fno-backtrace .. option:: -fblas-matmul-limit=<arg> .. option:: -fbounds-check, -fno-bounds-check .. option:: -fcheck-array-temporaries, -fno-check-array-temporaries .. option:: -fcheck=<arg> .. option:: -fcoarray=<arg> .. option:: -fconvert=<arg> .. option:: -fcray-pointer, -fno-cray-pointer .. option:: -fd-lines-as-code, -fno-d-lines-as-code .. option:: -fd-lines-as-comments, -fno-d-lines-as-comments .. option:: -fdefault-double-8, -fno-default-double-8 .. option:: -fdefault-integer-8, -fno-default-integer-8 .. option:: -fdefault-real-8, -fno-default-real-8 .. option:: -fdollar-ok, -fno-dollar-ok .. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized .. option:: -fdump-fortran-original, -fno-dump-fortran-original .. option:: -fdump-parse-tree, -fno-dump-parse-tree .. option:: -fexternal-blas, -fno-external-blas .. option:: -ff2c, -fno-f2c .. option:: -ffixed-form, -fno-fixed-form .. option:: -ffixed-line-length-<arg> .. option:: -ffpe-trap=<arg> .. option:: -ffree-form, -fno-free-form .. option:: -ffree-line-length-<arg> .. option:: -ffrontend-optimize, -fno-frontend-optimize .. option:: -fimplicit-none, -fno-implicit-none .. option:: -finit-character=<arg> .. option:: -finit-integer=<arg> .. option:: -finit-local-zero, -fno-init-local-zero .. option:: -finit-logical=<arg> .. option:: -finit-real=<arg> .. option:: -finteger-4-integer-8, -fno-integer-4-integer-8 .. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path .. option:: -fmax-array-constructor=<arg> .. option:: -fmax-errors=<arg> .. option:: -fmax-identifier-length, -fno-max-identifier-length .. option:: -fmax-stack-var-size=<arg> .. option:: -fmax-subrecord-length=<arg> .. option:: -fmodule-private, -fno-module-private .. option:: -fpack-derived, -fno-pack-derived .. option:: -fprotect-parens, -fno-protect-parens .. option:: -frange-check, -fno-range-check .. option:: -freal-4-real-10, -fno-real-4-real-10 .. option:: -freal-4-real-16, -fno-real-4-real-16 .. option:: -freal-4-real-8, -fno-real-4-real-8 .. option:: -freal-8-real-10, -fno-real-8-real-10 .. option:: -freal-8-real-16, -fno-real-8-real-16 .. option:: -freal-8-real-4, -fno-real-8-real-4 .. option:: -frealloc-lhs, -fno-realloc-lhs .. option:: -frecord-marker=<arg> .. option:: -frecursive, -fno-recursive .. option:: -frepack-arrays, -fno-repack-arrays .. option:: -fsecond-underscore, -fno-second-underscore .. option:: -fsign-zero, -fno-sign-zero .. option:: -fstack-arrays, -fno-stack-arrays .. option:: -funderscoring, -fno-underscoring .. option:: -fwhole-file, -fno-whole-file .. option:: -nocpp .. option:: -static-libgfortran Linker flags ============ Flags that are passed on to the linker .. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg> Add directory to library search path .. option:: -Mach .. option:: -T<script> Specify <script> as linker script .. option:: -Tbss<addr> Set starting address of BSS to <addr> .. option:: -Tdata<addr> Set starting address of BSS to <addr> .. option:: -Ttext<addr> Set starting address of BSS to <addr> .. option:: -Wl,<arg>,<arg2>... Pass the comma separated arguments in <arg> to the linker .. option:: -X .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg> Pass <arg> to the linker .. program:: clang1 .. option:: -Z .. program:: clang .. option:: -e<arg>, --entry .. option:: -filelist <arg> .. option:: -l<arg> .. option:: -r .. option:: -rpath <arg> .. option:: -s .. option:: -t .. option:: -u<arg>, --force-link <arg>, --force-link=<arg> .. option:: -undef undef all system defines .. option:: -undefined<arg>, --no-undefined .. option:: -z <arg> Pass -z <arg> to the linker