3787 lines
91 KiB
ReStructuredText
3787 lines
91 KiB
ReStructuredText
..
|
|
-------------------------------------------------------------------
|
|
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:: -Qn, -fno-ident
|
|
|
|
Do not emit metadata containing compiler name and version
|
|
|
|
.. option:: -Qunused-arguments
|
|
|
|
Don't emit warning for unused driver arguments
|
|
|
|
.. option:: -Qy, -fident
|
|
|
|
Emit metadata containing compiler name and version
|
|
|
|
.. option:: -Wa,<arg>,<arg2>...
|
|
|
|
Pass the comma separated arguments in <arg> to the assembler
|
|
|
|
.. option:: -Wlarge-by-value-copy=<arg>
|
|
|
|
.. option:: -Xarch\_<arg1> <arg2>
|
|
|
|
.. program:: clang1
|
|
.. option:: -Xarch\_device <arg>
|
|
.. program:: clang
|
|
|
|
Pass <arg> to the CUDA/HIP device compilation
|
|
|
|
.. program:: clang2
|
|
.. option:: -Xarch\_host <arg>
|
|
.. program:: clang
|
|
|
|
Pass <arg> to the CUDA/HIP host compilation
|
|
|
|
.. option:: -Xcuda-fatbinary <arg>
|
|
|
|
Pass <arg> to fatbinary invocation
|
|
|
|
.. option:: -Xcuda-ptxas <arg>
|
|
|
|
Pass <arg> to the ptxas assembler
|
|
|
|
.. option:: -Xopenmp-target <arg>
|
|
|
|
Pass <arg> to the target offloading toolchain.
|
|
|
|
.. program:: clang1
|
|
.. option:: -Xopenmp-target=<triple> <arg>
|
|
.. program:: clang
|
|
|
|
Pass <arg> to the target offloading toolchain identified by <triple>.
|
|
|
|
.. option:: -Z<arg>
|
|
|
|
.. option:: -a<arg>, --profile-blocks
|
|
|
|
.. option:: -all\_load
|
|
|
|
.. option:: -allowable\_client <arg>
|
|
|
|
.. option:: --analyze
|
|
|
|
Run the static analyzer
|
|
|
|
.. option:: --analyzer-no-default-checks
|
|
|
|
.. option:: --analyzer-output<arg>
|
|
|
|
Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|sarif\|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:: --autocomplete=<arg>
|
|
|
|
.. option:: -bind\_at\_load
|
|
|
|
.. option:: -bundle
|
|
|
|
.. program:: clang1
|
|
.. option:: -bundle\_loader <arg>
|
|
.. program:: clang
|
|
|
|
.. option:: -client\_name<arg>
|
|
|
|
.. option:: -compatibility\_version<arg>
|
|
|
|
.. option:: --config <arg>
|
|
|
|
Specifies configuration file
|
|
|
|
.. option:: --constant-cfstrings
|
|
|
|
.. 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-host-only
|
|
|
|
Compile CUDA code for host only. Has no effect on non-CUDA compilations.
|
|
|
|
.. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
|
|
|
|
Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
|
|
|
|
.. 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:: -dsym-dir<dir>
|
|
|
|
Directory to output dSYM's (if any) 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:: --emit-static-lib
|
|
|
|
Enable linker job to emit a static library.
|
|
|
|
.. option:: -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
|
|
|
|
.. option:: -exported\_symbols\_list <arg>
|
|
|
|
.. option:: -faligned-new=<arg>
|
|
|
|
.. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero
|
|
|
|
Flush denormal floating point values to zero in CUDA device mode.
|
|
|
|
.. option:: -ffixed-r19
|
|
|
|
Reserve register r19 (Hexagon only)
|
|
|
|
.. 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:: -fsanitize-system-blacklist=<arg>
|
|
|
|
Path to system blacklist file for sanitizers
|
|
|
|
.. option:: -fsystem-module
|
|
|
|
Build this module as a system module. Only used with -emit-module
|
|
|
|
.. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>
|
|
|
|
Use the gcc toolchain at the given directory
|
|
|
|
.. option:: -gcodeview
|
|
|
|
Generate CodeView debug information
|
|
|
|
.. option:: -gcodeview-ghash, -gno-codeview-ghash
|
|
|
|
Emit type record hashes in a .debug$H section
|
|
|
|
.. option:: -ginline-line-tables, -gno-inline-line-tables
|
|
|
|
.. option:: --gpu-instrument-lib=<arg>
|
|
|
|
Instrument device library for HIP, which is a LLVM bitcode containing \_\_cyg\_profile\_func\_enter and \_\_cyg\_profile\_func\_exit
|
|
|
|
.. option:: --gpu-max-threads-per-block=<arg>
|
|
|
|
Default max threads per block for kernel launch bounds for HIP
|
|
|
|
.. option:: -headerpad\_max\_install\_names<arg>
|
|
|
|
.. option:: -help, --help
|
|
|
|
Display available options
|
|
|
|
.. option:: --help-hidden
|
|
|
|
Display help for hidden options
|
|
|
|
.. option:: --hip-link
|
|
|
|
Link clang-offload-bundler bundles for HIP
|
|
|
|
.. option:: --hip-version=<arg>
|
|
|
|
HIP version in the format of major.minor.patch
|
|
|
|
.. option:: -ibuiltininc
|
|
|
|
Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
|
|
|
|
.. 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:: -interface-stub-version=<arg>
|
|
|
|
.. option:: -keep\_private\_externs
|
|
|
|
.. option:: -lazy\_framework <arg>
|
|
|
|
.. program:: clang1
|
|
.. option:: -lazy\_library <arg>
|
|
.. program:: clang
|
|
|
|
.. option:: -mbig-endian, -EB
|
|
|
|
.. option:: -mbranch-protection=<arg>
|
|
|
|
Enforce targets of indirect branches and function returns
|
|
|
|
.. option:: -mharden-sls=<arg>
|
|
|
|
Select straight-line speculation hardening scope
|
|
|
|
.. 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:: -nodefaultlibs
|
|
|
|
.. option:: -nofixprebinding
|
|
|
|
.. option:: -nogpuinc, -nocudainc
|
|
|
|
.. option:: -nogpulib, -nocudalib
|
|
|
|
Do not link device library for CUDA/HIP device compilation
|
|
|
|
.. option:: -nolibc
|
|
|
|
.. option:: -nomultidefs
|
|
|
|
.. option:: -nopie, -no-pie
|
|
|
|
.. option:: -noprebind
|
|
|
|
.. option:: -noprofilelib
|
|
|
|
.. option:: -noseglinkedit
|
|
|
|
.. option:: -nostdinc, --no-standard-includes
|
|
|
|
.. program:: clang1
|
|
.. option:: -nostdinc++
|
|
.. program:: clang
|
|
|
|
Disable standard #include directories for the C++ standard library
|
|
|
|
.. option:: -nostdlib++
|
|
|
|
.. 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:: --offload-arch=<arg>, --cuda-gpu-arch=<arg>, --no-offload-arch=<arg>
|
|
|
|
CUDA offloading device architecture (e.g. sm\_35), or HIP offloading target ID in the form of a device architecture followed by target ID features delimited by a colon. Each target ID feature is a pre-defined string followed by a plus or minus sign (e.g. gfx908:xnack+:sram-ecc-). May be specified more than once.
|
|
|
|
.. option:: -p, --profile
|
|
|
|
.. option:: -pagezero\_size<arg>
|
|
|
|
.. option:: -pg
|
|
|
|
Enable mcount instrumentation
|
|
|
|
.. 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-effective-triple, --print-effective-triple
|
|
|
|
Print the effective target triple
|
|
|
|
.. 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:: -print-target-triple, --print-target-triple
|
|
|
|
Print the normalized target triple
|
|
|
|
.. option:: -print-targets, --print-targets
|
|
|
|
Print the registered targets
|
|
|
|
.. option:: -private\_bundle
|
|
|
|
.. option:: -pthread, -no-pthread
|
|
|
|
Support POSIX threads in generated code
|
|
|
|
.. option:: -pthreads
|
|
|
|
.. 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-libgcc
|
|
|
|
.. option:: -shared-libsan, -shared-libasan
|
|
|
|
Dynamically link the sanitizer runtime
|
|
|
|
.. option:: -single\_module
|
|
|
|
.. option:: -static-libgcc
|
|
|
|
.. option:: -static-libsan
|
|
|
|
Statically link the sanitizer runtime
|
|
|
|
.. option:: -static-libstdc++
|
|
|
|
.. option:: -static-openmp
|
|
|
|
Use the static host OpenMP runtime while linking.
|
|
|
|
.. 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:: -unwindlib=<arg>, --unwindlib=<arg>
|
|
|
|
Unwind library to use
|
|
|
|
.. option:: -v, --verbose
|
|
|
|
Show commands to run and use verbose output
|
|
|
|
.. option:: --verify-debug-info
|
|
|
|
Verify the binary representation of debug output
|
|
|
|
.. option:: --version
|
|
|
|
Print version information
|
|
|
|
.. 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-interface-stubs
|
|
|
|
Generate Interface Stub Files.
|
|
|
|
.. option:: -emit-llvm
|
|
|
|
Use the LLVM representation for assembler and object files
|
|
|
|
.. option:: -emit-merged-ifs
|
|
|
|
Generate Interface Stub Files, emit merged text not binary.
|
|
|
|
.. 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:: -fclang-abi-compat=<version>
|
|
|
|
Attempt to match the ABI of Clang <version>
|
|
|
|
.. option:: -fcomment-block-commands=<arg>,<arg2>...
|
|
|
|
Treat each comma separated argument in <arg> as a documentation comment block command
|
|
|
|
.. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
|
|
|
|
Require member pointer base types to be complete if they would be significant under the Microsoft ABI
|
|
|
|
.. option:: -fcrash-diagnostics-dir=<arg>
|
|
|
|
.. 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:: -fdiscard-value-names, -fno-discard-value-names
|
|
|
|
Discard value names in LLVM IR
|
|
|
|
.. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager
|
|
|
|
Enables an experimental new pass manager in LLVM.
|
|
|
|
.. option:: -fexperimental-strict-floating-point
|
|
|
|
Enables experimental strict floating point in LLVM.
|
|
|
|
.. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
|
|
|
|
Use separate accesses for consecutive bitfield runs with legal widths and alignments.
|
|
|
|
.. option:: -fglobal-isel, -fexperimental-isel, -fno-global-isel
|
|
|
|
Enables the global instruction selector
|
|
|
|
.. 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:: -frecord-command-line, -fno-record-command-line, -frecord-gcc-switches
|
|
|
|
.. option:: -fsanitize-address-field-padding=<arg>
|
|
|
|
Level of field padding for AddressSanitizer
|
|
|
|
.. option:: -fsanitize-address-globals-dead-stripping
|
|
|
|
Enable linker dead stripping of globals in AddressSanitizer
|
|
|
|
.. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
|
|
|
|
Enable poisoning array cookies when using custom operator new\[\] in AddressSanitizer
|
|
|
|
.. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
|
|
|
|
Enable use-after-scope detection in AddressSanitizer
|
|
|
|
.. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
|
|
|
|
Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
|
|
|
|
.. option:: -fsanitize-blacklist=<arg>
|
|
|
|
Path to blacklist file for sanitizers
|
|
|
|
.. option:: -fsanitize-cfi-canonical-jump-tables, -fno-sanitize-cfi-canonical-jump-tables
|
|
|
|
Make the jump table addresses canonical in the symbol table
|
|
|
|
.. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
|
|
|
|
Enable control flow integrity (CFI) checks for cross-DSO calls.
|
|
|
|
.. option:: -fsanitize-cfi-icall-generalize-pointers
|
|
|
|
Generalize pointers in CFI indirect call type signature checks
|
|
|
|
.. option:: -fsanitize-coverage-allowlist=<arg>, -fsanitize-coverage-whitelist=<arg>
|
|
|
|
Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
|
|
|
|
.. option:: -fsanitize-coverage-blocklist=<arg>, -fsanitize-coverage-blacklist=<arg>
|
|
|
|
Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
|
|
|
|
.. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
|
|
|
|
Specify the type of coverage instrumentation for Sanitizers
|
|
|
|
.. option:: -fsanitize-hwaddress-abi=<arg>
|
|
|
|
Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
|
|
|
|
.. option:: -fsanitize-link-c++-runtime, -fno-sanitize-link-c++-runtime
|
|
|
|
.. option:: -fsanitize-link-runtime, -fno-sanitize-link-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, -fno-sanitize-memory-use-after-dtor
|
|
|
|
Enable use-after-destroy detection in MemorySanitizer
|
|
|
|
.. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
|
|
|
|
.. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>..., -fsanitize-recover (equivalent to -fsanitize-recover=all)
|
|
|
|
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>..., -fsanitize-trap (equivalent to -fsanitize-trap=all), -fsanitize-undefined-trap-on-error (equivalent to -fsanitize-trap=undefined)
|
|
|
|
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=<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:: -moutline, -mno-outline
|
|
|
|
Enable function outlining (AArch64 only)
|
|
|
|
.. option:: --param <arg>, --param=<arg>
|
|
|
|
.. option:: -print-supported-cpus, --print-supported-cpus, -mcpu=?, -mtune=?
|
|
|
|
Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
|
|
|
|
.. 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
|
|
|
|
.. option:: -fmacro-prefix-map=<arg>
|
|
|
|
remap file source paths in predefined preprocessor macros
|
|
|
|
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. For C++ input, if
|
|
there are multiple -I options, these directories are searched
|
|
in the order they are given before the standard system directories
|
|
are searched. If the same directory is in the SYSTEM include search
|
|
paths, for example if also specified with -isystem, the -I option
|
|
will be ignored
|
|
|
|
.. option:: -I-, --include-barrier
|
|
|
|
Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
|
|
|
|
.. option:: --cuda-path-ignore-env
|
|
|
|
Ignore environment variables to detect CUDA installation
|
|
|
|
.. 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:: -fmodule-file=\[<name>=\]<file>
|
|
|
|
Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
|
|
|
|
.. 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, -fno-modules-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:: -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:: --libomptarget-nvptx-bc-path=<arg>
|
|
|
|
Path to libomptarget-nvptx bitcode library
|
|
|
|
.. option:: --ptxas-path=<arg>
|
|
|
|
Path to ptxas (used for compiling CUDA code)
|
|
|
|
.. option:: --rocm-path=<arg>
|
|
|
|
ROCm installation path, used for finding and automatically linking required bitcode libraries.
|
|
|
|
.. program:: clang1
|
|
.. option:: -stdlib++-isystem<directory>
|
|
.. program:: clang
|
|
|
|
Use directory as the C++ standard library include path
|
|
|
|
.. 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:: -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:: -faddrsig, -fno-addrsig
|
|
|
|
Emit an address-significance table
|
|
|
|
.. option:: -falign-functions, -fno-align-functions
|
|
|
|
.. program:: clang1
|
|
.. option:: -falign-functions=<arg>
|
|
.. program:: clang
|
|
|
|
.. program:: clang1
|
|
.. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
|
|
.. program:: clang
|
|
|
|
Enable C++17 aligned allocation functions
|
|
|
|
.. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
|
|
|
|
Treat editor placeholders as valid source code
|
|
|
|
.. 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-link-rtlib
|
|
|
|
Force linking the clang builtins runtime library
|
|
|
|
.. 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:: -fbasic-block-sections=<arg>
|
|
|
|
Generate labels for each basic block or place each basic block or a subset of basic blocks in its own section.
|
|
|
|
.. 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:: -fc++-static-destructors, -fno-c++-static-destructors
|
|
|
|
.. option:: -fcaret-diagnostics, -fno-caret-diagnostics
|
|
|
|
.. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
|
|
|
|
Instrument control-flow architecture protection. Options: return, branch, full, none.
|
|
|
|
.. option:: -fcf-runtime-abi=<arg>
|
|
|
|
.. option:: -fchar8\_t, -fno-char8\_t
|
|
|
|
Enable C++ builtin type char8\_t
|
|
|
|
.. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
|
|
|
|
.. option:: -fcolor-diagnostics, -fno-color-diagnostics
|
|
|
|
Enable colors in diagnostics
|
|
|
|
.. option:: -fcommon, -fno-common
|
|
|
|
Place uninitialized global variables in a common block
|
|
|
|
.. 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:: -fconvergent-functions
|
|
|
|
Assume functions may be convergent
|
|
|
|
.. 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:: -fcs-profile-generate
|
|
|
|
Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
|
|
|
|
.. program:: clang1
|
|
.. option:: -fcs-profile-generate=<directory>
|
|
.. program:: clang
|
|
|
|
Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
|
|
|
|
.. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
|
|
|
|
Use approximate transcendental functions
|
|
|
|
.. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
|
|
|
|
Use 32-bit pointers for accessing const/local/shared address spaces
|
|
|
|
.. 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
|
|
|
|
.. option:: -fdebug-compilation-dir <arg>, -fdebug-compilation-dir=<arg>
|
|
|
|
The compilation directory to embed in the debug info.
|
|
|
|
.. option:: -fdebug-default-version=<arg>
|
|
|
|
Default DWARF version to use, if a -g option caused DWARF debug info to be produced
|
|
|
|
.. 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-ranges-base-address, -fno-debug-ranges-base-address
|
|
|
|
Use DWARF base address selection entries in .debug\_ranges
|
|
|
|
.. option:: -fdebug-types-section, -fno-debug-types-section
|
|
|
|
Place debug types in their own section (ELF Only)
|
|
|
|
.. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
|
|
|
|
Parse templated function definitions at the end of the translation unit
|
|
|
|
.. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
|
|
|
|
Treat usage of null pointers as undefined behavior (default)
|
|
|
|
.. 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-hotness-threshold=<number>
|
|
|
|
Prevent optimization remarks from being output if they do not have at least this profile count
|
|
|
|
.. 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:: -fdigraphs, -fno-digraphs
|
|
|
|
Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
|
|
|
|
.. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
|
|
|
|
Allow '$' in identifiers
|
|
|
|
.. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
|
|
|
|
Enable '\[\[\]\]' attributes in all C and C++ language modes
|
|
|
|
.. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
|
|
|
|
.. option:: -fdwarf-exceptions
|
|
|
|
Use DWARF style exceptions
|
|
|
|
.. option:: -felide-constructors, -fno-elide-constructors
|
|
|
|
.. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
|
|
|
|
.. option:: -feliminate-unused-debug-types, -fno-eliminate-unused-debug-types
|
|
|
|
Do not emit debug info for defined but unused types
|
|
|
|
.. 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:: -fenable-matrix
|
|
|
|
Enable matrix data type and related builtin functions
|
|
|
|
.. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
|
|
|
|
.. option:: -ferror-limit=<arg>
|
|
|
|
.. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
|
|
|
|
.. option:: -fexceptions, -fno-exceptions
|
|
|
|
Enable support for exception handling
|
|
|
|
.. option:: -fexec-charset=<arg>
|
|
|
|
.. option:: -fexperimental-new-constant-interpreter
|
|
|
|
Enable the experimental new constant interpreter
|
|
|
|
.. option:: -fexperimental-relative-c++-abi-vtables, -fno-experimental-relative-c++-abi-vtables
|
|
|
|
Use the experimental C++ class ABI for classes with virtual tables
|
|
|
|
.. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
|
|
|
|
.. option:: -ffast-math, -fno-fast-math
|
|
|
|
Allow aggressive, lossy floating-point optimizations
|
|
|
|
.. option:: -ffile-prefix-map=<arg>
|
|
|
|
remap file source paths in debug info and predefined preprocessor macros
|
|
|
|
.. option:: -ffinite-math-only, -fno-finite-math-only
|
|
|
|
.. option:: -ffixed-point, -fno-fixed-point
|
|
|
|
Enable fixed point types
|
|
|
|
.. option:: -ffor-scope, -fno-for-scope
|
|
|
|
.. option:: -fforce-dwarf-frame, -fno-force-dwarf-frame
|
|
|
|
Always emit a debug frame section
|
|
|
|
.. option:: -fforce-emit-vtables, -fno-force-emit-vtables
|
|
|
|
Emits more virtual tables to improve devirtualization
|
|
|
|
.. option:: -fforce-enable-int128, -fno-force-enable-int128
|
|
|
|
Enable support for int128\_t type
|
|
|
|
.. option:: -ffp-contract=<arg>
|
|
|
|
Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma) \| off (never fuse). Default is 'fast' for CUDA/HIP and 'on' otherwise.
|
|
|
|
.. option:: -ffp-exception-behavior=<arg>
|
|
|
|
Specifies the exception behavior of floating-point operations.
|
|
|
|
.. option:: -ffp-model=<arg>
|
|
|
|
Controls the semantics of floating-point calculations.
|
|
|
|
.. 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
|
|
|
|
.. 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:: -fgnuc-version=<arg>
|
|
|
|
Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
|
|
|
|
.. option:: -fgpu-allow-device-init, -fno-gpu-allow-device-init
|
|
|
|
Allow device side init function in HIP
|
|
|
|
.. option:: -fgpu-defer-diag, -fno-gpu-defer-diag
|
|
|
|
Defer host/device related diagnostic messages for CUDA/HIP
|
|
|
|
.. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
|
|
|
|
Generate relocatable device code, also known as separate compilation mode
|
|
|
|
.. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
|
|
|
|
Use new kernel launching API for HIP
|
|
|
|
.. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
|
|
|
|
.. option:: -fhonor-nans, -fno-honor-nans
|
|
|
|
.. option:: -fhosted
|
|
|
|
.. option:: -fignore-exceptions
|
|
|
|
Enable support for ignoring exception handling constructs
|
|
|
|
.. 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-function-entry-bare
|
|
|
|
Instrument function entry only, after inlining, without arguments to the instrumentation call
|
|
|
|
.. option:: -finstrument-functions
|
|
|
|
Generate calls to instrument function entry and exit
|
|
|
|
.. option:: -finstrument-functions-after-inlining
|
|
|
|
Like -finstrument-functions, but insert the calls after inlining
|
|
|
|
.. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
|
|
|
|
Enable the integrated assembler
|
|
|
|
.. option:: -fintegrated-cc1, -fno-integrated-cc1
|
|
|
|
Run cc1 in-process
|
|
|
|
.. option:: -fjump-tables, -fno-jump-tables
|
|
|
|
Use jump tables for lowering switches
|
|
|
|
.. option:: -fkeep-static-consts, -fno-keep-static-consts
|
|
|
|
Keep static const variables if unused
|
|
|
|
.. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
|
|
|
|
Enable implicit vector bit-casts
|
|
|
|
.. 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-tokens=<arg>
|
|
|
|
Max total number of preprocessed tokens for -Wmax-tokens.
|
|
|
|
.. option:: -fmax-type-align=<arg>
|
|
|
|
Specify the maximum alignment to enforce on pointers lacking an explicit alignment
|
|
|
|
.. option:: -fmemory-profile, -fno-memory-profile
|
|
|
|
Enable heap memory profiling
|
|
|
|
.. option:: -fmerge-all-constants, -fno-merge-all-constants
|
|
|
|
Allow merging of constants
|
|
|
|
.. option:: -fmessage-length=<arg>
|
|
|
|
Format message diagnostics so that they fit within N columns
|
|
|
|
.. option:: -fmodule-file-deps, -fno-module-file-deps
|
|
|
|
.. 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:: -fmodules-validate-input-files-content
|
|
|
|
Validate PCM input files based on content if mtime differs
|
|
|
|
.. 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
|
|
|
|
.. 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-access-control, -fno-no-access-control
|
|
|
|
.. 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-temp-file
|
|
|
|
Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
|
|
|
|
.. option:: -fno-working-directory
|
|
|
|
.. option:: -fno\_modules-validate-input-files-content
|
|
|
|
.. program:: clang1
|
|
.. option:: -fno\_pch-validate-input-files-content
|
|
.. program:: clang
|
|
|
|
.. option:: -fnoxray-link-deps
|
|
|
|
.. 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-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
|
|
|
|
.. 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
|
|
|
|
Parse OpenMP pragmas and generate parallel code.
|
|
|
|
.. option:: -fopenmp-simd, -fno-openmp-simd
|
|
|
|
Emit OpenMP code only for SIMD-based constructs.
|
|
|
|
.. option:: -fopenmp-version=<arg>
|
|
|
|
.. program:: clang1
|
|
.. option:: -fopenmp=<arg>
|
|
.. program:: clang
|
|
|
|
.. option:: -foperator-arrow-depth=<arg>
|
|
|
|
.. option:: -foptimization-record-file=<file>
|
|
|
|
Specify the output name of the file containing the optimization remarks. Implies -fsave-optimization-record. On Darwin platforms, this cannot be used with multiple -arch <arch> options.
|
|
|
|
.. option:: -foptimization-record-passes=<regex>
|
|
|
|
Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
|
|
|
|
.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
|
|
|
|
.. option:: -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)
|
|
|
|
.. 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:: -fpass-plugin=<dsopath>
|
|
|
|
Load pass plugin from a dynamic shared object file (only with new pass manager).
|
|
|
|
.. option:: -fpatchable-function-entry=<N,M>
|
|
|
|
Generate M NOPs before function entry and N-M NOPs after function entry
|
|
|
|
.. option:: -fpcc-struct-return
|
|
|
|
Override the default ABI to return all structs on the stack
|
|
|
|
.. option:: -fpch-codegen, -fno-pch-codegen
|
|
|
|
Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
|
|
|
|
.. option:: -fpch-debuginfo, -fno-pch-debuginfo
|
|
|
|
Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
|
|
|
|
.. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
|
|
|
|
Instantiate templates already while building a PCH
|
|
|
|
.. option:: -fpch-preprocess
|
|
|
|
.. option:: -fpch-validate-input-files-content
|
|
|
|
Validate PCH input files based on content if mtime differs
|
|
|
|
.. option:: -fpic, -fno-pic
|
|
|
|
.. option:: -fpie, -fno-pie
|
|
|
|
.. option:: -fplt, -fno-plt
|
|
|
|
.. 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-exclude-files=<arg>
|
|
|
|
Instrument only functions from files where names don't match all the regexes separated by a semi-colon
|
|
|
|
.. option:: -fprofile-filter-files=<arg>
|
|
|
|
Instrument only functions from files where names match any regex separated by a semi-colon
|
|
|
|
.. option:: -fprofile-generate, -fno-profile-generate
|
|
|
|
Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
|
|
|
|
.. 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-remapping-file=<file>, -fprofile-remapping-file <arg>
|
|
|
|
Use the remappings described in <file> to match the profile data against names in the program
|
|
|
|
.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
|
|
|
|
Specifies that the sample profile is accurate. If the sample
|
|
profile is accurate, callsites without profile samples are marked
|
|
as cold. Otherwise, treat callsites without profile samples as if
|
|
we have no profile
|
|
|
|
.. 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
|
|
|
|
.. option:: -fprofile-update=<method>
|
|
|
|
Set update method of profile counters (atomic,prefer-atomic,single)
|
|
|
|
.. 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>.
|
|
|
|
.. program:: clang1
|
|
.. option:: -fprofile-list=<file>
|
|
.. program:: clang
|
|
|
|
Filename defining the list of functions/files to instrument. The file uses the sanitizer special case list format.
|
|
|
|
.. 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:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
|
|
|
|
Use atexit or \_\_cxa\_atexit to register global destructors
|
|
|
|
.. 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-imports, -fno-rewrite-imports
|
|
|
|
.. option:: -frewrite-includes, -fno-rewrite-includes
|
|
|
|
.. option:: -frewrite-map-file <arg>
|
|
|
|
.. program:: clang1
|
|
.. option:: -frewrite-map-file=<arg>
|
|
.. program:: clang
|
|
|
|
.. option:: -fropi, -fno-ropi
|
|
|
|
Generate read-only position independent code (ARM only)
|
|
|
|
.. option:: -frounding-math, -fno-rounding-math
|
|
|
|
.. option:: -frtti, -fno-rtti
|
|
|
|
.. option:: -frtti-data, -fno-rtti-data
|
|
|
|
.. option:: -frwpi, -fno-rwpi
|
|
|
|
Generate read-write position independent code (ARM only)
|
|
|
|
.. option:: -fsave-optimization-record, -fno-save-optimization-record
|
|
|
|
Generate a YAML optimization record file
|
|
|
|
.. program:: clang1
|
|
.. option:: -fsave-optimization-record=<format>
|
|
.. program:: clang
|
|
|
|
Generate an optimization record file in a specific format
|
|
|
|
.. option:: -fseh-exceptions
|
|
|
|
Use SEH style exceptions
|
|
|
|
.. option:: -fsemantic-interposition, -fno-semantic-interposition
|
|
|
|
.. 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
|
|
|
|
char is signed
|
|
|
|
.. 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:: -fspell-checking, -fno-spell-checking
|
|
|
|
.. option:: -fspell-checking-limit=<arg>
|
|
|
|
.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
|
|
|
|
Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
|
|
|
|
.. option:: -fsplit-lto-unit, -fno-split-lto-unit
|
|
|
|
Enables splitting of the LTO unit
|
|
|
|
.. option:: -fsplit-machine-functions, -fno-split-machine-functions
|
|
|
|
Enable late function splitting using profile information (x86 ELF)
|
|
|
|
.. option:: -fsplit-stack
|
|
|
|
.. option:: -fstack-clash-protection, -fno-stack-clash-protection
|
|
|
|
Enable stack clash protection
|
|
|
|
.. option:: -fstack-protector, -fno-stack-protector
|
|
|
|
Enable stack protectors for some functions vulnerable to stack smashing. This uses a loose heuristic which considers functions vulnerable if they contain a char (or 8bit integer) array or constant sized calls to alloca , which are of greater size than ssp-buffer-size (default: 8 bytes). All variable sized calls to alloca are considered vulnerable. A function with a stack protector has a guard value added to the stack frame that is checked on function exit. The guard value must be positioned in the stack frame such that a buffer overflow from a vulnerable variable will overwrite the guard value before overwriting the function's return address. The reference stack guard value is stored in a global variable.
|
|
|
|
.. option:: -fstack-protector-all
|
|
|
|
Enable stack protectors for all functions
|
|
|
|
.. option:: -fstack-protector-strong
|
|
|
|
Enable stack protectors for some functions vulnerable to stack smashing. Compared to -fstack-protector, this uses a stronger heuristic that includes functions containing arrays of any size (and any type), as well as any calls to alloca or the taking of an address from a local variable
|
|
|
|
.. option:: -fstack-size-section, -fno-stack-size-section
|
|
|
|
Emit section containing metadata on function stack sizes
|
|
|
|
.. 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-float-cast-overflow, -fno-strict-float-cast-overflow
|
|
|
|
Assume that overflowing float-to-int casts are undefined (default)
|
|
|
|
.. option:: -fstrict-overflow, -fno-strict-overflow
|
|
|
|
.. option:: -fstrict-return, -fno-strict-return
|
|
|
|
.. 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:: -fsymbol-partition=<arg>
|
|
|
|
.. option:: -ftabstop=<arg>
|
|
|
|
.. option:: -ftemplate-backtrace-limit=<arg>
|
|
|
|
.. option:: -ftemplate-depth-<arg>
|
|
|
|
.. option:: -ftemplate-depth=<arg>
|
|
|
|
.. option:: -ftest-coverage, -fno-test-coverage
|
|
|
|
.. option:: -fthin-link-bitcode=<arg>
|
|
|
|
Write minimized bitcode to <file> for the ThinLTO thin link only
|
|
|
|
.. option:: -fthinlto-index=<arg>
|
|
|
|
Perform ThinLTO importing using provided function summary index
|
|
|
|
.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
|
|
|
|
.. option:: -ftime-report
|
|
|
|
.. option:: -ftime-trace
|
|
|
|
|
|
Turn on time profiler. Generates JSON file based on output filename. Results
|
|
can be analyzed with chrome://tracing or `Speedscope App
|
|
<https://www.speedscope.app>`_ for flamegraph visualization.
|
|
|
|
.. option:: -ftime-trace-granularity=<arg>
|
|
|
|
Minimum time granularity (in microseconds) traced by time profiler
|
|
|
|
.. 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:: -ftrivial-auto-var-init-stop-after=<arg>
|
|
|
|
Stop initializing trivial automatic stack variables after the specified number of instances
|
|
|
|
.. option:: -ftrivial-auto-var-init=<arg>
|
|
|
|
Initialize trivial automatic stack variables: uninitialized (default) \| pattern
|
|
|
|
.. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
|
|
|
|
Use unique names for basic block sections (ELF Only)
|
|
|
|
.. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
|
|
|
|
Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
|
|
|
|
.. option:: -funique-section-names, -fno-unique-section-names
|
|
|
|
.. 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
|
|
|
|
.. option:: -fuse-ld=<arg>
|
|
|
|
.. option:: -fuse-line-directives, -fno-use-line-directives
|
|
|
|
Use #line in preprocessed output
|
|
|
|
.. option:: -fvalidate-ast-input-files-content
|
|
|
|
Compute and store the hash of input files used to build an AST. Files with mismatching mtime's are considered valid if both contents is identical
|
|
|
|
.. option:: -fveclib=<arg>
|
|
|
|
Use the given vector functions library
|
|
|
|
.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
|
|
|
|
Enable the loop vectorization passes
|
|
|
|
.. option:: -fverbose-asm, -dA, -fno-verbose-asm
|
|
|
|
Generate verbose assembly output
|
|
|
|
.. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
|
|
|
|
Enables dead virtual function elimination optimization. Requires -flto=full
|
|
|
|
.. option:: -fvisibility-global-new-delete-hidden
|
|
|
|
Give global C++ operator new and delete declarations hidden visibility
|
|
|
|
.. option:: -fvisibility-inlines-hidden
|
|
|
|
Give inline C++ member functions hidden visibility by default
|
|
|
|
.. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
|
|
|
|
When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden 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:: -fwasm-exceptions
|
|
|
|
Use WebAssembly style exceptions
|
|
|
|
.. 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-emit-customevents, -fno-xray-always-emit-customevents
|
|
|
|
Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
|
|
|
|
.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
|
|
|
|
Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
|
|
|
|
.. option:: -fxray-always-instrument=<arg>
|
|
|
|
DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
|
|
|
|
.. option:: -fxray-attr-list=<arg>
|
|
|
|
Filename defining the list of functions/types for imbuing XRay attributes.
|
|
|
|
.. option:: -fxray-function-groups=<arg>
|
|
|
|
Only instrument 1 of N groups
|
|
|
|
.. option:: -fxray-function-index, -fno-xray-function-index
|
|
|
|
.. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
|
|
|
|
Don't instrument functions with loops unless they also meet the minimum function size
|
|
|
|
.. 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-instrumentation-bundle=<arg>
|
|
|
|
Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'. 'function' includes both 'function-entry' and 'function-exit'.
|
|
|
|
.. option:: -fxray-link-deps
|
|
|
|
Tells clang to add the link dependencies for XRay.
|
|
|
|
.. option:: -fxray-modes=<arg>
|
|
|
|
List of modes to link in by default into XRay instrumented binaries.
|
|
|
|
.. option:: -fxray-never-instrument=<arg>
|
|
|
|
DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
|
|
|
|
.. option:: -fxray-selected-function-group=<arg>
|
|
|
|
When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
|
|
|
|
.. 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-uniform-work-group-size
|
|
|
|
OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
|
|
|
|
.. option:: -cl-unsafe-math-optimizations
|
|
|
|
OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
|
|
|
|
SYCL flags
|
|
----------
|
|
.. option:: -fsycl, -fno-sycl
|
|
|
|
Enable SYCL kernels compilation for device
|
|
|
|
.. option:: -sycl-std=<arg>
|
|
|
|
SYCL language standard to compile for.
|
|
|
|
Target-dependent compilation options
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
|
|
|
|
Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
|
|
|
|
.. option:: -ffixed-x1
|
|
|
|
Reserve the x1 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x10
|
|
|
|
Reserve the x10 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x11
|
|
|
|
Reserve the x11 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x12
|
|
|
|
Reserve the x12 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x13
|
|
|
|
Reserve the x13 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x14
|
|
|
|
Reserve the x14 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x15
|
|
|
|
Reserve the x15 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x16
|
|
|
|
Reserve the x16 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x17
|
|
|
|
Reserve the x17 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x18
|
|
|
|
Reserve the x18 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x19
|
|
|
|
Reserve the x19 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x2
|
|
|
|
Reserve the x2 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x20
|
|
|
|
Reserve the x20 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x21
|
|
|
|
Reserve the x21 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x22
|
|
|
|
Reserve the x22 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x23
|
|
|
|
Reserve the x23 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x24
|
|
|
|
Reserve the x24 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x25
|
|
|
|
Reserve the x25 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x26
|
|
|
|
Reserve the x26 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x27
|
|
|
|
Reserve the x27 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x28
|
|
|
|
Reserve the x28 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x29
|
|
|
|
Reserve the x29 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x3
|
|
|
|
Reserve the x3 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x30
|
|
|
|
Reserve the x30 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x31
|
|
|
|
Reserve the x31 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x4
|
|
|
|
Reserve the x4 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x5
|
|
|
|
Reserve the x5 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x6
|
|
|
|
Reserve the x6 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x7
|
|
|
|
Reserve the x7 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x8
|
|
|
|
Reserve the x8 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -ffixed-x9
|
|
|
|
Reserve the x9 register (AArch64/RISC-V only)
|
|
|
|
.. option:: -m16
|
|
|
|
.. option:: -m32
|
|
|
|
.. option:: -m64
|
|
|
|
.. option:: -mabi=<arg>
|
|
|
|
.. option:: -maix-struct-return
|
|
|
|
Return all structs in memory (PPC32 only)
|
|
|
|
.. option:: -malign-branch-boundary=<arg>
|
|
|
|
Specify the boundary's size to align branches
|
|
|
|
.. option:: -malign-branch=<arg1>,<arg2>...
|
|
|
|
Specify types of branches to align
|
|
|
|
.. 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:: -mbranches-within-32B-boundaries
|
|
|
|
Align selected branches (fused, jcc, jmp) within 32-byte boundary
|
|
|
|
.. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
|
|
|
|
.. option:: -mcode-object-v3, -mno-code-object-v3
|
|
|
|
Legacy option to specify code object ABI V2 (-mnocode-object-v3) or V3 (-mcode-object-v3) (AMDGPU only)
|
|
|
|
.. option:: -mcode-object-version=<version>
|
|
|
|
Specify code object ABI version. Defaults to 4. (AMDGPU only)
|
|
|
|
.. option:: -mconsole<arg>
|
|
|
|
.. program:: clang1
|
|
.. option:: -mcpu=<arg>, -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62), -mv65 (equivalent to -mcpu=hexagonv65), -mv66 (equivalent to -mcpu=hexagonv66), -mv67 (equivalent to -mcpu=hexagonv67), -mv67t (equivalent to -mcpu=hexagonv67t)
|
|
.. program:: clang
|
|
|
|
.. option:: -mcrc, -mno-crc
|
|
|
|
Allow use of CRC instructions (ARM/Mips only)
|
|
|
|
.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
|
|
|
|
.. option:: -mdll<arg>
|
|
|
|
.. option:: -mdouble=<arg>
|
|
|
|
Force double to be 32 bits or 64 bits
|
|
|
|
.. option:: -mdynamic-no-pic<arg>
|
|
|
|
.. option:: -meabi <arg>
|
|
|
|
Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
|
|
|
|
.. option:: -menable-experimental-extensions
|
|
|
|
Enable use of experimental RISC-V extensions.
|
|
|
|
.. option:: -mfentry
|
|
|
|
Insert calls to fentry at function entry (x86/SystemZ only)
|
|
|
|
.. option:: -mfloat-abi=<arg>
|
|
|
|
.. 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:: -mhwmult=<arg>
|
|
|
|
.. option:: -miamcu, -mno-iamcu
|
|
|
|
Use Intel MCU ABI
|
|
|
|
.. option:: -mignore-xcoff-visibility
|
|
|
|
Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
|
|
|
|
.. 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:: -mkernel
|
|
|
|
.. option:: -mlong-calls, -mno-long-calls
|
|
|
|
Generate branches with extended addressability, usually via indirect jumps.
|
|
|
|
.. option:: -mlvi-cfi, -mno-lvi-cfi
|
|
|
|
Enable only control-flow mitigations for Load Value Injection (LVI)
|
|
|
|
.. option:: -mlvi-hardening, -mno-lvi-hardening
|
|
|
|
Enable all mitigations for Load Value Injection (LVI)
|
|
|
|
.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
|
|
|
|
Set Mac OS X deployment target
|
|
|
|
.. option:: -mmcu=<arg>
|
|
|
|
.. option:: -mms-bitfields, -mno-ms-bitfields
|
|
|
|
Set the default structure layout to be compatible with the Microsoft compiler standard
|
|
|
|
.. option:: -mnop-mcount
|
|
|
|
Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
|
|
|
|
.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
|
|
|
|
Omit frame pointer setup for leaf functions
|
|
|
|
.. option:: -moslib=<arg>
|
|
|
|
.. option:: -mpacked-stack, -mno-packed-stack
|
|
|
|
Use packed stack layout (SystemZ only).
|
|
|
|
.. option:: -mpad-max-prefix-size=<arg>
|
|
|
|
Specify maximum number of prefixes to use for padding
|
|
|
|
.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
|
|
|
|
Use copy relocations support for PIE builds
|
|
|
|
.. option:: -mprefer-vector-width=<arg>
|
|
|
|
Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
|
|
|
|
.. option:: -mqdsp6-compat
|
|
|
|
Enable hexagon-qdsp6 backward compatibility
|
|
|
|
.. option:: -mrecip
|
|
|
|
.. program:: clang1
|
|
.. option:: -mrecip=<arg1>,<arg2>...
|
|
.. program:: clang
|
|
|
|
.. option:: -mrecord-mcount
|
|
|
|
Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
|
|
|
|
.. option:: -mred-zone, -mno-red-zone
|
|
|
|
.. option:: -mregparm=<arg>
|
|
|
|
.. option:: -mrelax, -mno-relax
|
|
|
|
Enable linker relaxation
|
|
|
|
.. option:: -mrelax-all, -mno-relax-all
|
|
|
|
(integrated-as) Relax all machine instructions
|
|
|
|
.. option:: -mretpoline, -mno-retpoline
|
|
|
|
.. option:: -mrtd, -mno-rtd
|
|
|
|
Make StdCall calling convention the default
|
|
|
|
.. option:: -mseses, -mno-seses
|
|
|
|
Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
|
|
|
|
.. option:: -msign-return-address=<arg>
|
|
|
|
Select return address signing scope
|
|
|
|
.. option:: -msim
|
|
|
|
.. option:: -msoft-float, -mno-soft-float
|
|
|
|
Use software floating point
|
|
|
|
.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
|
|
|
|
.. option:: -mstack-alignment=<arg>
|
|
|
|
Set the stack alignment
|
|
|
|
.. option:: -mstack-arg-probe, -mno-stack-arg-probe
|
|
|
|
Enable stack probes
|
|
|
|
.. option:: -mstack-probe-size=<arg>
|
|
|
|
Set the stack probe size
|
|
|
|
.. option:: -mstack-protector-guard-offset=<arg>
|
|
|
|
Use the given offset for addressing the stack-protector guard
|
|
|
|
.. option:: -mstack-protector-guard-reg=<arg>
|
|
|
|
Use the given reg for addressing the stack-protector guard
|
|
|
|
.. option:: -mstack-protector-guard=<arg>
|
|
|
|
Use the given guard (global, tls) for addressing the stack-protector guard
|
|
|
|
.. option:: -mstackrealign, -mno-stackrealign
|
|
|
|
Force realign the stack at entry to every function
|
|
|
|
.. option:: -msvr4-struct-return
|
|
|
|
Return small structs in registers (PPC32 only)
|
|
|
|
.. option:: -mthread-model <arg>
|
|
|
|
The thread model to use, e.g. posix, single (posix by default)
|
|
|
|
.. option:: -mthreads<arg>
|
|
|
|
.. option:: -mthumb, -mno-thumb
|
|
|
|
.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
|
|
|
|
Enable direct TLS access through segment registers (default)
|
|
|
|
.. option:: -mtls-size=<arg>
|
|
|
|
Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) \| 24 (for 16MB, default) \| 32 (for 4GB) \| 48 (for 256TB, needs -mcmodel=large)
|
|
|
|
.. program:: clang1
|
|
.. option:: -mtune=<arg>
|
|
.. program:: clang
|
|
|
|
Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.
|
|
|
|
.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
|
|
|
|
.. option:: -municode<arg>
|
|
|
|
.. option:: -mabi=vec-extabi, -mabi=vec-default
|
|
|
|
Only supported on AIX. Specify usage of the extended vector ABI on AIX and of non-volatile vector registers. Defaults to '-mabi=default' when Altivec is enabled.
|
|
|
|
.. option:: -mvx, -mno-vx
|
|
|
|
.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
|
|
|
|
.. option:: -mwatchos-version-min=<arg>
|
|
|
|
.. option:: -mwavefrontsize64, -mno-wavefrontsize64
|
|
|
|
Specify wavefront size 64 mode (AMDGPU only)
|
|
|
|
.. option:: -mwindows<arg>
|
|
|
|
.. option:: -mx32
|
|
|
|
AARCH64
|
|
-------
|
|
.. option:: -fcall-saved-x10
|
|
|
|
Make the x10 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x11
|
|
|
|
Make the x11 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x12
|
|
|
|
Make the x12 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x13
|
|
|
|
Make the x13 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x14
|
|
|
|
Make the x14 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x15
|
|
|
|
Make the x15 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x18
|
|
|
|
Make the x18 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x8
|
|
|
|
Make the x8 register call-saved (AArch64 only)
|
|
|
|
.. option:: -fcall-saved-x9
|
|
|
|
Make the x9 register call-saved (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)
|
|
|
|
.. option:: -mmark-bti-property
|
|
|
|
Add .note.gnu.property with BTI to assembly files (AArch64 only)
|
|
|
|
.. option:: -msve-vector-bits=<arg>
|
|
|
|
Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
|
|
|
|
AMDGPU
|
|
------
|
|
.. option:: -mcumode, -mno-cumode
|
|
|
|
Specify CU (-mcumode) or WGP (-mno-cumode) wavefront execution mode (AMDGPU only)
|
|
|
|
.. option:: -msram-ecc, -mno-sram-ecc
|
|
|
|
Specify SRAM ECC mode (AMDGPU only)
|
|
|
|
.. option:: -mxnack, -mno-xnack
|
|
|
|
Specify XNACK mode (AMDGPU only)
|
|
|
|
ARM
|
|
---
|
|
.. option:: -faapcs-bitfield-load
|
|
|
|
Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
|
|
|
|
.. option:: -faapcs-bitfield-width, -fno-aapcs-bitfield-width
|
|
|
|
Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only).
|
|
|
|
.. option:: -ffixed-r9
|
|
|
|
Reserve the r9 register (ARM only)
|
|
|
|
.. option:: -mcmse
|
|
|
|
Allow use of CMSE (Armv8-M Security Extensions)
|
|
|
|
.. 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:: -mtp=<arg>
|
|
|
|
Thread pointer access method (AArch32/AArch64 only)
|
|
|
|
.. option:: -munaligned-access, -mno-unaligned-access
|
|
|
|
Allow memory accesses to be unaligned (AArch32/AArch64 only)
|
|
|
|
Hexagon
|
|
-------
|
|
.. option:: -mieee-rnd-near
|
|
|
|
.. option:: -mmemops, -mno-memops
|
|
|
|
Enable generation of memop instructions
|
|
|
|
.. option:: -mnvj, -mno-nvj
|
|
|
|
Enable generation of new-value jumps
|
|
|
|
.. option:: -mnvs, -mno-nvs
|
|
|
|
Enable generation of new-value stores
|
|
|
|
.. option:: -mpackets, -mno-packets
|
|
|
|
Enable generation of instruction packets
|
|
|
|
Hexagon
|
|
-------
|
|
.. option:: -mhvx, -mno-hvx
|
|
|
|
Enable Hexagon Vector eXtensions
|
|
|
|
.. option:: -mhvx-length=<arg>
|
|
|
|
Set Hexagon Vector Length
|
|
|
|
.. program:: clang1
|
|
.. option:: -mhvx=<arg>
|
|
.. program:: clang
|
|
|
|
Enable Hexagon Vector eXtensions
|
|
|
|
MIPS
|
|
----
|
|
.. option:: -mabicalls, -mno-abicalls
|
|
|
|
Enable SVR4-style position-independent code (Mips only)
|
|
|
|
.. option:: -mabs=<arg>
|
|
|
|
.. option:: -mcheck-zero-division, -mno-check-zero-division
|
|
|
|
.. option:: -mcompact-branches=<arg>
|
|
|
|
.. option:: -mdouble-float
|
|
|
|
.. option:: -mdsp, -mno-dsp
|
|
|
|
.. option:: -mdspr2, -mno-dspr2
|
|
|
|
.. option:: -membedded-data, -mno-embedded-data
|
|
|
|
Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
|
|
|
|
.. option:: -mextern-sdata, -mno-extern-sdata
|
|
|
|
Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
|
|
|
|
.. option:: -mfp32
|
|
|
|
Use 32-bit floating point registers (MIPS only)
|
|
|
|
.. option:: -mfp64
|
|
|
|
Use 64-bit floating point registers (MIPS only)
|
|
|
|
.. option:: -mginv, -mno-ginv
|
|
|
|
.. option:: -mgpopt, -mno-gpopt
|
|
|
|
Use GP relative accesses for symbols known to be in a small data section (MIPS)
|
|
|
|
.. option:: -mindirect-jump=<arg>
|
|
|
|
Change indirect jump instructions to inhibit speculation
|
|
|
|
.. option:: -mips16
|
|
|
|
.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
|
|
|
|
.. option:: -mlocal-sdata, -mno-local-sdata
|
|
|
|
Extend the -G behaviour to object local data (MIPS)
|
|
|
|
.. option:: -mmadd4, -mno-madd4
|
|
|
|
Enable the generation of 4-operand madd.s, madd.d and related instructions.
|
|
|
|
.. option:: -mmicromips, -mno-micromips
|
|
|
|
.. option:: -mmsa, -mno-msa
|
|
|
|
Enable MSA ASE (MIPS only)
|
|
|
|
.. option:: -mmt, -mno-mt
|
|
|
|
Enable MT ASE (MIPS only)
|
|
|
|
.. option:: -mnan=<arg>
|
|
|
|
.. option:: -mno-mips16
|
|
|
|
.. option:: -msingle-float
|
|
|
|
.. option:: -mvirt, -mno-virt
|
|
|
|
.. option:: -mxgot, -mno-xgot
|
|
|
|
PowerPC
|
|
-------
|
|
.. option:: -maltivec, -mno-altivec
|
|
|
|
.. option:: -mcmpb, -mno-cmpb
|
|
|
|
.. option:: -mcrbits, -mno-crbits
|
|
|
|
.. option:: -mcrypto, -mno-crypto
|
|
|
|
.. option:: -mdirect-move, -mno-direct-move
|
|
|
|
.. option:: -mefpu2
|
|
|
|
.. 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:: -mmma, -mno-mma
|
|
|
|
.. option:: -mpaired-vector-memops, -mno-paired-vector-memops
|
|
|
|
.. option:: -mpcrel, -mno-pcrel
|
|
|
|
.. option:: -mpopcntd, -mno-popcntd
|
|
|
|
.. option:: -mpower10-vector, -mno-power10-vector
|
|
|
|
.. option:: -mpower8-vector, -mno-power8-vector
|
|
|
|
.. option:: -mpower9-vector, -mno-power9-vector
|
|
|
|
.. option:: -msecure-plt
|
|
|
|
.. option:: -mspe, -mno-spe
|
|
|
|
.. option:: -mvsx, -mno-vsx
|
|
|
|
WebAssembly
|
|
-----------
|
|
.. option:: -matomics, -mno-atomics
|
|
|
|
.. option:: -mbulk-memory, -mno-bulk-memory
|
|
|
|
.. option:: -mexception-handling, -mno-exception-handling
|
|
|
|
.. option:: -mmultivalue, -mno-multivalue
|
|
|
|
.. option:: -mmutable-globals, -mno-mutable-globals
|
|
|
|
.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
|
|
|
|
.. option:: -mreference-types, -mno-reference-types
|
|
|
|
.. option:: -msign-ext, -mno-sign-ext
|
|
|
|
.. option:: -msimd128, -mno-simd128
|
|
|
|
.. option:: -mtail-call, -mno-tail-call
|
|
|
|
.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
|
|
|
|
WebAssembly Driver
|
|
------------------
|
|
.. option:: -mexec-model=<arg>
|
|
|
|
Execution model (WebAssembly only)
|
|
|
|
X86
|
|
---
|
|
.. option:: -m3dnow, -mno-3dnow
|
|
|
|
.. option:: -m3dnowa, -mno-3dnowa
|
|
|
|
.. option:: -madx, -mno-adx
|
|
|
|
.. option:: -maes, -mno-aes
|
|
|
|
.. option:: -mamx-bf16, -mno-amx-bf16
|
|
|
|
.. option:: -mamx-int8, -mno-amx-int8
|
|
|
|
.. option:: -mamx-tile, -mno-amx-tile
|
|
|
|
.. option:: -mavx, -mno-avx
|
|
|
|
.. option:: -mavx2, -mno-avx2
|
|
|
|
.. option:: -mavx512bf16, -mno-avx512bf16
|
|
|
|
.. option:: -mavx512bitalg, -mno-avx512bitalg
|
|
|
|
.. 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:: -mavx512vbmi2, -mno-avx512vbmi2
|
|
|
|
.. option:: -mavx512vl, -mno-avx512vl
|
|
|
|
.. option:: -mavx512vnni, -mno-avx512vnni
|
|
|
|
.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
|
|
|
|
.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
|
|
|
|
.. option:: -mavxvnni, -mno-avxvnni
|
|
|
|
.. option:: -mbmi, -mno-bmi
|
|
|
|
.. option:: -mbmi2, -mno-bmi2
|
|
|
|
.. option:: -mcldemote, -mno-cldemote
|
|
|
|
.. option:: -mclflushopt, -mno-clflushopt
|
|
|
|
.. option:: -mclwb, -mno-clwb
|
|
|
|
.. option:: -mclzero, -mno-clzero
|
|
|
|
.. option:: -mcx16, -mno-cx16
|
|
|
|
.. option:: -menqcmd, -mno-enqcmd
|
|
|
|
.. option:: -mf16c, -mno-f16c
|
|
|
|
.. option:: -mfma, -mno-fma
|
|
|
|
.. option:: -mfma4, -mno-fma4
|
|
|
|
.. option:: -mfsgsbase, -mno-fsgsbase
|
|
|
|
.. option:: -mfxsr, -mno-fxsr
|
|
|
|
.. option:: -mgfni, -mno-gfni
|
|
|
|
.. option:: -mhreset, -mno-hreset
|
|
|
|
.. option:: -minvpcid, -mno-invpcid
|
|
|
|
.. option:: -mkl, -mno-kl
|
|
|
|
.. option:: -mlwp, -mno-lwp
|
|
|
|
.. option:: -mlzcnt, -mno-lzcnt
|
|
|
|
.. option:: -mmmx, -mno-mmx
|
|
|
|
.. option:: -mmovbe, -mno-movbe
|
|
|
|
.. option:: -mmovdir64b, -mno-movdir64b
|
|
|
|
.. option:: -mmovdiri, -mno-movdiri
|
|
|
|
.. option:: -mmwaitx, -mno-mwaitx
|
|
|
|
.. option:: -mpclmul, -mno-pclmul
|
|
|
|
.. option:: -mpconfig, -mno-pconfig
|
|
|
|
.. option:: -mpku, -mno-pku
|
|
|
|
.. option:: -mpopcnt, -mno-popcnt
|
|
|
|
.. option:: -mprefetchwt1, -mno-prefetchwt1
|
|
|
|
.. option:: -mprfchw, -mno-prfchw
|
|
|
|
.. option:: -mptwrite, -mno-ptwrite
|
|
|
|
.. option:: -mrdpid, -mno-rdpid
|
|
|
|
.. option:: -mrdrnd, -mno-rdrnd
|
|
|
|
.. option:: -mrdseed, -mno-rdseed
|
|
|
|
.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
|
|
|
|
.. option:: -mrtm, -mno-rtm
|
|
|
|
.. option:: -msahf, -mno-sahf
|
|
|
|
.. option:: -mserialize, -mno-serialize
|
|
|
|
.. option:: -msgx, -mno-sgx
|
|
|
|
.. option:: -msha, -mno-sha
|
|
|
|
.. option:: -mshstk, -mno-shstk
|
|
|
|
.. 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:: -mtsxldtrk, -mno-tsxldtrk
|
|
|
|
.. option:: -muintr, -mno-uintr
|
|
|
|
.. option:: -mvaes, -mno-vaes
|
|
|
|
.. option:: -mvpclmulqdq, -mno-vpclmulqdq
|
|
|
|
.. option:: -mvzeroupper, -mno-vzeroupper
|
|
|
|
.. option:: -mwaitpkg, -mno-waitpkg
|
|
|
|
.. option:: -mwbnoinvd, -mno-wbnoinvd
|
|
|
|
.. option:: -mwidekl, -mno-widekl
|
|
|
|
.. 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
|
|
|
|
RISCV
|
|
-----
|
|
.. option:: -msave-restore, -mno-save-restore
|
|
|
|
Enable using library calls for save and restore
|
|
|
|
Long double flags
|
|
-----------------
|
|
Selects the long double implementation
|
|
|
|
.. option:: -mlong-double-128
|
|
|
|
Force long double to be 128 bits
|
|
|
|
.. option:: -mlong-double-64
|
|
|
|
Force long double to be 64 bits
|
|
|
|
.. option:: -mlong-double-80
|
|
|
|
Force long double to be 80 bits, padded to 128 bits for storage
|
|
|
|
Optimization level
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
Flags controlling how much optimization should be performed.
|
|
|
|
.. option:: -O<arg>, -O (equivalent to -O1), --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
|
|
|
|
Generate source-level debug information with the default dwarf version
|
|
|
|
.. 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
|
|
|
|
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-directives-only
|
|
|
|
Emit debug line info directives only
|
|
|
|
.. 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:: -gembed-source, -gno-embed-source
|
|
|
|
Embed source text in DWARF debug sections
|
|
|
|
.. option:: -ggnu-pubnames, -gno-gnu-pubnames
|
|
|
|
.. option:: -gpubnames, -gno-pubnames
|
|
|
|
.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
|
|
|
|
.. option:: -gsplit-dwarf
|
|
|
|
.. program:: clang1
|
|
.. option:: -gsplit-dwarf=<arg>
|
|
.. program:: clang
|
|
|
|
Set DWARF fission mode to either 'split' or 'single'
|
|
|
|
.. option:: -gstrict-dwarf, -gno-strict-dwarf
|
|
|
|
.. option:: -gz=<arg>, -gz (equivalent to -gz=zlib)
|
|
|
|
DWARF debug sections compression type
|
|
|
|
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:: -imultilib <arg>
|
|
|
|
.. 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 DATA to <addr>
|
|
|
|
.. option:: -Ttext<addr>
|
|
|
|
Set starting address of TEXT 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:: -coverage, --coverage
|
|
|
|
.. option:: -e<arg>, --entry
|
|
|
|
.. option:: -filelist <arg>
|
|
|
|
.. option:: --hip-device-lib=<arg>
|
|
|
|
HIP device library
|
|
|
|
.. option:: -l<arg>
|
|
|
|
.. option:: --ld-path=<arg>
|
|
|
|
.. option:: -nostartfiles
|
|
|
|
.. program:: clang1
|
|
.. option:: -nostdlib, --no-standard-libraries
|
|
.. program:: clang
|
|
|
|
.. option:: -pie
|
|
|
|
.. option:: -r
|
|
|
|
.. option:: -rdynamic
|
|
|
|
.. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
|
|
|
|
ROCm device library path. Alternative to rocm-path.
|
|
|
|
.. option:: -rpath <arg>
|
|
|
|
.. option:: -s
|
|
|
|
.. option:: -shared, --shared
|
|
|
|
.. option:: -specs=<arg>, --specs=<arg>
|
|
|
|
.. option:: -static, --static
|
|
|
|
.. option:: -static-pie
|
|
|
|
.. 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
|
|
|