..
  -------------------------------------------------------------------
  NOTE: This file is automatically generated by running clang-tblgen
  -gen-opt-docs. Do not edit this file by hand!!
  -------------------------------------------------------------------

=====================================
Clang command line argument reference
=====================================
.. contents::
   :local:

Introduction
============

This page lists the command line arguments currently supported by the
GCC-compatible ``clang`` and ``clang++`` drivers.


.. program:: clang
.. option:: -B<dir>, --prefix <arg>, --prefix=<arg>

Add <dir> to search path for binaries and object files used implicitly

.. option:: -F<arg>

Add directory to framework include search path

.. option:: -ObjC

Treat source input files as Objective-C inputs

.. program:: clang1
.. option:: -ObjC++
.. program:: clang

Treat source input files as Objective-C++ inputs

.. option:: -Qunused-arguments

Don't emit warning for unused driver arguments

.. option:: -Wa,<arg>,<arg2>...

Pass the comma separated arguments in <arg> to the assembler

.. option:: -Wlarge-by-value-copy=<arg>

.. option:: -Xarch\_<arg1> <arg2>

.. option:: -Xcuda-fatbinary <arg>

Pass <arg> to fatbinary invocation

.. option:: -Xcuda-ptxas <arg>

Pass <arg> to the ptxas assembler

.. option:: -Z<arg>

.. option:: -a<arg>, --profile-blocks

.. option:: -all\_load

.. option:: -allowable\_client <arg>

.. option:: --analyze

Run the static analyzer

.. option:: --analyze-auto

.. option:: --analyzer-no-default-checks

.. option:: --analyzer-output<arg>

Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text).

.. option:: -ansi, --ansi

.. option:: -arch <arg>

.. program:: clang1
.. option:: -arch\_errors\_fatal
.. program:: clang

.. program:: clang2
.. option:: -arch\_only <arg>
.. program:: clang

.. option:: -arcmt-migrate-emit-errors

Emit ARC errors even if the migrator can fix them

.. option:: -arcmt-migrate-report-output <arg>

Output path for the plist report

.. option:: --autocomplete=<arg>

.. option:: -bind\_at\_load

.. option:: -bundle

.. program:: clang1
.. option:: -bundle\_loader <arg>
.. program:: clang

.. option:: -client\_name<arg>

.. option:: -compatibility\_version<arg>

.. option:: --constant-cfstrings

.. option:: -coverage, --coverage

.. option:: --cuda-compile-host-device

Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.

.. option:: --cuda-device-only

Compile CUDA code for device only

.. option:: --cuda-gpu-arch=<arg>, --no-cuda-gpu-arch=<arg>

CUDA GPU architecture (e.g. sm\_35).  May be specified more than once.

.. option:: --cuda-host-only

Compile CUDA code for host only.  Has no effect on non-CUDA compilations.

.. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug

Enable device-side debug info generation. Disables ptxas optimizations.

.. option:: -current\_version<arg>

.. option:: -dead\_strip

.. option:: -dependency-dot <arg>

Filename to write DOT-formatted header dependencies to

.. option:: -dependency-file <arg>

Filename (or -) to write dependency output to

.. option:: -dumpmachine

.. option:: -dumpversion

.. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>

.. option:: -dylib\_file <arg>

.. option:: -dylinker

.. program:: clang1
.. option:: -dylinker\_install\_name<arg>
.. program:: clang

.. option:: -dynamic

.. option:: -dynamiclib

.. option:: -emit-ast

Emit Clang AST files for source inputs

.. option:: -exported\_symbols\_list <arg>

.. option:: -faligned-new=<arg>

.. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals

Use approximate transcendental functions

.. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero

Flush denormal floating point values to zero in CUDA device mode.

.. option:: -fheinous-gnu-extensions

.. option:: -flat\_namespace

.. option:: -fopenmp-targets=<arg1>,<arg2>...

Specify comma-separated list of triples OpenMP offloading targets to be supported

.. option:: -force\_cpusubtype\_ALL

.. program:: clang1
.. option:: -force\_flat\_namespace
.. program:: clang

.. program:: clang2
.. option:: -force\_load <arg>
.. program:: clang

.. option:: -framework <arg>

.. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath

Add -rpath with architecture-specific resource directory to the linker flags

.. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>

Use the gcc toolchain at the given directory

.. option:: -gcodeview

Generate CodeView debug information

.. option:: -headerpad\_max\_install\_names<arg>

.. option:: -help, --help

Display available options

.. option:: --help-hidden

.. option:: -image\_base <arg>

.. option:: -index-header-map

Make the next included directory (-I or -F) an indexer header map

.. option:: -init <arg>

.. option:: -install\_name <arg>

.. option:: -keep\_private\_externs

.. option:: -lazy\_framework <arg>

.. program:: clang1
.. option:: -lazy\_library <arg>
.. program:: clang

.. option:: -mbig-endian, -EB

.. option:: --migrate

Run the migrator

.. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>

.. option:: -mlinker-version=<arg>

.. option:: -mlittle-endian, -EL

.. option:: -mllvm <arg>

Additional arguments to forward to LLVM's option processing

.. option:: -module-dependency-dir <arg>

Directory to dump module dependencies to

.. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>

.. option:: -multi\_module

.. option:: -multiply\_defined <arg>

.. program:: clang1
.. option:: -multiply\_defined\_unused <arg>
.. program:: clang

.. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>

.. option:: --no-cuda-version-check

Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.

.. option:: -no-integrated-cpp, --no-integrated-cpp

.. option:: -no\_dead\_strip\_inits\_and\_terms

.. option:: -nobuiltininc

Disable builtin #include directories

.. option:: -nocudainc

.. option:: -nocudalib

.. option:: -nodefaultlibs

.. option:: -nofixprebinding

.. option:: -nolibc

.. option:: -nomultidefs

.. option:: -nopie, -no-pie

.. option:: -noprebind

.. option:: -noseglinkedit

.. option:: -nostartfiles

.. option:: -nostdinc, --no-standard-includes

.. program:: clang1
.. option:: -nostdinc++
.. program:: clang

Disable standard #include directories for the C++ standard library

.. option:: -nostdlib, --no-standard-libraries

.. option:: -nostdlibinc

.. option:: -o<file>, --output <arg>, --output=<arg>

Write output to <file>

.. option:: -objcmt-atomic-property

Make migration to 'atomic' properties

.. option:: -objcmt-migrate-all

Enable migration to modern ObjC

.. option:: -objcmt-migrate-annotation

Enable migration to property and method annotations

.. option:: -objcmt-migrate-designated-init

Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods

.. option:: -objcmt-migrate-instancetype

Enable migration to infer instancetype for method result type

.. option:: -objcmt-migrate-literals

