Skip to content

Instantly share code, notes, and snippets.

@lijiansong
Last active March 6, 2022 16:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save lijiansong/63b66d03ad8328052b8a32ece3d8f8f1 to your computer and use it in GitHub Desktop.
Save lijiansong/63b66d03ad8328052b8a32ece3d8f8f1 to your computer and use it in GitHub Desktop.
clang-cc1-options.txt
OVERVIEW: LLVM 'Clang' Compiler: http://clang.llvm.org
USAGE: clang -cc1 [options] <inputs>
OPTIONS:
-add-plugin <name> Use the named plugin action in addition to the default action
-analyze-function <value>
Run analysis on specific function
-analyzer-checker-help Display the list of analyzer checkers that are available
-analyzer-checker <value>
Choose analyzer checkers to enable
-analyzer-config <value>
Choose analyzer options to enable
-analyzer-constraints <value>
Source Code Analysis - Symbolic Constraint Engines
-analyzer-disable-all-checks
Disable all static analyzer checks
-analyzer-disable-checker <value>
Choose analyzer checkers to disable
-analyzer-disable-retry-exhausted
Do not re-analyze paths leading to exhausted nodes with a different strategy (may decrease code coverage)
-analyzer-display-progress
Emit verbose output about the analyzer's progress
-analyzer-eagerly-assume
Eagerly assume the truth/falseness of some symbolic constraints
-analyzer-inline-max-stack-depth <value>
Bound on stack depth while inlining (4 by default)
-analyzer-inlining-mode <value>
Specify the function selection heuristic used during inlining
-analyzer-list-enabled-checkers
Display the list of enabled analyzer checkers
-analyzer-max-loop <value>
The maximum number of times the analyzer will go through a loop
-analyzer-opt-analyze-headers
Force the static analyzer to analyze functions defined in header files
-analyzer-opt-analyze-nested-blocks
Analyze the definitions of blocks in addition to functions
-analyzer-output <value>
Source Code Analysis - Output Options
-analyzer-purge <value> Source Code Analysis - Dead Symbol Removal Frequency
-analyzer-stats Print internal analyzer statistics.
-analyzer-store <value> Source Code Analysis - Abstract Memory Store Models
-analyzer-viz-egraph-graphviz
Display exploded graph using GraphViz
-analyzer-viz-egraph-ubigraph
Display exploded graph using Ubigraph
-analyze Run static analysis engine
-arange_sections Emit DWARF .debug_arange sections
-arcmt-check Check for ARC migration issues that need manual handling
-arcmt-migrate-emit-errors
Emit ARC errors even if the migrator can fix them
-arcmt-migrate-report-output <value>
Output path for the plist report
-arcmt-migrate Apply modifications and produces temporary files that conform to ARC
-arcmt-modify Apply modifications to files to conform to ARC
-ast-dump-all Build ASTs and then debug dump them, forcing deserialization
-ast-dump-filter <dump_filter>
Use with -ast-dump or -ast-print to dump/print only AST declaration nodes having a certain substring in a qualified name. Use -ast-list to list all filterable declaration node names.
-ast-dump-lookups Build ASTs and then debug dump their name lookup tables
-ast-dump Build ASTs and then debug dump them
-ast-list Build ASTs and print the list of declaration node qualified names
-ast-merge <ast file> Merge the given AST file into the translation unit being compiled.
-ast-print Build ASTs and then pretty-print them
-ast-view Build ASTs and view them with GraphViz
-aux-triple <value> Auxiliary target triple.
-backend-option <value> Additional arguments to forward to LLVM backend (during code gen)
-c-isystem <directory> Add directory to the C SYSTEM include search path
-CC Include comments from within macros in preprocessed output
-cfg-add-implicit-dtors Add C++ implicit destructors to CFGs for all analyses
-chain-include <file> Include and chain a header file after turning it into PCH
-cl-denorms-are-zero OpenCL only. Allow denormals to be flushed to zero.
-cl-ext=<value> OpenCL only. Enable or disable OpenCL extensions. The argument is a comma-separated sequence of one or more extension names, each prefixed by '+' or '-'.
-cl-fast-relaxed-math OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
-cl-finite-math-only OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
-cl-fp32-correctly-rounded-divide-sqrt
OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
-cl-kernel-arg-info OpenCL only. Generate kernel argument metadata.
-cl-mad-enable OpenCL only. Allow use of less precise MAD computations in the generated binary.
-cl-no-signed-zeros OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
-cl-opt-disable OpenCL only. This option disables all optimizations. By default optimizations are enabled.
-cl-single-precision-constant
OpenCL only. Treat double precision floating-point constant as single precision constant.
-cl-std=<value> OpenCL language standard to compile for.
-cl-strict-aliasing OpenCL only. This option is added for compatibility with OpenCL 1.0.
-cl-unsafe-math-optimizations
OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
-code-completion-at <file>:<line>:<column>
Dump code-completion information at a location
-code-completion-brief-comments
Include brief documentation comments in code-completion results.
-code-completion-macros Include macros in code-completion results
-code-completion-patterns
Include code patterns in code-completion results
-compress-debug-sections=<value>
DWARF debug sections compression type
-compress-debug-sections
DWARF debug sections compression
-coverage-cfg-checksum Emit CFG checksum for functions in .gcno files.
-coverage-data-file <value>
Emit coverage data to this filename.
-coverage-exit-block-before-body
Emit the exit block before the body blocks in .gcno files.
-coverage-no-function-names-in-data
Emit function names in .gcda files.
-coverage-notes-file <value>
Emit coverage notes to this filename.
-coverage-version=<value>
Four-byte version string for gcov files.
-cxx-isystem <directory>
Add directory to the C++ SYSTEM include search path
-C Include comments in preprocessed output
-dD Print macro definitions in -E mode in addition to normal output
-debug-info-macro Emit macro debug information
-dependency-dot <value> Filename to write DOT-formatted header dependencies to
-dependency-file <value>
Filename (or -) to write dependency output to
--dependent-lib=<value> Add dependent library
-detailed-preprocessing-record
include a detailed record of preprocessing actions
-diagnostic-log-file <value>
Filename (or -) to log diagnostics to
-disable-free Disable freeing of memory on exit
-disable-lifetime-markers
Disable lifetime-markers emission even when optimizations are enabled
-disable-llvm-passes Use together with -emit-llvm to get pristine LLVM IR from the frontend by not running any LLVM passes at all
-disable-llvm-verifier Don't run the LLVM IR verifier pass
-disable-O0-optnone Disable adding the optnone attribute to functions at O0
-disable-objc-default-synthesize-properties
disable the default synthesis of Objective-C properties
-disable-red-zone Do not emit code that uses the red zone.
-discard-value-names Discard value names in LLVM IR
-dI Print include directives in -E mode in addition to normal output
-dM Print macro definitions in -E mode instead of normal output
-dump-coverage-mapping Dump the coverage mapping records, for testing
-dump-deserialized-decls
Dump declarations that are deserialized from PCH, for testing
-dump-raw-tokens Lex file in raw mode and dump raw tokens
-dump-tokens Run preprocessor, dump internal rep of tokens
-dwarf-column-info Turn on column location information.
-dwarf-debug-flags <value>
The string to embed in the Dwarf debug flags record.
-dwarf-ext-refs Generate debug info with external references to clang modules or precompiled headers
-D <macro>=<value> Define <macro> to <value> (or 1 if <value> omitted)
-emit-codegen-only Generate machine code, but discard output
-emit-html Output input source as HTML
-emit-llvm-bc Build ASTs then convert to LLVM, emit .bc file
-emit-llvm-only Build ASTs and convert to LLVM, discarding output
-emit-llvm-uselists Preserve order of LLVM use-lists when serializing
-emit-llvm Use the LLVM representation for assembler and object files
-emit-module-interface Generate pre-compiled module file from a C++ module interface
-emit-module Generate pre-compiled module file from a module map
-emit-obj Emit native object files
-emit-pch Generate pre-compiled header file
-emit-pth Generate pre-tokenized header file
-enable-split-dwarf Use split dwarf/Fission
-Eonly Just run preprocessor, no output (for timings)
-error-on-deserialized-decl <value>
Emit error if a specific declaration is deserialized from PCH, for testing
-E Only run the preprocessor
-faddress-space-map-mangling=<yes|no|target>
Set the mode for address space map based mangling; OpenCL testing purposes only
-faligned-alloc-unavailable
Aligned allocation/deallocation functions are unavailable
-faligned-allocation Enable C++17 aligned allocation functions
-fallow-editor-placeholders
Treat editor placeholders as valid source code
-fallow-half-arguments-and-returns
Allow function arguments and returns of type half
-fallow-pch-with-compiler-errors
Accept a PCH file that was created with compiler errors
-fansi-escape-codes Use ANSI escape codes for diagnostics
-fapple-kext Use Apple's kernel extensions ABI
-fapple-pragma-pack Enable Apple gcc-compatible #pragma pack handling
-fapplication-extension Restrict code to those available for App Extensions
-fblocks-runtime-optional
Weakly link in the blocks runtime
-fblocks Enable the 'blocks' language feature
-fborland-extensions Accept non-standard constructs supported by the Borland compiler
-fbracket-depth <value> Maximum nesting level for parentheses, brackets, and braces
-fbuild-session-timestamp=<time since Epoch in seconds>
Time when the current build session started
-fcaret-diagnostics-max-lines <N>
Set the maximum number of source lines to show in a caret diagnostic
-fclang-abi-compat=<version>
Attempt to match the ABI of Clang <version>
-fcolor-diagnostics Use colors in diagnostics
-fcomment-block-commands=<arg>
Treat each comma separated argument in <arg> as a documentation comment block command
-fconcepts-ts Enable C++ Extensions for Concepts.
-fconst-strings Use a const qualified type for string literals in C and ObjC
-fconstant-string-class <class name>
Specify the class to use for constant Objective-C string objects.
-fconstexpr-backtrace-limit <N>
Set the maximum number of entries to print in a constexpr evaluation backtrace (0 = no limit).
-fconstexpr-depth <value>
Maximum depth of recursive constexpr function calls
-fconstexpr-steps <value>
Maximum number of steps in constexpr function evaluation
-fcoroutines-ts Enable support for the C++ Coroutines TS
-fcoverage-mapping Generate coverage mapping to enable code coverage analysis
-fcuda-allow-variadic-functions
Allow variadic functions in CUDA device code.
-fcuda-approx-transcendentals
Use approximate transcendental functions
-fcuda-flush-denormals-to-zero
Flush denormal floating point values to zero in CUDA device mode.
-fcuda-include-gpubinary <value>
Incorporate CUDA device-side binary into host object file.
-fcuda-is-device Generate code for CUDA device
-fcxx-exceptions Enable C++ exceptions
-fdata-sections Place each data in its own section (ELF Only)
-fdebug-compilation-dir <value>
The compilation directory to embed in the debug info.
-fdebug-info-for-profiling
Emit extra debug info to make sample profile more accurate.
-fdebug-pass-manager Prints debug information for the new pass manager
-fdebug-prefix-map=<value>
remap file source paths in debug info
-fdebug-types-section Place debug types in their own section (ELF Only)
-fdebugger-cast-result-to-id
Enable casting unknown expression results to id
-fdebugger-objc-literal Enable special debugger support for Objective-C subscripting and literals
-fdebugger-support Enable special debugger support behavior
-fdeclspec Allow __declspec as a keyword
-fdefault-calling-conv=<value>
Set default MS calling convention
-fdelayed-template-parsing
Parse templated function definitions at the end of the translation unit
-fdeprecated-macro Defines the __DEPRECATED macro
-fdiagnostics-absolute-paths
Print absolute paths in diagnostics
-fdiagnostics-format <value>
Change diagnostic formatting to match IDE and command line tools
-fdiagnostics-hotness-threshold=<number>
Prevent optimization remarks from being output if they do not have at least this profile count
-fdiagnostics-parseable-fixits
Print fix-its in machine parseable form
-fdiagnostics-print-source-range-info
Print source range spans in numeric form
-fdiagnostics-show-category <value>
Print diagnostic category
-fdiagnostics-show-hotness
Enable profile hotness information in diagnostic line
-fdiagnostics-show-note-include-stack
Display include stacks for diagnostic notes
-fdiagnostics-show-option
Print option name with mappable diagnostics
-fdiagnostics-show-template-tree
Print a template comparison tree for differing templates
-fdisable-module-hash Disable the module hash
-fdollars-in-identifiers
Allow '$' in identifiers
-fdump-record-layouts-simple
Dump record layout information in a simple form used for testing
-fdump-record-layouts Dump record layout information
-fdump-vtable-layouts Dump the layouts of all vtables that will be emitted in a translation unit
-fembed-bitcode=<option>
Embed LLVM bitcode (option: off, all, bitcode, marker)
-femit-all-decls Emit all declarations, even if unused
-femit-coverage-data Instrument the program to emit gcov coverage data when run.
-femit-coverage-notes Emit a gcov coverage notes file when compiling.
-femulated-tls Use emutls functions to access thread_local variables
-fencode-extended-block-signature
enable extended encoding of block type signature
-ferror-limit <N> Set the maximum number of errors to emit before stopping (0 = no limit).
-fexceptions Enable support for exception handling
-fexperimental-new-pass-manager
Enables an experimental new pass manager in LLVM.
-fexternc-nounwind Assume all functions with C linkage do not unwind
-ffake-address-space-map
Use a fake address space map; OpenCL testing purposes only
-ffast-math Allow aggressive, lossy floating-point optimizations
-fforbid-guard-variables
Emit an error if a C++ static local initializer would need a guard variable
-ffp-contract=<value> Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse)
-ffreestanding Assert that the compilation takes place in a freestanding environment
-ffunction-sections Place each function in its own section (ELF Only)
-fgnu-keywords Allow GNU-extension keywords regardless of language standard
-fgnu89-inline Use the gnu89 inline semantics
-fimplicit-module-maps Implicitly search the file system for module map files.
-finclude-default-header
Include the default header file for OpenCL
-find-pch-source=<value>
When building a pch, try to find the input file in include directories, as if it had been included by the argument passed to this flag.
-finline-functions Inline suitable functions
-finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline
-finstrument-functions Generate calls to instrument function entry and exit
-fix-only-warnings Apply fix-it advice only for warnings, not errors
-fix-what-you-can Apply fix-it advice even in the presence of unfixable errors
-fixit-recompile Apply fix-it changes and recompile
-fixit-to-temporary Apply fix-it changes to temporary files
-fixit=<value> Apply fix-it advice creating a file with the given suffix
-fixit Apply fix-it advice to the input source
-flto-jobs=<value> Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
-flto-unit Emit IR to support LTO unit features (CFI, whole program vtable opt)
-flto-visibility-public-std
Use public LTO visibility for classes in std and stdext namespaces
-flto=<value> Set LTO mode to either 'full' or 'thin'
-flto Enable LTO in 'full' mode
-fmacro-backtrace-limit <N>
Set the maximum number of entries to print in a macro expansion backtrace (0 = no limit).
-fmath-errno Require math functions to indicate errors by setting errno
-fmax-type-align=<value>
Specify the maximum alignment to enforce on pointers lacking an explicit alignment
-fmerge-functions Permit merging of identical functions when optimizing.
-fmessage-length <N> Format message diagnostics so that they fit within N columns or fewer, when possible.
-fmodule-feature <feature>
Enable <feature> in module map requires declarations
-fmodule-file=<file> Load this precompiled module file
-fmodule-format=<value> Select the container format for clang modules and PCH. Supported options are 'raw' and 'obj'.
-fmodule-map-file-home-is-cwd
Use the current working directory as the home directory of module maps specified by -fmodule-map-file=<FILE>
-fmodule-map-file=<file>
Load this module map file
-fmodule-name=<name> Specify the name of the module to build
-fmodules-cache-path=<directory>
Specify the module cache path
-fmodules-codegen Generate code for uses of this module that assumes an explicit object file will be built for the module
-fmodules-debuginfo Generate debug info for types in an object file built from this module and do not generate them elsewhere
-fmodules-decluse Require declaration of modules used within a module
-fmodules-disable-diagnostic-validation
Disable validation of the diagnostic options when loading the module
-fmodules-embed-all-files<value>
Embed the contents of all files read by this compilation into the produced module file.
-fmodules-embed-file=<file>
Embed the contents of the specified file into the module file being compiled.
-fmodules-hash-content Enable hashing the content of a module file
-fmodules-ignore-macro=<value>
Ignore the definition of the given macro when building and loading modules
-fmodules-local-submodule-visibility
Enforce name visibility rules across submodules of the same top-level module.
-fmodules-prune-after=<seconds>
Specify the interval (in seconds) after which a module file will be considered unused
-fmodules-prune-interval=<seconds>
Specify the interval (in seconds) between attempts to prune the module cache
-fmodules-search-all Search even non-imported modules to resolve references
-fmodules-strict-decluse
Like -fmodules-decluse but requires all headers to be in modules
-fmodules-ts Enable support for the C++ Modules TS
-fmodules-user-build-path <directory>
Specify the module user build path
-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
-fmodules-validate-system-headers
Validate the system headers that a module depends on when loading the module
-fmodules Enable the 'modules' language feature
-fms-compatibility-version=<value>
Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fms-compatibility Enable full Microsoft Visual C++ compatibility
-fms-extensions Accept some non-standard constructs supported by the Microsoft compiler
-fnative-half-arguments-and-returns
Use the native __fp16 type for arguments and returns (and skip ABI-specific lowering)
-fnative-half-type Use the native half type for __fp16 instead of promoting to float
-fnew-alignment=<align> Specifies the largest alignment guaranteed by '::operator new(size_t)'
-fno-access-control Disable C++ access control
-fno-assume-sane-operator-new
Don't assume that C++'s global operator new can't alias any pointer
-fno-autolink Disable generation of linker directives for automatic library linking
-fno-bitfield-type-align
Ignore bit-field types when aligning structures
-fno-builtin-<value> Disable implicit builtin knowledge of a specific function
-fno-builtin Disable implicit builtin knowledge of functions
-fno-common Compile common globals like normal definitions
-fno-const-strings Don't use a const qualified type for string literals in C and ObjC
-fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings
-fno-cuda-host-device-constexpr
Don't treat unattributed constexpr functions as __host__ __device__.
-fno-debug-pass-manager Disables debug printing for the new pass manager
-fno-declspec Disallow __declspec as a keyword
-fno-deprecated-macro Undefines the __DEPRECATED macro
-fno-diagnostics-fixit-info
Do not include fixit information in diagnostics
-fno-diagnostics-use-presumed-location
Ignore #line directives when displaying diagnostic locations
-fno-dollars-in-identifiers
Disallow '$' in identifiers
-fno-elide-constructors Disable C++ copy constructor elision
-fno-elide-type Do not elide types when printing diagnostics
-fno-experimental-new-pass-manager
Disables an experimental new pass manager in LLVM.
-fno-gnu-inline-asm Disable GNU style inline asm
-fno-integrated-as Disable the integrated assembler
-fno-jump-tables Do not use jump tables for lowering switches
-fno-lax-vector-conversions
Disallow implicit conversions between vectors with a different number of elements or different element types
-fno-math-builtin Disable implicit builtin knowledge of math functions
-fno-merge-all-constants
Disallow merging of constants
-fno-modules-error-recovery
Do not automatically import modules for error recovery
-fno-modules-global-index
Do not automatically generate or update the global module index
-fno-objc-infer-related-result-type
do not infer Objective-C related result type based on method family
-fno-operator-names Do not treat C++ operator name keywords as synonyms for operators
-fno-pch-timestamp Disable inclusion of timestamp in precompiled headers
-fno-preserve-as-comments
Do not preserve comments in inline assembly
-fno-rtti-data Control emission of RTTI data
-fno-rtti Disable generation of rtti information
-fno-sanitize-address-use-after-scope
Disable use-after-scope detection in AddressSanitizer
-fno-sanitize-blacklist Don't use blacklist file for sanitizers
-fno-sanitize-cfi-cross-dso
Disable control flow integrity (CFI) checks for cross-DSO calls.
-fno-sanitize-coverage=<value>
Disable specified features of coverage instrumentation for Sanitizers
-fno-sanitize-memory-track-origins
Disable origins tracking in MemorySanitizer
-fno-sanitize-recover=<value>
Disable recovery for specified sanitizers
-fno-sanitize-stats Disable sanitizer statistics gathering.
-fno-sanitize-thread-atomics
Disable atomic operations instrumentation in ThreadSanitizer
-fno-sanitize-thread-func-entry-exit
Disable function entry/exit instrumentation in ThreadSanitizer
-fno-sanitize-thread-memory-access
Disable memory access instrumentation in ThreadSanitizer
-fno-sanitize-trap=<value>
Disable trapping for specified sanitizers
-fno-short-wchar Force wchar_t to be an unsigned int
-fno-show-column Do not include column number on diagnostics
-fno-show-source-location
Do not include source location information with diagnostics
-fno-signed-char Char is unsigned
-fno-signed-zeros Allow optimizations that ignore the sign of floating point zeros
-fno-spell-checking Disable spell-checking
-fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe
-fno-trigraphs Do not process trigraph sequences
-fno-unroll-loops Turn off loop unroller
-fno-use-cxa-atexit Don't use __cxa_atexit for calling destructors
-fno-use-init-array Don't use .init_array instead of .ctors
-fno-validate-pch Disable validation of precompiled headers
-fno-wchar Disable C++ builtin type wchar_t
-fobjc-arc-cxxlib=<value>
Objective-C++ Automatic Reference Counting standard library kind
-fobjc-arc-exceptions Use EH-safe code when synthesizing retains and releases in -fobjc-arc
-fobjc-arc Synthesize retain and release calls for Objective-C pointers
-fobjc-dispatch-method=<value>
Objective-C dispatch method to use
-fobjc-exceptions Enable Objective-C exceptions
-fobjc-gc-only Use GC exclusively for Objective-C related memory management
-fobjc-gc Enable Objective-C garbage collection
-fobjc-runtime-has-weak The target Objective-C runtime supports ARC weak operations
-fobjc-runtime=<value> Specify the target Objective-C runtime kind and version
-fobjc-subscripting-legacy-runtime
Allow Objective-C array and dictionary subscripting in legacy runtime
-fobjc-weak Enable ARC-style weak references in Objective-C
-fopenmp-host-ir-file-path <value>
Path to the IR file produced by the frontend for the host.
-fopenmp-is-device Generate code only for an OpenMP target device.
-fopenmp-targets=<value>
Specify comma-separated list of triples OpenMP offloading targets to be supported
-foperator-arrow-depth <value>
Maximum number of 'operator->'s to call for a member access
-foverride-record-layout=<value>
Override record layouts with those in the given file
-fpack-struct=<value> Specify the default maximum struct packing alignment
-fpascal-strings Recognize and construct Pascal-style string literals
-fpcc-struct-return Override the default ABI to return all structs on the stack
-fprebuilt-module-path=<directory>
Specify the prebuilt module path
-fpreserve-vec3-type Preserve 3-component vector type
-fprofile-instrument-path=<value>
Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instrument-use-path=<value>
Specify the profile path in PGO use compilation
-fprofile-instrument=<value>
Enable PGO instrumentation. The accepted value is clang, llvm, or none
-fprofile-sample-use=<value>
Enable sample-based profile guided optimizations
-freciprocal-math Allow division operations to be reassociated
-freg-struct-return Override the default ABI to return small structs in registers
-frelaxed-template-template-args
Enable C++17 relaxed template template argument matching
-freroll-loops Turn on loop reroller
-fsanitize-address-field-padding=<value>
Level of field padding for AddressSanitizer
-fsanitize-address-globals-dead-stripping
Enable linker dead stripping of globals in AddressSanitizer
-fsanitize-address-use-after-scope
Enable use-after-scope detection in AddressSanitizer
-fsanitize-blacklist=<value>
Path to blacklist file for sanitizers
-fsanitize-cfi-cross-dso
Enable control flow integrity (CFI) checks for cross-DSO calls.
-fsanitize-coverage-8bit-counters
Enable frequency counters in sanitizer coverage
-fsanitize-coverage-indirect-calls
Enable sanitizer coverage for indirect calls
-fsanitize-coverage-inline-8bit-counters
Enable inline 8-bit counters in sanitizer coverage
-fsanitize-coverage-no-prune
Disable coverage pruning (i.e. instrument all blocks/edges)
-fsanitize-coverage-trace-bb
Enable basic block tracing in sanitizer coverage
-fsanitize-coverage-trace-cmp
Enable cmp instruction tracing in sanitizer coverage
-fsanitize-coverage-trace-div
Enable div instruction tracing in sanitizer coverage
-fsanitize-coverage-trace-gep
Enable gep instruction tracing in sanitizer coverage
-fsanitize-coverage-trace-pc-guard
Enable PC tracing with guard in sanitizer coverage
-fsanitize-coverage-trace-pc
Enable PC tracing in sanitizer coverage
-fsanitize-coverage-type=<value>
Sanitizer coverage type
-fsanitize-coverage=<value>
Specify the type of coverage instrumentation for Sanitizers
-fsanitize-memory-track-origins=<value>
Enable origins tracking in MemorySanitizer
-fsanitize-memory-track-origins
Enable origins tracking in MemorySanitizer
-fsanitize-memory-use-after-dtor
Enable use-after-destroy detection in MemorySanitizer
-fsanitize-recover=<value>
Enable recovery for specified sanitizers
-fsanitize-stats Enable sanitizer statistics gathering.
-fsanitize-thread-atomics
Enable atomic operations instrumentation in ThreadSanitizer (default)
-fsanitize-thread-func-entry-exit
Enable function entry/exit instrumentation in ThreadSanitizer (default)
-fsanitize-thread-memory-access
Enable memory access instrumentation in ThreadSanitizer (default)
-fsanitize-trap=<value> Enable trapping for specified sanitizers
-fsanitize-undefined-strip-path-components=<number>
Strip (or keep only, if negative) a given number of path components when emitting check metadata.
-fsanitize=<check> Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
-fshort-enums Allocate to an enum type only as many bytes as it needs for the declared range of possible values
-fshort-wchar Force wchar_t to be a short unsigned int
-fshow-overloads=<value>
Which overload candidates to show when overload resolution fails: best|all; defaults to all
-fsized-deallocation Enable C++14 sized global deallocation functions
-fsjlj-exceptions Use SjLj style exceptions
-fspell-checking-limit <N>
Set the maximum number of times to perform spell checking on unrecognized identifiers (0 = no limit).
-fsplit-dwarf-inlining Place debug types in their own section (ELF Only)
-fstrict-enums Enable optimizations based on the strict definition of an enum's value range
-fstrict-return Always treat control flow paths that fall off the end of a non-void function as unreachable
-fstrict-vtable-pointers
Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
-ftabstop <N> Set the tab stop distance.
-ftemplate-backtrace-limit <N>
Set the maximum number of entries to print in a template instantiation backtrace (0 = no limit).
-ftemplate-depth <value>
Maximum depth of recursive template instantiation
-ftest-module-file-extension=<value>
introduce a module file extension for testing purposes. The argument is parsed as blockname:major:minor:hashed:user info
-fthin-link-bitcode=<value>
Write minimized bitcode to <file> for the ThinLTO thin link only
-fthinlto-index=<value> Perform ThinLTO importing using provided function summary index
-ftrap-function=<value> Issue call to specified function rather than a trap instruction
-ftrapv Trap on integer overflow
-ftrigraphs Process trigraph sequences
-ftype-visibility <value>
Default type visibility
-funique-section-names Use unique names for text and data sections (ELF Only)
-funknown-anytype Enable parser support for the __unknown_anytype type; for testing purposes only
-funroll-loops Turn on loop unroller
-fuse-init-array Use .init_array instead of .ctors
-fuse-register-sized-bitfield-access
Use register sized accesses to bit-fields, when possible.
-fveclib=<value> Use the given vector functions library
-fvisibility-inlines-hidden
Give inline C++ member functions default visibility by default
-fvisibility <value> Default type and symbol visibility
-fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
-fwrapv Treat signed integer overflow as two's complement
-fwritable-strings Store string literals as writable data
-fxray-always-instrument= <value>
Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
-fxray-instruction-threshold= <value>
Sets the minimum function size to instrument with XRay
-fxray-instrument Generate XRay instrumentation sleds on function entry and exit
-fxray-never-instrument= <value>
Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
-fzvector Enable System z vector language extension
-F <value> Add directory to framework include search path
-gcodeview Generate CodeView debug information
-gnu-pubnames Emit newer GNU style pubnames
-header-include-file <value>
Filename (or -) to write header include output to
-help Display available options
-H Show header includes and nesting depth
-idirafter <value> Add directory to AFTER include search path
-iframeworkwithsysroot <directory>
Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
-iframework <value> Add directory to SYSTEM framework search path
-imacros <file> Include macros from file before parsing
-include-pch <file> Include precompiled header file
-include-pth <file> Include file before parsing
-include <file> Include file before parsing
-index-header-map Make the next included directory (-I or -F) an indexer header map
-init-only Only execute frontend initialization
-internal-externc-isystem <directory>
Add directory to the internal system include search path with implicit extern "C" semantics; these are assumed to not be user-provided and are used to model system and standard headers' paths.
-internal-isystem <directory>
Add directory to the internal system include search path; these are assumed to not be user-provided and are used to model system and standard headers' paths.
-iprefix <dir> Set the -iwithprefix/-iwithprefixbefore prefix
-iquote <directory> Add directory to QUOTE include search path
-isysroot <dir> Set the system root directory (usually /)
-isystem <directory> Add directory to SYSTEM include search path
-ivfsoverlay <value> Overlay the virtual filesystem described by file over the real file system
-iwithprefixbefore <dir>
Set directory to include search path with prefix
-iwithprefix <dir> Set directory to SYSTEM include search path with prefix
-iwithsysroot <directory>
Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
-I <dir> Add directory to include search path
--linker-option=<value> Add linker option
-load <dsopath> Load the named plugin (dynamic shared object)
-main-file-name <value> Main file name to use for debug info
-malign-double Align doubles to two words in structs (x86 only)
-masm-verbose Generate verbose assembly output
-massembler-fatal-warnings
Make assembler warnings fatal
-mbackchain Link stack frames through backchain on System Z
-mcode-model <value> The code model to use
-mconstructor-aliases Emit complete constructors and destructors as aliases when possible
-mdebug-pass <value> Enable additional debug output
-mdisable-fp-elim Disable frame pointer elimination optimization
-mdisable-tail-calls Disable tail call optimization, keeping the call stack accurate
-meabi <value> Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
-menable-no-infs Allow optimization to assume there are no infinities.
-menable-no-nans Allow optimization to assume there are no NaNs.
-menable-unsafe-fp-math Allow unsafe floating-point math optimizations which may decrease precision
-mfentry Insert calls to fentry at function entry (x86 only)
-mfloat-abi <value> The float ABI to use
-mfpmath <value> Which unit to use for fp math
-mglobal-merge Enable merging of globals
-MG Add missing headers to depfile
-mhvx-double Enable Hexagon Double Vector eXtensions
-mhvx Enable Hexagon Vector eXtensions
-migrate Migrate source code
-mincremental-linker-compatible
(integrated-as) Emit an object file which can be used with an incremental linker
-mlimit-float-precision <value>
Limit float precision to the given value
-mlink-bitcode-file <value>
Link the given bitcode file before performing optimizations.
-mlink-cuda-bitcode <value>
Link and internalize needed symbols from the given bitcode file before performing optimizations.
-mllvm <value> Additional arguments to forward to LLVM's option processing
-mms-bitfields Set the default structure layout to be compatible with the Microsoft compiler standard
-mno-global-merge Disable merging of globals
-mno-hvx-double Disable Hexagon Double Vector eXtensions
-mno-hvx Disable Hexagon Vector eXtensions
-mno-zero-initialized-in-bss
Do not put zero initialized data in the BSS
-mnoexecstack Mark the file as not needing an executable stack
-module-dependency-dir <value>
Directory to dump module dependencies to
-module-file-deps Include module files in dependency output
-module-file-info Provide information about a particular module file
-momit-leaf-frame-pointer
Omit frame pointer setup for leaf functions
-mpie-copy-relocations Use copy relocations support for PIE builds
-MP Create phony target for each dependency (other than main file)
-mqdsp6-compat Enable hexagon-qdsp6 backward compatibility
-MQ <value> Specify name of main file output to quote in depfile
-mregparm <value> Limit the number of registers available for integer arguments
-mrelax-all (integrated-as) Relax all machine instructions
--mrelax-relocations Use relaxable elf relocations
-mrelocation-model <value>
The relocation model to use
-mrtd Make StdCall calling convention the default
-msave-temp-labels Save temporary labels in the symbol table. Note this may change .s semantics and shouldn't generally be used on compiler-generated code.
-msoft-float Use software floating point
-mstack-alignment=<value>
Set the stack alignment
-mstack-probe-size=<value>
Set the stack probe size
-mstackrealign Force realign the stack at entry to every function
-mstrict-align Force all memory accesses to be aligned (same as mno-unaligned-access)
-mt-migrate-directory <value>
Directory for temporary files produced during ARC or ObjC migration
-mthread-model <value> The thread model to use, e.g. posix, single (posix by default)
-MT <value> Specify name of main file output in depfile
-munwind-tables Generate unwinding tables for all functions
-MV Use NMake/Jom format for the depfile
-no-code-completion-globals
Do not include global declarations in code-completion results.
-no-emit-llvm-uselists Don't preserve order of LLVM use-lists when serializing
-no-finalize-removal Do not remove finalize method in gc mode
-no-implicit-float Don't generate implicit floating point instructions
-no-ns-alloc-error Do not error on use of NSAllocateCollectable/NSReallocateCollectable
-no-struct-path-tbaa Turn off struct-path aware Type Based Alias Analysis
--no-system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as not including a system header.
-nobuiltininc Disable builtin #include directories
-nostdinc++ Disable standard #include directories for the C++ standard library
-nostdsysteminc Disable standard system #include directories
-objc-isystem <directory>
Add directory to the ObjC SYSTEM include search path
-objcmt-atomic-property Make migration to 'atomic' properties
-objcmt-migrate-all Enable migration to modern ObjC
-objcmt-migrate-annotation
Enable migration to property and method annotations
-objcmt-migrate-designated-init
Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
-objcmt-migrate-instancetype
Enable migration to infer instancetype for method result type
-objcmt-migrate-literals
Enable migration to modern ObjC literals
-objcmt-migrate-ns-macros
Enable migration to NS_ENUM/NS_OPTIONS macros
-objcmt-migrate-property-dot-syntax
Enable migration of setter/getter messages to property-dot syntax
-objcmt-migrate-property
Enable migration to modern ObjC property
-objcmt-migrate-protocol-conformance
Enable migration to add protocol conformance on classes
-objcmt-migrate-readonly-property
Enable migration to modern ObjC readonly property
-objcmt-migrate-readwrite-property
Enable migration to modern ObjC readwrite property
-objcmt-migrate-subscripting
Enable migration to modern ObjC subscripting
-objcmt-ns-nonatomic-iosonly
Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
-objcmt-returns-innerpointer-property
Enable migration to annotate property with NS_RETURNS_INNER_POINTER
-objcmt-whitelist-dir-path=<value>
Only modify files with a filename contained in the provided directory path
-objcxx-isystem <directory>
Add directory to the ObjC++ SYSTEM include search path
-opt-record-file <value>
File name to use for YAML optimization record output
-o <file> Write output to <file>
-pg Enable mcount instrumentation
-pic-is-pie File is for a position independent executable
-pic-level <value> Value for __PIC__
-plugin-arg-<name> <arg>
Pass <arg> to plugin <name>
-plugin <name> Use the named plugin action instead of the default action (use "help" to list available options)
-preamble-bytes=<value> Assume that the precompiled header is a precompiled preamble covering the first N bytes of the main file
-print-decl-contexts Print DeclContexts and their Decls
-print-ivar-layout Enable Objective-C Ivar layout bitmap print trace
-print-preamble Print the "preamble" of a file, which is a candidate for implicit precompiled headers.
-print-stats Print performance metrics and statistics
-pthread Support POSIX threads in generated code
-P Disable linemarker output in -E mode
-relaxed-aliasing Turn off Type Based Alias Analysis
-relocatable-pch Whether to build a relocatable precompiled header
-remap-file <from>;<to> Replace the contents of the <from> file with the contents of the <to> file
-resource-dir <value> The directory which holds the compiler resource files
-rewrite-macros Expand macros without full preprocessing
-rewrite-objc Rewrite Objective-C source to C++
-rewrite-test Rewriter playground
-Rpass-analysis=<value> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
-Rpass-missed=<value> Report missed transformations by optimization passes whose name matches the given POSIX regular expression
-Rpass=<value> Report transformations performed by optimization passes whose name matches the given POSIX regular expression
-R<remark> Enable the specified remark
-serialize-diagnostic-file <filename>
File for serializing diagnostics in a binary format
--show-includes Print cl.exe style /showIncludes to stdout
-split-dwarf-file <value>
File name to use for split dwarf debug info output
-split-dwarf Split out the dwarf .dwo sections
-split-stacks Try to use a split stack if possible.
-stack-protector-buffer-size <value>
Lower bound for a buffer to be considered for stack protection
-stack-protector <value>
Enable stack protectors
-static-define Should __STATIC__ be defined
-stats-file=<value> Filename to write statistics to
-std=<value> Language standard to compile for
-stdlib=<value> C++ standard library to use
-sys-header-deps Include system headers in dependency output
--system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as including a system header.
-S Only run preprocess and compilation steps
-target-abi <value> Target a particular ABI type
-target-cpu <value> Target a specific cpu type
-target-feature <value> Target specific attributes
-target-linker-version <value>
Target linker version
-test-coverage Do not generate coverage files or remove coverage changes from IR
-token-cache <path> Use specified token cache file
-traditional-cpp Enable some traditional CPP emulation
-trim-egraph Only show error-related paths in the analysis graph
-triple <value> Specify target triple (e.g. i686-apple-darwin9)
-undef undef all system defines
-unoptimized-cfg Generate unoptimized CFGs for all analyses
-U <macro> Undefine macro <macro>
-vectorize-loops Run the Loop vectorization passes
-vectorize-slp Run the SLP vectorization passes
-verify-ignore-unexpected=<value>
Ignore unexpected diagnostic messages
-verify-ignore-unexpected
Ignore unexpected diagnostic messages
-verify-pch Load and verify that a pre-compiled header file is not stale
-verify Verify diagnostic output using comment directives
-version Print the compiler version
-vtordisp-mode=<value> Control vtordisp placement on win32 targets
-v Show commands to run and use verbose output
-Wdeprecated Enable warnings for deprecated constructs and define __DEPRECATED
-Wno-rewrite-macros Silence ObjC rewriting warnings
-working-directory <value>
Resolve file paths relative to the specified directory
-W<warning> Enable the specified warning
-w Suppress all warnings
-x <language> Treat subsequent input files as having type <language>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment