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