Enable migration to modern ObjC literals

.. option:: -objcmt-migrate-ns-macros

Enable migration to NS\_ENUM/NS\_OPTIONS macros

.. option:: -objcmt-migrate-property

Enable migration to modern ObjC property

.. option:: -objcmt-migrate-property-dot-syntax

Enable migration of setter/getter messages to property-dot syntax

.. option:: -objcmt-migrate-protocol-conformance

Enable migration to add protocol conformance on classes

.. option:: -objcmt-migrate-readonly-property

Enable migration to modern ObjC readonly property

.. option:: -objcmt-migrate-readwrite-property

Enable migration to modern ObjC readwrite property

.. option:: -objcmt-migrate-subscripting

Enable migration to modern ObjC subscripting

.. option:: -objcmt-ns-nonatomic-iosonly

Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute

.. option:: -objcmt-returns-innerpointer-property

Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER

.. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>

Only modify files with a filename contained in the provided directory path

.. option:: -object

.. option:: -p, --profile

.. option:: -pagezero\_size<arg>

.. option:: -pg

Enable mcount instrumentation

.. option:: -pie

.. option:: -pipe, --pipe

Use pipes between commands, when possible

.. option:: -prebind

.. program:: clang1
.. option:: -prebind\_all\_twolevel\_modules
.. program:: clang

.. option:: -preload

.. option:: --print-diagnostic-categories

.. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>

Print the full library path of <file>

.. option:: -print-ivar-layout

Enable Objective-C Ivar layout bitmap print trace

.. option:: -print-libgcc-file-name, --print-libgcc-file-name

Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")

.. option:: -print-multi-directory, --print-multi-directory

.. option:: -print-multi-lib, --print-multi-lib

.. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>

Print the full program path of <name>

.. option:: -print-resource-dir, --print-resource-dir

Print the resource directory pathname

.. option:: -print-search-dirs, --print-search-dirs

Print the paths used for finding libraries and programs

.. option:: -private\_bundle

.. option:: -pthread, -no-pthread

Support POSIX threads in generated code

.. option:: -pthreads

.. option:: -rdynamic

.. option:: -read\_only\_relocs <arg>

.. option:: -relocatable-pch, --relocatable-pch

Whether to build a relocatable precompiled header

.. option:: -remap

.. option:: -rewrite-legacy-objc

Rewrite Legacy Objective-C source to C++

.. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>

Compiler runtime library to use

.. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)

Save llvm statistics.

.. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)

Save intermediate compilation results.

.. option:: -sectalign <arg1> <arg2> <arg3>

.. option:: -sectcreate <arg1> <arg2> <arg3>

.. option:: -sectobjectsymbols <arg1> <arg2>

.. option:: -sectorder <arg1> <arg2> <arg3>

.. option:: -seg1addr<arg>

.. option:: -seg\_addr\_table <arg>

.. program:: clang1
.. option:: -seg\_addr\_table\_filename <arg>
.. program:: clang

.. option:: -segaddr <arg1> <arg2>

.. option:: -segcreate <arg1> <arg2> <arg3>

.. option:: -seglinkedit

.. option:: -segprot <arg1> <arg2> <arg3>

.. option:: -segs\_read\_<arg>

.. program:: clang1
.. option:: -segs\_read\_only\_addr <arg>
.. program:: clang

.. program:: clang2
.. option:: -segs\_read\_write\_addr <arg>
.. program:: clang

.. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>

Serialize compiler diagnostics to a file

.. option:: -shared, --shared

.. option:: -shared-libasan

.. option:: -shared-libgcc

.. option:: -single\_module

.. option:: -specs=<arg>, --specs=<arg>

.. option:: -static, --static

.. option:: -static-libgcc

.. option:: -static-libstdc++

.. option:: -std-default=<arg>

.. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>

C++ standard library to use

.. option:: -sub\_library<arg>

.. program:: clang1
.. option:: -sub\_umbrella<arg>
.. program:: clang

.. option:: --sysroot=<arg>, --sysroot <arg>

.. option:: --target-help

.. option:: --target=<arg>, -target <arg>

Generate code for the given target

.. option:: -time

Time individual commands

.. option:: -traditional, --traditional

.. option:: -traditional-cpp, --traditional-cpp

Enable some traditional CPP emulation

.. option:: -twolevel\_namespace

.. program:: clang1
.. option:: -twolevel\_namespace\_hints
.. program:: clang

.. option:: -umbrella <arg>

.. option:: -unexported\_symbols\_list <arg>

.. option:: -v, --verbose

Show commands to run and use verbose output

.. option:: --verify-debug-info

Verify the binary representation of debug output

.. option:: --version

.. option:: -w, --no-warnings

Suppress all warnings

.. option:: -weak-l<arg>

.. option:: -weak\_framework <arg>

.. program:: clang1
.. option:: -weak\_library <arg>
.. program:: clang

.. program:: clang2
.. option:: -weak\_reference\_mismatches <arg>
.. program:: clang

.. option:: -whatsloaded

.. option:: -whyload

.. option:: -working-directory<arg>, -working-directory=<arg>

Resolve file paths relative to the specified directory

.. option:: -x<language>, --language <arg>, --language=<arg>

Treat subsequent input files as having type <language>

.. option:: -y<arg>

Actions
=======
The action to perform on the input.

.. option:: -E, --preprocess

Only run the preprocessor

.. option:: -S, --assemble

Only run preprocess and compilation steps

.. option:: -c, --compile

Only run preprocess, compile, and assemble steps

.. option:: -emit-llvm

Use the LLVM representation for assembler and object files

.. option:: -fsyntax-only

.. option:: -module-file-info

Provide information about a particular module file

.. option:: --precompile

Only precompile the input

.. option:: -rewrite-objc

Rewrite Objective-C source to C++

.. option:: -verify-pch

Load and verify that a pre-compiled header file is not stale

Compilation flags
=================

Flags controlling the behavior of Clang during compilation. These flags have
no effect during actions that do not perform compilation.

.. option:: -Xassembler <arg>

Pass <arg> to the assembler

.. option:: -Xclang <arg>

Pass <arg> to the clang compiler

.. option:: -fclang-abi-compat=<version>

Attempt to match the ABI of Clang <version>

.. option:: -fcomment-block-commands=<arg>,<arg2>...

Treat each comma separated argument in <arg> as a documentation comment block command

.. option:: -fdeclspec, -fno-declspec

Allow \_\_declspec as a keyword

.. option:: -fdepfile-entry=<arg>

.. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info

.. option:: -fdiagnostics-format=<arg>

.. option:: -fdiagnostics-parseable-fixits

Print fix-its in machine parseable form

.. option:: -fdiagnostics-print-source-range-info

Print source range spans in numeric form

.. option:: -fdiagnostics-show-category=<arg>

.. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager

Enables an experimental new pass manager in LLVM.

.. option:: -finline-functions, -fno-inline-functions

Inline suitable functions

.. option:: -finline-hint-functions

Inline functions which are (explicitly or implicitly) marked inline

.. option:: -fno-crash-diagnostics

Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash

.. option:: -fno-sanitize-blacklist

Don't use blacklist file for sanitizers

.. option:: -fparse-all-comments

.. option:: -fsanitize-address-field-padding=<arg>

Level of field padding for AddressSanitizer

.. option:: -fsanitize-address-globals-dead-stripping

Enable linker dead stripping of globals in AddressSanitizer

.. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope

Enable use-after-scope detection in AddressSanitizer

.. option:: -fsanitize-blacklist=<arg>

Path to blacklist file for sanitizers

.. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso

Enable control flow integrity (CFI) checks for cross-DSO calls.

.. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...

Specify the type of coverage instrumentation for Sanitizers

.. option:: -fsanitize-link-c++-runtime

.. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins

Enable origins tracking in MemorySanitizer

.. program:: clang1
.. option:: -fsanitize-memory-track-origins=<arg>
.. program:: clang

Enable origins tracking in MemorySanitizer

.. option:: -fsanitize-memory-use-after-dtor

Enable use-after-destroy detection in MemorySanitizer

.. option:: -fsanitize-recover, -fno-sanitize-recover

.. program:: clang1
.. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>...
.. program:: clang

Enable recovery for specified sanitizers

.. option:: -fsanitize-stats, -fno-sanitize-stats

Enable sanitizer statistics gathering.

.. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics

Enable atomic operations instrumentation in ThreadSanitizer (default)

.. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit

Enable function entry/exit instrumentation in ThreadSanitizer (default)

.. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access

Enable memory access instrumentation in ThreadSanitizer (default)

.. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>...

Enable trapping for specified sanitizers

.. option:: -fsanitize-undefined-strip-path-components=<number>

Strip (or keep only, if negative) a given number of path components when emitting check metadata.

.. option:: -fsanitize-undefined-trap-on-error, -fno-sanitize-undefined-trap-on-error

.. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...

Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks

.. option:: --param <arg>, --param=<arg>

.. option:: -std=<arg>, --std=<arg>, --std <arg>

Language standard to compile for

Preprocessor flags
~~~~~~~~~~~~~~~~~~

Flags controlling the behavior of the Clang preprocessor.

.. option:: -C, --comments

Include comments in preprocessed output

.. option:: -CC, --comments-in-macros

Include comments from within macros in preprocessed output

.. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg>

Define <macro> to <value> (or 1 if <value> omitted)

.. option:: -H, --trace-includes

Show header includes and nesting depth

.. option:: -P, --no-line-commands

Disable linemarker output in -E mode

.. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>

Undefine macro <macro>

.. option:: -Wp,<arg>,<arg2>...

Pass the comma separated arguments in <arg> to the preprocessor

.. option:: -Xpreprocessor <arg>

Pass <arg> to the preprocessor

Include path management
-----------------------

Flags controlling how ``#include``\s are resolved to files.

.. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg>

Add directory to include search path

.. option:: -I-, --include-barrier

Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path

.. option:: --cuda-path=<arg>

CUDA installation path

.. option:: -cxx-isystem<directory>

Add directory to the C++ SYSTEM include search path

.. option:: -fbuild-session-file=<file>

Use the last modification time of <file> as the build session timestamp

.. option:: -fbuild-session-timestamp=<time since Epoch in seconds>

Time when the current build session started

.. option:: -fmodules-cache-path=<directory>

Specify the module cache path

.. option:: -fmodules-disable-diagnostic-validation

Disable validation of the diagnostic options when loading the module

.. option:: -fmodules-prune-after=<seconds>

Specify the interval (in seconds) after which a module file will be considered unused

.. option:: -fmodules-prune-interval=<seconds>

Specify the interval (in seconds) between attempts to prune the module cache

.. option:: -fmodules-user-build-path <directory>

Specify the module user build path

.. option:: -fmodules-validate-once-per-build-session

Don't verify input files for the modules if the module has been successfully validated or loaded during this build session

.. option:: -fmodules-validate-system-headers

Validate the system headers that a module depends on when loading the module

.. option:: -fprebuilt-module-path=<directory>

Specify the prebuilt module path

.. option:: -i<arg>

.. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>

Add directory to AFTER include search path

.. option:: -iframework<arg>

Add directory to SYSTEM framework search path

.. option:: -iframeworkwithsysroot<directory>

Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot

.. option:: -imacros<file>, --imacros<file>, --imacros=<arg>

Include macros from file before parsing

.. option:: -include<file>, --include<file>, --include=<arg>

Include file before parsing

.. option:: -include-pch <file>

Include precompiled header file

.. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>

Set the -iwithprefix/-iwithprefixbefore prefix

.. option:: -iquote<directory>

Add directory to QUOTE include search path

.. option:: -isysroot<dir>

Set the system root directory (usually /)

.. option:: -isystem<directory>

Add directory to SYSTEM include search path

.. option:: -isystem-after<directory>

Add directory to end of the SYSTEM include search path

.. option:: -ivfsoverlay<arg>

Overlay the virtual filesystem described by file over the real file system

.. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>

Set directory to SYSTEM include search path with prefix

.. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>

Set directory to include search path with prefix

.. option:: -iwithsysroot<directory>

Add directory to SYSTEM include search path, absolute paths are relative to -isysroot

.. option:: --ptxas-path=<arg>

Path to ptxas (used for compiling CUDA code)

.. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>

Treat all #include paths starting with <prefix> as including a system header.

Dependency file generation
--------------------------

Flags controlling generation of a dependency file for ``make``-like build
systems.

.. option:: -M, --dependencies

Like -MD, but also implies -E and writes to stdout by default

.. option:: -MD, --write-dependencies

Write a depfile containing user and system headers

.. option:: -MF<file>

Write depfile output from -MMD, -MD, -MM, or -M to <file>

.. option:: -MG, --print-missing-file-dependencies

Add missing headers to depfile

.. option:: -MJ<arg>

Write a compilation database entry per input

.. option:: -MM, --user-dependencies

Like -MMD, but also implies -E and writes to stdout by default

.. option:: -MMD, --write-user-dependencies

Write a depfile containing user headers

.. option:: -MP

Create phony target for each dependency (other than main file)

.. option:: -MQ<arg>

Specify name of main file output to quote in depfile

.. option:: -MT<arg>

Specify name of main file output in depfile

.. option:: -MV

Use NMake/Jom format for the depfile

Dumping preprocessor state
--------------------------

Flags allowing the state of the preprocessor to be dumped in various ways.

.. option:: -d

.. program:: clang1
.. option:: -d<arg>
.. program:: clang

.. option:: -dA

.. option:: -dD

Print macro definitions in -E mode in addition to normal output

.. option:: -dI

Print include directives in -E mode in addition to normal output

.. option:: -dM

Print macro definitions in -E mode instead of normal output

Diagnostic flags
~~~~~~~~~~~~~~~~

Flags controlling which warnings, errors, and remarks Clang will generate.
See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.

.. option:: -R<remark>

Enable the specified remark

.. option:: -Rpass-analysis=<arg>

Report transformation analysis from optimization passes whose name matches the given POSIX regular expression

.. option:: -Rpass-missed=<arg>

Report missed transformations by optimization passes whose name matches the given POSIX regular expression

.. option:: -Rpass=<arg>

Report transformations performed by optimization passes whose name matches the given POSIX regular expression

.. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>

Enable the specified warning

.. option:: -Wdeprecated, -Wno-deprecated

Enable warnings for deprecated constructs and define \_\_DEPRECATED

.. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>

Target-independent compilation options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. option:: -Wframe-larger-than=<arg>

.. option:: -fPIC, -fno-PIC

.. option:: -fPIE, -fno-PIE

.. option:: -faccess-control, -fno-access-control

.. program:: clang1
.. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
.. program:: clang

Enable C++17 aligned allocation functions

.. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders

Treat editor placeholders as valid source code

.. option:: -fallow-unsupported

.. option:: -faltivec, -fno-altivec

.. option:: -fansi-escape-codes

Use ANSI escape codes for diagnostics

.. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables

Use Apple's kernel extensions ABI

.. option:: -fapple-pragma-pack, -fno-apple-pragma-pack

Enable Apple gcc-compatible #pragma pack handling

.. option:: -fapplication-extension, -fno-application-extension

Restrict code to those available for App Extensions

.. option:: -fasm, -fno-asm

.. option:: -fasm-blocks, -fno-asm-blocks

.. option:: -fassociative-math, -fno-associative-math

.. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new

.. option:: -fast

.. option:: -fastcp

.. option:: -fastf

.. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables

.. option:: -fautolink, -fno-autolink

.. option:: -fblocks, -fno-blocks

Enable the 'blocks' language feature

.. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>

.. option:: -fborland-extensions, -fno-borland-extensions

Accept non-standard constructs supported by the Borland compiler

.. option:: -fbracket-depth=<arg>

.. option:: -fbuiltin, -fno-builtin

.. option:: -fbuiltin-module-map

Load the clang builtins module map file.

.. option:: -fcaret-diagnostics, -fno-caret-diagnostics

.. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>

.. option:: -fcolor-diagnostics, -fno-color-diagnostics

Use colors in diagnostics

.. option:: -fcommon, -fno-common

.. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>

.. option:: -fconstant-cfstrings, -fno-constant-cfstrings

.. option:: -fconstant-string-class=<arg>

.. option:: -fconstexpr-backtrace-limit=<arg>

.. option:: -fconstexpr-depth=<arg>

.. option:: -fconstexpr-steps=<arg>

.. option:: -fcoroutines-ts, -fno-coroutines-ts

Enable support for the C++ Coroutines TS

.. option:: -fcoverage-mapping, -fno-coverage-mapping

Generate coverage mapping to enable code coverage analysis

.. option:: -fcreate-profile

.. option:: -fcxx-exceptions, -fno-cxx-exceptions

Enable C++ exceptions

.. option:: -fcxx-modules, -fno-cxx-modules

.. option:: -fdata-sections, -fno-data-sections

Place each data in its own section (ELF Only)

.. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling

Emit extra debug info to make sample profile more accurate.

.. option:: -fdebug-macro, -fno-debug-macro

Emit macro debug information

.. option:: -fdebug-pass-arguments

.. option:: -fdebug-pass-structure

.. option:: -fdebug-prefix-map=<arg>

remap file source paths in debug info

.. option:: -fdebug-types-section, -fno-debug-types-section

Place debug types in their own section (ELF Only)

.. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing

Parse templated function definitions at the end of the translation unit

.. option:: -fdenormal-fp-math=<arg>

.. option:: -fdiagnostics-absolute-paths

Print absolute paths in diagnostics

.. option:: -fdiagnostics-color, -fno-diagnostics-color

.. program:: clang1
.. option:: -fdiagnostics-color=<arg>
.. program:: clang

.. option:: -fdiagnostics-hotness-threshold=<number>

Prevent optimization remarks from being output if they do not have at least this profile count

.. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness

Enable profile hotness information in diagnostic line

.. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack

Display include stacks for diagnostic notes

.. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option

Print option name with mappable diagnostics

.. option:: -fdiagnostics-show-template-tree

Print a template comparison tree for differing templates

.. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers

Allow '$' in identifiers

.. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm

.. option:: -felide-constructors, -fno-elide-constructors

.. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols

.. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)

Embed LLVM bitcode (option: off, all, bitcode, marker)

.. option:: -femit-all-decls

Emit all declarations, even if unused

.. option:: -femulated-tls, -fno-emulated-tls

Use emutls functions to access thread\_local variables

.. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>

.. option:: -ferror-limit=<arg>

.. option:: -fexceptions, -fno-exceptions

Enable support for exception handling

.. option:: -fexec-charset=<arg>

.. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>

.. option:: -ffast-math, -fno-fast-math

Allow aggressive, lossy floating-point optimizations

.. option:: -ffinite-math-only, -fno-finite-math-only

.. option:: -ffor-scope, -fno-for-scope

.. option:: -ffp-contract=<arg>

Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma, default) \| off (never fuse)

.. option:: -ffreestanding

Assert that the compilation takes place in a freestanding environment

.. option:: -ffunction-sections, -fno-function-sections

Place each function in its own section (ELF Only)

.. option:: -fgnu-inline-asm, -fno-gnu-inline-asm

.. option:: -fgnu-keywords, -fno-gnu-keywords

Allow GNU-extension keywords regardless of language standard

.. option:: -fgnu-runtime

Generate output compatible with the standard GNU Objective-C runtime

.. option:: -fgnu89-inline, -fno-gnu89-inline

Use the gnu89 inline semantics

.. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities

.. option:: -fhonor-nans, -fno-honor-nans

.. option:: -fhosted

.. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps

Implicitly search the file system for module map files.

.. option:: -fimplicit-modules, -fno-implicit-modules

.. option:: -finput-charset=<arg>

.. option:: -finstrument-functions

Generate calls to instrument function entry and exit

.. option:: -fintegrated-as, -fno-integrated-as, -integrated-as

Enable the integrated assembler

.. option:: -fjump-tables, -fno-jump-tables

.. option:: -flax-vector-conversions, -fno-lax-vector-conversions

.. option:: -flimited-precision=<arg>

.. option:: -flto, -fno-lto

Enable LTO in 'full' mode

.. option:: -flto-jobs=<arg>

Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)

.. program:: clang1
.. option:: -flto=<arg>
.. program:: clang

Set LTO mode to either 'full' or 'thin'

.. option:: -fmacro-backtrace-limit=<arg>

.. option:: -fmath-errno, -fno-math-errno

Require math functions to indicate errors by setting errno

.. option:: -fmax-type-align=<arg>

Specify the maximum alignment to enforce on pointers lacking an explicit alignment

.. option:: -fmerge-all-constants, -fno-merge-all-constants

.. option:: -fmessage-length=<arg>

.. option:: -fmodule-file-deps, -fno-module-file-deps

.. option:: -fmodule-file=<file>

Load this precompiled module file

.. option:: -fmodule-map-file=<file>

Load this module map file

.. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>

Specify the name of the module to build

.. option:: -fmodules, -fno-modules

Enable the 'modules' language feature

.. option:: -fmodules-decluse, -fno-modules-decluse

Require declaration of modules used within a module

.. option:: -fmodules-ignore-macro=<arg>

Ignore the definition of the given macro when building and loading modules

.. option:: -fmodules-search-all, -fno-modules-search-all

Search even non-imported modules to resolve references

.. option:: -fmodules-strict-decluse

Like -fmodules-decluse but requires all headers to be in modules

.. option:: -fmodules-ts

Enable support for the C++ Modules TS

.. option:: -fms-compatibility, -fno-ms-compatibility

Enable full Microsoft Visual C++ compatibility

.. option:: -fms-compatibility-version=<arg>

Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))

.. option:: -fms-extensions, -fno-ms-extensions

Accept some non-standard constructs supported by the Microsoft compiler

.. option:: -fms-memptr-rep=<arg>

.. option:: -fms-volatile<arg>

.. option:: -fmsc-version=<arg>

Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))

.. option:: -fmudflap

.. option:: -fmudflapth

.. option:: -fnested-functions

.. option:: -fnew-alignment=<align>, -fnew-alignment <arg>

Specifies the largest alignment guaranteed by '::operator new(size\_t)'

.. option:: -fnext-runtime

.. option:: -fno-builtin-<arg>

Disable implicit builtin knowledge of a specific function

.. option:: -fno-elide-type

Do not elide types when printing diagnostics

.. option:: -fno-max-type-align

.. option:: -fno-operator-names

Do not treat C++ operator name keywords as synonyms for operators

.. option:: -fno-strict-modules-decluse

.. option:: -fno-working-directory

.. option:: -fnoopenmp-use-tls

.. option:: -fobjc-abi-version=<arg>

.. option:: -fobjc-arc, -fno-objc-arc

Synthesize retain and release calls for Objective-C pointers

.. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions

Use EH-safe code when synthesizing retains and releases in -fobjc-arc

.. option:: -fobjc-exceptions, -fno-objc-exceptions

Enable Objective-C exceptions

.. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type

.. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch

.. option:: -fobjc-link-runtime

.. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi

.. option:: -fobjc-nonfragile-abi-version=<arg>

.. option:: -fobjc-runtime=<arg>

Specify the target Objective-C runtime kind and version

.. option:: -fobjc-sender-dependent-dispatch

.. option:: -fobjc-weak, -fno-objc-weak

Enable ARC-style weak references in Objective-C

.. option:: -fomit-frame-pointer, -fno-omit-frame-pointer

.. option:: -fopenmp, -fno-openmp

.. option:: -fopenmp-dump-offload-linker-script

.. option:: -fopenmp-use-tls

.. option:: -fopenmp-version=<arg>

.. program:: clang1
.. option:: -fopenmp=<arg>
.. program:: clang

.. option:: -foperator-arrow-depth=<arg>

.. option:: -foptimization-record-file=<arg>

Specify the file name of any generated YAML optimization record

.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls

.. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>

.. option:: -fpack-struct, -fno-pack-struct

.. program:: clang1
.. option:: -fpack-struct=<arg>
.. program:: clang

Specify the default maximum struct packing alignment

.. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings

Recognize and construct Pascal-style string literals

.. option:: -fpcc-struct-return

Override the default ABI to return all structs on the stack

.. option:: -fpch-preprocess

.. option:: -fpic, -fno-pic

.. option:: -fpie, -fno-pie

.. option:: -fplugin=<dsopath>

Load the named plugin (dynamic shared object)

.. option:: -fpreserve-as-comments, -fno-preserve-as-comments

.. option:: -fprofile-arcs, -fno-profile-arcs

.. option:: -fprofile-dir=<arg>

.. option:: -fprofile-generate, -fno-profile-generate

Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)

.. program:: clang1
.. option:: -fprofile-generate=<directory>
.. program:: clang

Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)

.. option:: -fprofile-instr-generate, -fno-profile-instr-generate

Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)

.. program:: clang1
.. option:: -fprofile-instr-generate=<file>
.. program:: clang

Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)

.. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use

.. program:: clang1
.. option:: -fprofile-instr-use=<arg>
.. program:: clang

Use instrumentation data for profile-guided optimization

.. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use

.. program:: clang1
.. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
.. program:: clang

Enable sample-based profile guided optimizations

.. program:: clang1
.. option:: -fprofile-use=<pathname>
.. program:: clang

Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.

.. option:: -freciprocal-math, -fno-reciprocal-math

Allow division operations to be reassociated

.. option:: -freg-struct-return

Override the default ABI to return small structs in registers

.. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args

Enable C++17 relaxed template template argument matching

.. option:: -freroll-loops, -fno-reroll-loops

Turn on loop reroller

.. option:: -fretain-comments-from-system-headers

.. option:: -frewrite-imports, -fno-rewrite-imports

.. option:: -frewrite-includes, -fno-rewrite-includes

.. option:: -frewrite-map-file <arg>

.. program:: clang1
.. option:: -frewrite-map-file=<arg>
.. program:: clang

.. option:: -fropi, -fno-ropi

.. 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:: -fspell-checking, -fno-spell-checking

.. option:: -fspell-checking-limit=<arg>

.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining

Place debug types in their own section (ELF Only)

.. option:: -fsplit-stack

.. option:: -fstack-protector, -fno-stack-protector

Enable stack protectors for functions potentially vulnerable to stack smashing

.. option:: -fstack-protector-all

Force the usage of stack protectors for all functions

.. option:: -fstack-protector-strong

Use a strong heuristic to apply stack protectors to functions

.. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug

Emit full debug info for all types used by the program

.. option:: -fstrict-aliasing, -fno-strict-aliasing

.. option:: -fstrict-enums, -fno-strict-enums

Enable optimizations based on the strict definition of an enum's value range

.. option:: -fstrict-overflow, -fno-strict-overflow

.. option:: -fstrict-return, -fno-strict-return

Always treat control flow paths that fall off the end of a non-void function as unreachable

.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers

Enable optimizations based on the strict rules for overwriting polymorphic C++ objects

.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa

.. option:: -ftabstop=<arg>

.. option:: -ftemplate-backtrace-limit=<arg>

.. option:: -ftemplate-depth-<arg>

.. option:: -ftemplate-depth=<arg>

.. option:: -ftest-coverage

.. option:: -fthinlto-index=<arg>

Perform ThinLTO importing using provided function summary index

.. option:: -fthreadsafe-statics, -fno-threadsafe-statics

.. option:: -ftime-report

.. option:: -ftls-model=<arg>

.. option:: -ftrap-function=<arg>

Issue call to specified function rather than a trap instruction

.. option:: -ftrapping-math, -fno-trapping-math

.. option:: -ftrapv

Trap on integer overflow

.. option:: -ftrapv-handler <arg>

.. program:: clang1
.. option:: -ftrapv-handler=<function name>
.. program:: clang

Specify the function to be called on overflow

.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs

Process trigraph sequences

.. option:: -funique-section-names, -fno-unique-section-names

Use unique names for text and data sections (ELF Only)

.. option:: -funit-at-a-time, -fno-unit-at-a-time

.. option:: -funroll-loops, -fno-unroll-loops

Turn on loop unroller

.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations

.. option:: -funsigned-bitfields

.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char

.. option:: -funwind-tables, -fno-unwind-tables

.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit

.. option:: -fuse-init-array, -fno-use-init-array

Use .init\_array instead of .ctors

.. option:: -fuse-ld=<arg>

.. option:: -fuse-line-directives, -fno-use-line-directives

.. option:: -fveclib=<arg>

Use the given vector functions library

.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize

Enable the loop vectorization passes

.. option:: -fverbose-asm, -fno-verbose-asm

.. option:: -fvisibility-inlines-hidden

Give inline C++ member functions default visibility by default

.. option:: -fvisibility-ms-compat

Give global types 'default' visibility and global functions and variables 'hidden' visibility by default

.. option:: -fvisibility=<arg>

Set the default symbol visibility for all global declarations

.. option:: -fwhole-program-vtables, -fno-whole-program-vtables

Enables whole-program vtable optimization. Requires -flto

.. option:: -fwrapv, -fno-wrapv

Treat signed integer overflow as two's complement

.. option:: -fwritable-strings

Store string literals as writable data

.. option:: -fxray-always-instrument=<arg>

Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.

.. option:: -fxray-instruction-threshold<arg>

.. program:: clang1
.. option:: -fxray-instruction-threshold=<arg>
.. program:: clang

Sets the minimum function size to instrument with XRay

.. option:: -fxray-instrument, -fno-xray-instrument

Generate XRay instrumentation sleds on function entry and exit

.. option:: -fxray-never-instrument=<arg>

Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.

.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss

.. option:: -fzvector, -fno-zvector, -mzvector

Enable System z vector language extension

.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic

.. option:: -pedantic-errors, --pedantic-errors

OpenCL flags
------------
.. option:: -cl-denorms-are-zero

OpenCL only. Allow denormals to be flushed to zero.

.. option:: -cl-fast-relaxed-math

OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.

.. option:: -cl-finite-math-only

OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.

.. option:: -cl-fp32-correctly-rounded-divide-sqrt

OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.

.. option:: -cl-kernel-arg-info

OpenCL only. Generate kernel argument metadata.

.. option:: -cl-mad-enable

OpenCL only. Allow use of less precise MAD computations in the generated binary.

.. option:: -cl-no-signed-zeros

OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.

.. option:: -cl-opt-disable

OpenCL only. This option disables all optimizations. By default optimizations are enabled.

.. option:: -cl-single-precision-constant

OpenCL only. Treat double precision floating-point constant as single precision constant.

.. option:: -cl-std=<arg>

OpenCL language standard to compile for.

.. option:: -cl-strict-aliasing

OpenCL only. This option is added for compatibility with OpenCL 1.0.

.. option:: -cl-unsafe-math-optimizations

OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.

Target-dependent compilation options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. option:: -G<size>, -G=<arg>, -msmall-data-threshold=<arg>

Put objects of at most <size> bytes into small data section (MIPS / Hexagon)

.. option:: -m16

.. option:: -m32

.. option:: -m64

.. option:: -mabi=<arg>

.. option:: -mabicalls, -mno-abicalls

Enable SVR4-style position-independent code (Mips only)

.. option:: -malign-double

Align doubles to two words in structs (x86 only)

.. option:: -march=<arg>

.. option:: -masm=<arg>

.. option:: -mbackchain, -mno-backchain

Link stack frames through backchain on System Z

.. option:: -mcheck-zero-division, -mno-check-zero-division

.. option:: -mcmodel=<arg>

.. option:: -mcompact-branches=<arg>

.. option:: -mconsole<arg>

.. option:: -mcpu=<arg>, -mv4 (equivalent to -mcpu=hexagonv4), -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62)

.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>

.. option:: -mdll<arg>

.. option:: -mdouble-float

.. option:: -mdsp, -mno-dsp

.. option:: -mdspr2, -mno-dspr2

.. option:: -mdynamic-no-pic<arg>

.. option:: -meabi <arg>

Set EABI type, e.g. 4, 5 or gnu (default depends on triple)

.. option:: -mfentry

Insert calls to fentry at function entry (x86 only)

.. option:: -mfloat-abi=<arg>

.. option:: -mfp32

Use 32-bit floating point registers (MIPS only)

.. option:: -mfp64

Use 64-bit floating point registers (MIPS only)

.. option:: -mfpmath=<arg>

.. option:: -mfpu=<arg>

.. option:: -mglobal-merge, -mno-global-merge

Enable merging of globals

.. option:: -mhard-float

.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>

.. option:: -miamcu, -mno-iamcu

Use Intel MCU ABI

.. option:: -mimplicit-float, -mno-implicit-float

.. option:: -mimplicit-it=<arg>

.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible

(integrated-as) Emit an object file which can be used with an incremental linker

.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>

.. option:: -mips16

.. option:: -mkernel

.. option:: -mldc1-sdc1, -mno-ldc1-sdc1

.. option:: -mlong-calls, -mno-long-calls

Generate branches with extended addressability, usually via indirect jumps.

.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>

Set Mac OS X deployment target

.. option:: -mmadd4, -mno-madd4

Enable the generation of 4-operand madd.s, madd.d and related instructions.

.. option:: -mmcu=<arg>

.. 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:: -mmt, -mno-mt

Enable MT ASE (MIPS only)

.. option:: -mnan=<arg>

.. option:: -mno-mips16

.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer

Omit frame pointer setup for leaf functions

.. option:: -moslib=<arg>

.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations

Use copy relocations support for PIE builds

.. option:: -mqdsp6-compat

Enable hexagon-qdsp6 backward compatibility

.. option:: -mrecip

.. program:: clang1
.. option:: -mrecip=<arg1>,<arg2>...
.. program:: clang

.. option:: -mred-zone, -mno-red-zone

.. option:: -mregparm=<arg>

.. option:: -mrelax-all, -mno-relax-all

(integrated-as) Relax all machine instructions

.. option:: -mrtd, -mno-rtd

Make StdCall calling convention the default

.. option:: -msingle-float

.. option:: -msoft-float, -mno-soft-float

Use software floating point

.. option:: -mstack-alignment=<arg>

Set the stack alignment

.. option:: -mstack-probe-size=<arg>

Set the stack probe size

.. option:: -mstackrealign, -mno-stackrealign

Force realign the stack at entry to every function

.. option:: -mthread-model <arg>

The thread model to use, e.g. posix, single (posix by default)

.. option:: -mthreads<arg>

.. option:: -mthumb, -mno-thumb

.. option:: -mtune=<arg>

.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>

.. option:: -municode<arg>

.. option:: -mvx, -mno-vx

.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings

.. option:: -mwatchos-version-min=<arg>

.. option:: -mwindows<arg>

.. option:: -mx32

.. option:: -mxgot, -mno-xgot

AARCH64
-------
.. option:: -ffixed-x18

Reserve the x18 register (AArch64 only)

.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769

Workaround Cortex-A53 erratum 835769 (AArch64 only)

.. option:: -mgeneral-regs-only

Generate code which only uses the general purpose registers (AArch64 only)

AMDGPU
------
ARM
---
.. option:: -ffixed-r9

Reserve the r9 register (ARM only)

.. option:: -mcrc

Allow use of CRC instructions (ARM only)

.. option:: -mexecute-only, -mno-execute-only, -mpure-code

Disallow generation of data access to code sections (ARM only)

.. option:: -mno-movt

Disallow use of movt/movw pairs (ARM only)

.. option:: -mno-neg-immediates

Disallow converting instructions with negative immediates to their negation or inversion.

.. option:: -mnocrc

Disallow use of CRC instructions (ARM only)

.. option:: -mrestrict-it, -mno-restrict-it

Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.

.. option:: -munaligned-access, -mno-unaligned-access

Allow memory accesses to be unaligned (AArch32/AArch64 only)

Hexagon
-------
.. option:: -mhvx, -mno-hvx

Enable Hexagon Vector eXtensions

.. option:: -mhvx-double, -mno-hvx-double

Enable Hexagon Double Vector eXtensions

.. option:: -mieee-rnd-near

PowerPC
-------
.. option:: -maltivec, -mno-altivec

.. option:: -mcmpb, -mno-cmpb

.. option:: -mcrbits, -mno-crbits

.. option:: -mcrypto, -mno-crypto

.. option:: -mdirect-move, -mno-direct-move

.. option:: -mfloat128, -mno-float128

.. option:: -mfprnd, -mno-fprnd

.. option:: -mhtm, -mno-htm

.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors

.. option:: -misel, -mno-isel

.. option:: -mlongcall, -mno-longcall

.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf

.. option:: -mpopcntd, -mno-popcntd

.. option:: -mpower8-vector, -mno-power8-vector

.. option:: -mpower9-vector, -mno-power9-vector

.. option:: -mqpx, -mno-qpx

.. option:: -mvsx, -mno-vsx

WebAssembly
-----------
.. option:: -msimd128, -mno-simd128

X86
---
.. option:: -m3dnow, -mno-3dnow

.. option:: -m3dnowa, -mno-3dnowa

.. option:: -madx, -mno-adx

.. option:: -maes, -mno-aes

.. option:: -mavx, -mno-avx

.. option:: -mavx2, -mno-avx2

.. option:: -mavx512bw, -mno-avx512bw

.. option:: -mavx512cd, -mno-avx512cd

.. option:: -mavx512dq, -mno-avx512dq

.. option:: -mavx512er, -mno-avx512er

.. option:: -mavx512f, -mno-avx512f

.. option:: -mavx512ifma, -mno-avx512ifma

.. option:: -mavx512pf, -mno-avx512pf

.. option:: -mavx512vbmi, -mno-avx512vbmi

.. option:: -mavx512vl, -mno-avx512vl

.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq

.. option:: -mbmi, -mno-bmi

.. option:: -mbmi2, -mno-bmi2

.. option:: -mclflushopt, -mno-clflushopt

.. option:: -mclwb, -mno-clwb

.. option:: -mclzero, -mno-clzero

.. option:: -mcx16, -mno-cx16

.. option:: -mf16c, -mno-f16c

.. option:: -mfma, -mno-fma

.. option:: -mfma4, -mno-fma4

.. option:: -mfsgsbase, -mno-fsgsbase

.. option:: -mfxsr, -mno-fxsr

.. option:: -mlwp, -mno-lwp

.. option:: -mlzcnt, -mno-lzcnt

.. option:: -mmmx, -mno-mmx

.. option:: -mmovbe, -mno-movbe

.. option:: -mmpx, -mno-mpx

.. option:: -mmwaitx, -mno-mwaitx

.. option:: -mpclmul, -mno-pclmul

.. option:: -mpku, -mno-pku

.. option:: -mpopcnt, -mno-popcnt

.. option:: -mprefetchwt1, -mno-prefetchwt1

.. option:: -mprfchw, -mno-prfchw

.. option:: -mrdrnd, -mno-rdrnd

.. option:: -mrdseed, -mno-rdseed

.. option:: -mrtm, -mno-rtm

.. option:: -msgx, -mno-sgx

.. option:: -msha, -mno-sha

.. option:: -msse, -mno-sse

.. option:: -msse2, -mno-sse2

.. option:: -msse3, -mno-sse3

.. option:: -msse4.1, -mno-sse4.1

.. program:: clang1
.. option:: -msse4.2, -mno-sse4.2, -msse4
.. program:: clang

.. option:: -msse4a, -mno-sse4a

.. option:: -mssse3, -mno-ssse3

.. option:: -mtbm, -mno-tbm

.. option:: -mx87, -m80387, -mno-x87

.. option:: -mxop, -mno-xop

.. option:: -mxsave, -mno-xsave

.. option:: -mxsavec, -mno-xsavec

.. option:: -mxsaveopt, -mno-xsaveopt

.. option:: -mxsaves, -mno-xsaves

Optimization level
~~~~~~~~~~~~~~~~~~

Flags controlling how much optimization should be performed.

.. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>

.. option:: -Ofast<arg>

Debug information generation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Flags controlling how much and what kind of debug information should be
generated.

Kind and level of debug information
-----------------------------------
.. option:: -g, --debug, --debug=<arg>

Generate source-level debug information

.. option:: -gdwarf-2

Generate source-level debug information with dwarf version 2

.. option:: -gdwarf-3

Generate source-level debug information with dwarf version 3

.. option:: -gdwarf-4, -gdwarf

Generate source-level debug information with dwarf version 4

.. option:: -gdwarf-5

Generate source-level debug information with dwarf version 5

.. option:: -gfull

.. option:: -gused

Debug level
___________
.. option:: -g0

.. option:: -g2

.. option:: -g3

.. option:: -ggdb0

.. option:: -ggdb1

.. option:: -ggdb2

.. option:: -ggdb3

.. option:: -gline-tables-only, -g1, -gmlt

Emit debug line number tables only

.. option:: -gmodules

Generate debug info with external references to clang modules or precompiled headers

Debugger to tune debug information for
______________________________________
.. option:: -ggdb

.. option:: -glldb

.. option:: -gsce

Debug information flags
-----------------------
.. option:: -gcolumn-info, -gno-column-info

.. option:: -gdwarf-aranges

.. option:: -ggnu-pubnames

.. option:: -grecord-gcc-switches, -gno-record-gcc-switches

.. option:: -gsplit-dwarf

.. option:: -gstrict-dwarf, -gno-strict-dwarf

.. option:: -gz

DWARF debug sections compression type

.. program:: clang1
.. option:: -gz=<arg>
.. program:: clang

DWARF debug sections compression type

Static analyzer flags
=====================

Flags controlling the behavior of the Clang Static Analyzer.

.. option:: -Xanalyzer <arg>

Pass <arg> to the static analyzer

Fortran compilation flags
=========================

Flags that will be passed onto the ``gfortran`` compiler when Clang is given
a Fortran input.

.. option:: -A<arg>, --assert <arg>, --assert=<arg>

.. option:: -A-<arg>

.. option:: -J<arg>

.. option:: -cpp

.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination

.. option:: -falign-commons, -fno-align-commons

.. option:: -fall-intrinsics, -fno-all-intrinsics

.. option:: -fautomatic, -fno-automatic

.. option:: -fbackslash, -fno-backslash

.. option:: -fbacktrace, -fno-backtrace

.. option:: -fblas-matmul-limit=<arg>

.. option:: -fbounds-check, -fno-bounds-check

.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries

.. option:: -fcheck=<arg>

.. option:: -fcoarray=<arg>

.. option:: -fconvert=<arg>

.. option:: -fcray-pointer, -fno-cray-pointer

.. option:: -fd-lines-as-code, -fno-d-lines-as-code

.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments

.. option:: -fdefault-double-8, -fno-default-double-8

.. option:: -fdefault-integer-8, -fno-default-integer-8

.. option:: -fdefault-real-8, -fno-default-real-8

.. option:: -fdollar-ok, -fno-dollar-ok

.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized

.. option:: -fdump-fortran-original, -fno-dump-fortran-original

.. option:: -fdump-parse-tree, -fno-dump-parse-tree

.. option:: -fexternal-blas, -fno-external-blas

.. option:: -ff2c, -fno-f2c

.. option:: -ffixed-form, -fno-fixed-form

.. option:: -ffixed-line-length-<arg>

.. option:: -ffpe-trap=<arg>

.. option:: -ffree-form, -fno-free-form

.. option:: -ffree-line-length-<arg>

.. option:: -ffrontend-optimize, -fno-frontend-optimize

.. option:: -fimplicit-none, -fno-implicit-none

.. option:: -finit-character=<arg>

.. option:: -finit-integer=<arg>

.. option:: -finit-local-zero, -fno-init-local-zero

.. option:: -finit-logical=<arg>

.. option:: -finit-real=<arg>

.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8

.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path

.. option:: -fmax-array-constructor=<arg>

.. option:: -fmax-errors=<arg>

.. option:: -fmax-identifier-length, -fno-max-identifier-length

.. option:: -fmax-stack-var-size=<arg>

.. option:: -fmax-subrecord-length=<arg>

.. option:: -fmodule-private, -fno-module-private

.. option:: -fpack-derived, -fno-pack-derived

.. option:: -fprotect-parens, -fno-protect-parens

.. option:: -frange-check, -fno-range-check

.. option:: -freal-4-real-10, -fno-real-4-real-10

.. option:: -freal-4-real-16, -fno-real-4-real-16

.. option:: -freal-4-real-8, -fno-real-4-real-8

.. option:: -freal-8-real-10, -fno-real-8-real-10

.. option:: -freal-8-real-16, -fno-real-8-real-16

.. option:: -freal-8-real-4, -fno-real-8-real-4

.. option:: -frealloc-lhs, -fno-realloc-lhs

.. option:: -frecord-marker=<arg>

.. option:: -frecursive, -fno-recursive

.. option:: -frepack-arrays, -fno-repack-arrays

.. option:: -fsecond-underscore, -fno-second-underscore

.. option:: -fsign-zero, -fno-sign-zero

.. option:: -fstack-arrays, -fno-stack-arrays

.. option:: -funderscoring, -fno-underscoring

.. option:: -fwhole-file, -fno-whole-file

.. option:: -nocpp

.. option:: -static-libgfortran

Linker flags
============
Flags that are passed on to the linker

.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>

Add directory to library search path

.. option:: -Mach

.. option:: -T<script>

Specify <script> as linker script

.. option:: -Tbss<addr>

Set starting address of BSS to <addr>

.. option:: -Tdata<addr>

Set starting address of BSS to <addr>

.. option:: -Ttext<addr>

Set starting address of BSS to <addr>

.. option:: -Wl,<arg>,<arg2>...

Pass the comma separated arguments in <arg> to the linker

.. option:: -X

.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>

Pass <arg> to the linker

.. program:: clang1
.. option:: -Z
.. program:: clang

.. option:: -e<arg>, --entry

.. option:: -filelist <arg>

.. option:: -l<arg>

.. option:: -r

.. option:: -rpath <arg>

.. option:: -s

.. option:: -t

.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>

.. option:: -undef

undef all system defines

.. option:: -undefined<arg>, --no-undefined

.. option:: -z <arg>

Pass -z <arg> to the linker

