Home | History | Annotate | Line # | Download | only in docs
      1 ..
      2   -------------------------------------------------------------------
      3   NOTE: This file is automatically generated by running clang-tblgen
      4   -gen-opt-docs. Do not edit this file by hand!!
      5   -------------------------------------------------------------------
      6 
      7 =====================================
      8 Clang command line argument reference
      9 =====================================
     10 .. contents::
     11    :local:
     12 
     13 Introduction
     14 ============
     15 
     16 This page lists the command line arguments currently supported by the
     17 GCC-compatible ``clang`` and ``clang++`` drivers.
     18 
     19 
     20 .. program:: clang
     21 .. option:: -B<prefix>, --prefix <arg>, --prefix=<arg>
     22 
     23 Search $prefix/$triple-$file and $prefix$file for executables, libraries, includes, and data files used by the compiler. $prefix may or may not be a directory
     24 
     25 .. option:: -F<arg>
     26 
     27 Add directory to framework include search path
     28 
     29 .. option:: -ObjC
     30 
     31 Treat source input files as Objective-C inputs
     32 
     33 .. program:: clang1
     34 .. option:: -ObjC++
     35 .. program:: clang
     36 
     37 Treat source input files as Objective-C++ inputs
     38 
     39 .. option:: -Qn, -fno-ident
     40 
     41 Do not emit metadata containing compiler name and version
     42 
     43 .. option:: -Qunused-arguments
     44 
     45 Don't emit warning for unused driver arguments
     46 
     47 .. option:: -Qy, -fident
     48 
     49 Emit metadata containing compiler name and version
     50 
     51 .. option:: -Wa,<arg>,<arg2>...
     52 
     53 Pass the comma separated arguments in <arg> to the assembler
     54 
     55 .. option:: -Wlarge-by-value-copy=<arg>
     56 
     57 .. option:: -Xarch\_<arg1> <arg2>
     58 
     59 .. program:: clang1
     60 .. option:: -Xarch\_device <arg>
     61 .. program:: clang
     62 
     63 Pass <arg> to the CUDA/HIP device compilation
     64 
     65 .. program:: clang2
     66 .. option:: -Xarch\_host <arg>
     67 .. program:: clang
     68 
     69 Pass <arg> to the CUDA/HIP host compilation
     70 
     71 .. option:: -Xcuda-fatbinary <arg>
     72 
     73 Pass <arg> to fatbinary invocation
     74 
     75 .. option:: -Xcuda-ptxas <arg>
     76 
     77 Pass <arg> to the ptxas assembler
     78 
     79 .. option:: -Xopenmp-target <arg>
     80 
     81 Pass <arg> to the target offloading toolchain.
     82 
     83 .. program:: clang1
     84 .. option:: -Xopenmp-target=<triple> <arg>
     85 .. program:: clang
     86 
     87 Pass <arg> to the target offloading toolchain identified by <triple>.
     88 
     89 .. option:: -Z<arg>
     90 
     91 .. option:: -a<arg>, --profile-blocks
     92 
     93 .. option:: -all\_load
     94 
     95 .. option:: -allowable\_client <arg>
     96 
     97 .. option:: --analyze
     98 
     99 Run the static analyzer
    100 
    101 .. option:: --analyzer-no-default-checks
    102 
    103 .. option:: --analyzer-output<arg>
    104 
    105 Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|sarif\|text).
    106 
    107 .. option:: -ansi, --ansi
    108 
    109 .. option:: -arch <arg>
    110 
    111 .. program:: clang1
    112 .. option:: -arch\_errors\_fatal
    113 .. program:: clang
    114 
    115 .. program:: clang2
    116 .. option:: -arch\_only <arg>
    117 .. program:: clang
    118 
    119 .. option:: -arcmt-migrate-emit-errors
    120 
    121 Emit ARC errors even if the migrator can fix them
    122 
    123 .. option:: -arcmt-migrate-report-output <arg>
    124 
    125 Output path for the plist report
    126 
    127 .. option:: --autocomplete=<arg>
    128 
    129 .. option:: -bind\_at\_load
    130 
    131 .. option:: -bundle
    132 
    133 .. program:: clang1
    134 .. option:: -bundle\_loader <arg>
    135 .. program:: clang
    136 
    137 .. option:: -client\_name<arg>
    138 
    139 .. option:: -compatibility\_version<arg>
    140 
    141 .. option:: --config <arg>
    142 
    143 Specifies configuration file
    144 
    145 .. option:: --constant-cfstrings
    146 
    147 .. option:: --cuda-compile-host-device
    148 
    149 Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.
    150 
    151 .. option:: --cuda-device-only
    152 
    153 Compile CUDA code for device only
    154 
    155 .. option:: --cuda-host-only
    156 
    157 Compile CUDA code for host only.  Has no effect on non-CUDA compilations.
    158 
    159 .. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
    160 
    161 Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
    162 
    163 .. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug
    164 
    165 Enable device-side debug info generation. Disables ptxas optimizations.
    166 
    167 .. option:: -current\_version<arg>
    168 
    169 .. option:: -dead\_strip
    170 
    171 .. option:: -dependency-dot <arg>
    172 
    173 Filename to write DOT-formatted header dependencies to
    174 
    175 .. option:: -dependency-file <arg>
    176 
    177 Filename (or -) to write dependency output to
    178 
    179 .. option:: -dsym-dir<dir>
    180 
    181 Directory to output dSYM's (if any) to
    182 
    183 .. option:: -dumpmachine
    184 
    185 .. option:: -dumpversion
    186 
    187 .. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>
    188 
    189 .. option:: -dylib\_file <arg>
    190 
    191 .. option:: -dylinker
    192 
    193 .. program:: clang1
    194 .. option:: -dylinker\_install\_name<arg>
    195 .. program:: clang
    196 
    197 .. option:: -dynamic
    198 
    199 .. option:: -dynamiclib
    200 
    201 .. option:: -emit-ast
    202 
    203 Emit Clang AST files for source inputs
    204 
    205 .. option:: --emit-static-lib
    206 
    207 Enable linker job to emit a static library.
    208 
    209 .. option:: -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
    210 
    211 Trivial automatic variable initialization to zero is only here for benchmarks, it'll eventually be removed, and I'm OK with that because I'm only using it to benchmark
    212 
    213 .. option:: -exported\_symbols\_list <arg>
    214 
    215 .. option:: -faligned-new=<arg>
    216 
    217 .. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero
    218 
    219 Flush denormal floating point values to zero in CUDA device mode.
    220 
    221 .. option:: -ffixed-r19
    222 
    223 Reserve register r19 (Hexagon only)
    224 
    225 .. option:: -fheinous-gnu-extensions
    226 
    227 .. option:: -flat\_namespace
    228 
    229 .. option:: -fopenmp-targets=<arg1>,<arg2>...
    230 
    231 Specify comma-separated list of triples OpenMP offloading targets to be supported
    232 
    233 .. option:: -force\_cpusubtype\_ALL
    234 
    235 .. program:: clang1
    236 .. option:: -force\_flat\_namespace
    237 .. program:: clang
    238 
    239 .. program:: clang2
    240 .. option:: -force\_load <arg>
    241 .. program:: clang
    242 
    243 .. option:: -framework <arg>
    244 
    245 .. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath
    246 
    247 Add -rpath with architecture-specific resource directory to the linker flags
    248 
    249 .. option:: -fsanitize-system-ignorelist=<arg>
    250 
    251 Path to system ignorelist file for sanitizers
    252 
    253 .. option:: -fsystem-module
    254 
    255 Build this module as a system module. Only used with -emit-module
    256 
    257 .. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>
    258 
    259 Search for GCC installation in the specified directory on targets which commonly use GCC. The directory usually contains 'lib{,32,64}/gcc{,-cross}/$triple' and 'include'. If specified, sysroot is skipped for GCC detection. Note: executables (e.g. ld) used by the compiler are not overridden by the selected GCC installation
    260 
    261 .. option:: -gcodeview
    262 
    263 Generate CodeView debug information
    264 
    265 .. option:: -gcodeview-ghash, -gno-codeview-ghash
    266 
    267 Emit type record hashes in a .debug$H section
    268 
    269 .. option:: -ginline-line-tables, -gno-inline-line-tables
    270 
    271 .. option:: --gpu-instrument-lib=<arg>
    272 
    273 Instrument device library for HIP, which is a LLVM bitcode containing \_\_cyg\_profile\_func\_enter and \_\_cyg\_profile\_func\_exit
    274 
    275 .. option:: --gpu-max-threads-per-block=<arg>
    276 
    277 Default max threads per block for kernel launch bounds for HIP
    278 
    279 .. option:: -headerpad\_max\_install\_names<arg>
    280 
    281 .. option:: -help, --help
    282 
    283 Display available options
    284 
    285 .. option:: --help-hidden
    286 
    287 Display help for hidden options
    288 
    289 .. option:: --hip-link
    290 
    291 Link clang-offload-bundler bundles for HIP
    292 
    293 .. option:: --hip-version=<arg>
    294 
    295 HIP version in the format of major.minor.patch
    296 
    297 .. option:: -ibuiltininc
    298 
    299 Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
    300 
    301 .. option:: -image\_base <arg>
    302 
    303 .. option:: -index-header-map
    304 
    305 Make the next included directory (-I or -F) an indexer header map
    306 
    307 .. option:: -init <arg>
    308 
    309 .. option:: -install\_name <arg>
    310 
    311 .. option:: -interface-stub-version=<arg>
    312 
    313 .. option:: -keep\_private\_externs
    314 
    315 .. option:: -lazy\_framework <arg>
    316 
    317 .. program:: clang1
    318 .. option:: -lazy\_library <arg>
    319 .. program:: clang
    320 
    321 .. option:: -mbig-endian, -EB
    322 
    323 .. option:: -mbranch-protection=<arg>
    324 
    325 Enforce targets of indirect branches and function returns
    326 
    327 .. option:: -mharden-sls=<arg>
    328 
    329 Select straight-line speculation hardening scope
    330 
    331 .. option:: --migrate
    332 
    333 Run the migrator
    334 
    335 .. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>
    336 
    337 .. option:: -mlinker-version=<arg>
    338 
    339 .. option:: -mlittle-endian, -EL
    340 
    341 .. option:: -mllvm <arg>
    342 
    343 Additional arguments to forward to LLVM's option processing
    344 
    345 .. option:: -module-dependency-dir <arg>
    346 
    347 Directory to dump module dependencies to
    348 
    349 .. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>
    350 
    351 .. option:: -multi\_module
    352 
    353 .. option:: -multiply\_defined <arg>
    354 
    355 .. program:: clang1
    356 .. option:: -multiply\_defined\_unused <arg>
    357 .. program:: clang
    358 
    359 .. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>
    360 
    361 .. option:: --no-cuda-version-check
    362 
    363 Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
    364 
    365 .. option:: -no-integrated-cpp, --no-integrated-cpp
    366 
    367 .. option:: -no\_dead\_strip\_inits\_and\_terms
    368 
    369 .. option:: -nobuiltininc
    370 
    371 Disable builtin #include directories
    372 
    373 .. option:: -nodefaultlibs
    374 
    375 .. option:: -nofixprebinding
    376 
    377 .. option:: -nogpuinc, -nocudainc
    378 
    379 .. option:: -nogpulib, -nocudalib
    380 
    381 Do not link device library for CUDA/HIP device compilation
    382 
    383 .. option:: -nolibc
    384 
    385 .. option:: -nomultidefs
    386 
    387 .. option:: -nopie, -no-pie
    388 
    389 .. option:: -noprebind
    390 
    391 .. option:: -noprofilelib
    392 
    393 .. option:: -noseglinkedit
    394 
    395 .. option:: -nostdinc, --no-standard-includes
    396 
    397 .. program:: clang1
    398 .. option:: -nostdinc++
    399 .. program:: clang
    400 
    401 Disable standard #include directories for the C++ standard library
    402 
    403 .. option:: -nostdlib++
    404 
    405 .. option:: -nostdlibinc
    406 
    407 .. option:: -o<file>, --output <arg>, --output=<arg>
    408 
    409 Write output to <file>
    410 
    411 .. option:: -objcmt-atomic-property
    412 
    413 Make migration to 'atomic' properties
    414 
    415 .. option:: -objcmt-migrate-all
    416 
    417 Enable migration to modern ObjC
    418 
    419 .. option:: -objcmt-migrate-annotation
    420 
    421 Enable migration to property and method annotations
    422 
    423 .. option:: -objcmt-migrate-designated-init
    424 
    425 Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods
    426 
    427 .. option:: -objcmt-migrate-instancetype
    428 
    429 Enable migration to infer instancetype for method result type
    430 
    431 .. option:: -objcmt-migrate-literals
    432 
    433 Enable migration to modern ObjC literals
    434 
    435 .. option:: -objcmt-migrate-ns-macros
    436 
    437 Enable migration to NS\_ENUM/NS\_OPTIONS macros
    438 
    439 .. option:: -objcmt-migrate-property
    440 
    441 Enable migration to modern ObjC property
    442 
    443 .. option:: -objcmt-migrate-property-dot-syntax
    444 
    445 Enable migration of setter/getter messages to property-dot syntax
    446 
    447 .. option:: -objcmt-migrate-protocol-conformance
    448 
    449 Enable migration to add protocol conformance on classes
    450 
    451 .. option:: -objcmt-migrate-readonly-property
    452 
    453 Enable migration to modern ObjC readonly property
    454 
    455 .. option:: -objcmt-migrate-readwrite-property
    456 
    457 Enable migration to modern ObjC readwrite property
    458 
    459 .. option:: -objcmt-migrate-subscripting
    460 
    461 Enable migration to modern ObjC subscripting
    462 
    463 .. option:: -objcmt-ns-nonatomic-iosonly
    464 
    465 Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute
    466 
    467 .. option:: -objcmt-returns-innerpointer-property
    468 
    469 Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
    470 
    471 .. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
    472 
    473 Only modify files with a filename contained in the provided directory path
    474 
    475 .. option:: -object
    476 
    477 .. option:: --offload-arch=<arg>, --cuda-gpu-arch=<arg>, --no-offload-arch=<arg>
    478 
    479 CUDA offloading device architecture (e.g. sm\_35), or HIP offloading target ID in the form of a device architecture followed by target ID features delimited by a colon. Each target ID feature is a pre-defined string followed by a plus or minus sign (e.g. gfx908:xnack+:sram-ecc-).  May be specified more than once.
    480 
    481 .. option:: -p, --profile
    482 
    483 .. option:: -pagezero\_size<arg>
    484 
    485 .. option:: -pg
    486 
    487 Enable mcount instrumentation
    488 
    489 .. option:: -pipe, --pipe
    490 
    491 Use pipes between commands, when possible
    492 
    493 .. option:: -prebind
    494 
    495 .. program:: clang1
    496 .. option:: -prebind\_all\_twolevel\_modules
    497 .. program:: clang
    498 
    499 .. option:: -preload
    500 
    501 .. option:: --print-diagnostic-categories
    502 
    503 .. option:: -print-effective-triple, --print-effective-triple
    504 
    505 Print the effective target triple
    506 
    507 .. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>
    508 
    509 Print the full library path of <file>
    510 
    511 .. option:: -print-ivar-layout
    512 
    513 Enable Objective-C Ivar layout bitmap print trace
    514 
    515 .. option:: -print-libgcc-file-name, --print-libgcc-file-name
    516 
    517 Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")
    518 
    519 .. option:: -print-multi-directory, --print-multi-directory
    520 
    521 .. option:: -print-multi-lib, --print-multi-lib
    522 
    523 .. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>
    524 
    525 Print the full program path of <name>
    526 
    527 .. option:: -print-resource-dir, --print-resource-dir
    528 
    529 Print the resource directory pathname
    530 
    531 .. option:: -print-search-dirs, --print-search-dirs
    532 
    533 Print the paths used for finding libraries and programs
    534 
    535 .. option:: -print-target-triple, --print-target-triple
    536 
    537 Print the normalized target triple
    538 
    539 .. option:: -print-targets, --print-targets
    540 
    541 Print the registered targets
    542 
    543 .. option:: -private\_bundle
    544 
    545 .. option:: -pthread, -no-pthread
    546 
    547 Support POSIX threads in generated code
    548 
    549 .. option:: -pthreads
    550 
    551 .. option:: -read\_only\_relocs <arg>
    552 
    553 .. option:: -relocatable-pch, --relocatable-pch
    554 
    555 Whether to build a relocatable precompiled header
    556 
    557 .. option:: -remap
    558 
    559 .. option:: -rewrite-legacy-objc
    560 
    561 Rewrite Legacy Objective-C source to C++
    562 
    563 .. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>
    564 
    565 Compiler runtime library to use
    566 
    567 .. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)
    568 
    569 Save llvm statistics.
    570 
    571 .. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)
    572 
    573 Save intermediate compilation results.
    574 
    575 .. option:: -sectalign <arg1> <arg2> <arg3>
    576 
    577 .. option:: -sectcreate <arg1> <arg2> <arg3>
    578 
    579 .. option:: -sectobjectsymbols <arg1> <arg2>
    580 
    581 .. option:: -sectorder <arg1> <arg2> <arg3>
    582 
    583 .. option:: -seg1addr<arg>
    584 
    585 .. option:: -seg\_addr\_table <arg>
    586 
    587 .. program:: clang1
    588 .. option:: -seg\_addr\_table\_filename <arg>
    589 .. program:: clang
    590 
    591 .. option:: -segaddr <arg1> <arg2>
    592 
    593 .. option:: -segcreate <arg1> <arg2> <arg3>
    594 
    595 .. option:: -seglinkedit
    596 
    597 .. option:: -segprot <arg1> <arg2> <arg3>
    598 
    599 .. option:: -segs\_read\_<arg>
    600 
    601 .. program:: clang1
    602 .. option:: -segs\_read\_only\_addr <arg>
    603 .. program:: clang
    604 
    605 .. program:: clang2
    606 .. option:: -segs\_read\_write\_addr <arg>
    607 .. program:: clang
    608 
    609 .. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>
    610 
    611 Serialize compiler diagnostics to a file
    612 
    613 .. option:: -shared-libgcc
    614 
    615 .. option:: -shared-libsan, -shared-libasan
    616 
    617 Dynamically link the sanitizer runtime
    618 
    619 .. option:: -single\_module
    620 
    621 .. option:: -static-libgcc
    622 
    623 .. option:: -static-libsan
    624 
    625 Statically link the sanitizer runtime
    626 
    627 .. option:: -static-libstdc++
    628 
    629 .. option:: -static-openmp
    630 
    631 Use the static host OpenMP runtime while linking.
    632 
    633 .. option:: -std-default=<arg>
    634 
    635 .. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>
    636 
    637 C++ standard library to use
    638 
    639 .. option:: -sub\_library<arg>
    640 
    641 .. program:: clang1
    642 .. option:: -sub\_umbrella<arg>
    643 .. program:: clang
    644 
    645 .. option:: --sysroot=<arg>, --sysroot <arg>
    646 
    647 .. option:: --target-help
    648 
    649 .. option:: --target=<arg>, -target <arg>
    650 
    651 Generate code for the given target
    652 
    653 .. option:: -time
    654 
    655 Time individual commands
    656 
    657 .. option:: -traditional, --traditional
    658 
    659 .. option:: -traditional-cpp, --traditional-cpp
    660 
    661 Enable some traditional CPP emulation
    662 
    663 .. option:: -twolevel\_namespace
    664 
    665 .. program:: clang1
    666 .. option:: -twolevel\_namespace\_hints
    667 .. program:: clang
    668 
    669 .. option:: -umbrella <arg>
    670 
    671 .. option:: -unexported\_symbols\_list <arg>
    672 
    673 .. option:: -unwindlib=<arg>, --unwindlib=<arg>
    674 
    675 Unwind library to use
    676 
    677 .. option:: -v, --verbose
    678 
    679 Show commands to run and use verbose output
    680 
    681 .. option:: --verify-debug-info
    682 
    683 Verify the binary representation of debug output
    684 
    685 .. option:: --version
    686 
    687 Print version information
    688 
    689 .. option:: -w, --no-warnings
    690 
    691 Suppress all warnings
    692 
    693 .. option:: -weak-l<arg>
    694 
    695 .. option:: -weak\_framework <arg>
    696 
    697 .. program:: clang1
    698 .. option:: -weak\_library <arg>
    699 .. program:: clang
    700 
    701 .. program:: clang2
    702 .. option:: -weak\_reference\_mismatches <arg>
    703 .. program:: clang
    704 
    705 .. option:: -whatsloaded
    706 
    707 .. option:: -whyload
    708 
    709 .. option:: -working-directory<arg>, -working-directory=<arg>
    710 
    711 Resolve file paths relative to the specified directory
    712 
    713 .. option:: -x<language>, --language <arg>, --language=<arg>
    714 
    715 Treat subsequent input files as having type <language>
    716 
    717 .. option:: -y<arg>
    718 
    719 Actions
    720 =======
    721 The action to perform on the input.
    722 
    723 .. option:: -E, --preprocess
    724 
    725 Only run the preprocessor
    726 
    727 .. option:: -S, --assemble
    728 
    729 Only run preprocess and compilation steps
    730 
    731 .. option:: -c, --compile
    732 
    733 Only run preprocess, compile, and assemble steps
    734 
    735 .. option:: -emit-interface-stubs
    736 
    737 Generate Interface Stub Files.
    738 
    739 .. option:: -emit-llvm
    740 
    741 Use the LLVM representation for assembler and object files
    742 
    743 .. option:: -emit-merged-ifs
    744 
    745 Generate Interface Stub Files, emit merged text not binary.
    746 
    747 .. option:: -fsyntax-only
    748 
    749 .. option:: -module-file-info
    750 
    751 Provide information about a particular module file
    752 
    753 .. option:: --precompile
    754 
    755 Only precompile the input
    756 
    757 .. option:: -rewrite-objc
    758 
    759 Rewrite Objective-C source to C++
    760 
    761 .. option:: -verify-pch
    762 
    763 Load and verify that a pre-compiled header file is not stale
    764 
    765 Compilation flags
    766 =================
    767 
    768 Flags controlling the behavior of Clang during compilation. These flags have
    769 no effect during actions that do not perform compilation.
    770 
    771 .. option:: -Xassembler <arg>
    772 
    773 Pass <arg> to the assembler
    774 
    775 .. option:: -Xclang <arg>
    776 
    777 Pass <arg> to the clang compiler
    778 
    779 .. option:: -fclang-abi-compat=<version>
    780 
    781 Attempt to match the ABI of Clang <version>
    782 
    783 .. option:: -fcomment-block-commands=<arg>,<arg2>...
    784 
    785 Treat each comma separated argument in <arg> as a documentation comment block command
    786 
    787 .. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
    788 
    789 Require member pointer base types to be complete if they would be significant under the Microsoft ABI
    790 
    791 .. option:: -fcrash-diagnostics-dir=<arg>
    792 
    793 .. option:: -fdeclspec, -fno-declspec
    794 
    795 Allow \_\_declspec as a keyword
    796 
    797 .. option:: -fdepfile-entry=<arg>
    798 
    799 .. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info
    800 
    801 .. option:: -fdiagnostics-format=<arg>
    802 
    803 .. option:: -fdiagnostics-parseable-fixits
    804 
    805 Print fix-its in machine parseable form
    806 
    807 .. option:: -fdiagnostics-print-source-range-info
    808 
    809 Print source range spans in numeric form
    810 
    811 .. option:: -fdiagnostics-show-category=<arg>
    812 
    813 .. option:: -fdiscard-value-names, -fno-discard-value-names
    814 
    815 Discard value names in LLVM IR
    816 
    817 .. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager
    818 
    819 Enables an experimental new pass manager in LLVM.
    820 
    821 .. option:: -fexperimental-strict-floating-point
    822 
    823 Enables experimental strict floating point in LLVM.
    824 
    825 .. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
    826 
    827 Use separate accesses for consecutive bitfield runs with legal widths and alignments.
    828 
    829 .. option:: -fglobal-isel, -fexperimental-isel, -fno-global-isel
    830 
    831 Enables the global instruction selector
    832 
    833 .. option:: -finline-functions, -fno-inline-functions
    834 
    835 Inline suitable functions
    836 
    837 .. option:: -finline-hint-functions
    838 
    839 Inline functions which are (explicitly or implicitly) marked inline
    840 
    841 .. option:: -fno-crash-diagnostics
    842 
    843 Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
    844 
    845 .. option:: -fno-sanitize-ignorelist
    846 
    847 Don't use ignorelist file for sanitizers
    848 
    849 .. option:: -fparse-all-comments
    850 
    851 .. option:: -frecord-command-line, -fno-record-command-line, -frecord-gcc-switches
    852 
    853 .. option:: -fsanitize-address-field-padding=<arg>
    854 
    855 Level of field padding for AddressSanitizer
    856 
    857 .. option:: -fsanitize-address-globals-dead-stripping
    858 
    859 Enable linker dead stripping of globals in AddressSanitizer
    860 
    861 .. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
    862 
    863 Enable poisoning array cookies when using custom operator new\[\] in AddressSanitizer
    864 
    865 .. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
    866 
    867 Enable use-after-scope detection in AddressSanitizer
    868 
    869 .. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
    870 
    871 Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
    872 
    873 .. option:: -fsanitize-address-destructor=<arg>
    874 
    875 Set the kind of module destructors emitted by AddressSanitizer instrumentation.
    876 These destructors are emitted to unregister instrumented global variables when
    877 code is unloaded (e.g. via `dlclose()`).
    878 
    879 Valid options are:
    880 
    881 * ``global`` - Emit module destructors that are called via a platform specific array (see `llvm.global_dtors`).
    882 * ``none`` - Do not emit module destructors.
    883 
    884 .. option:: -fsanitize-ignorelist=<arg>
    885 
    886 Path to ignorelist file for sanitizers
    887 
    888 .. option:: -fsanitize-cfi-canonical-jump-tables, -fno-sanitize-cfi-canonical-jump-tables
    889 
    890 Make the jump table addresses canonical in the symbol table
    891 
    892 .. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
    893 
    894 Enable control flow integrity (CFI) checks for cross-DSO calls.
    895 
    896 .. option:: -fsanitize-cfi-icall-generalize-pointers
    897 
    898 Generalize pointers in CFI indirect call type signature checks
    899 
    900 .. option:: -fsanitize-coverage-allowlist=<arg>
    901 
    902 Restrict sanitizer coverage instrumentation exclusively to modules and
    903 functions that match the provided special case list, except the blocked ones
    904 
    905 .. option:: -fsanitize-coverage-ignorelist=<arg>
    906 
    907 Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
    908 
    909 .. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
    910 
    911 Specify the type of coverage instrumentation for Sanitizers
    912 
    913 .. option:: -fsanitize-hwaddress-abi=<arg>
    914 
    915 Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
    916 
    917 .. option:: -fsanitize-link-c++-runtime, -fno-sanitize-link-c++-runtime
    918 
    919 .. option:: -fsanitize-link-runtime, -fno-sanitize-link-runtime
    920 
    921 .. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
    922 
    923 Enable origins tracking in MemorySanitizer
    924 
    925 .. program:: clang1
    926 .. option:: -fsanitize-memory-track-origins=<arg>
    927 .. program:: clang
    928 
    929 Enable origins tracking in MemorySanitizer
    930 
    931 .. option:: -fsanitize-memory-use-after-dtor, -fno-sanitize-memory-use-after-dtor
    932 
    933 Enable use-after-destroy detection in MemorySanitizer
    934 
    935 .. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
    936 
    937 .. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>..., -fsanitize-recover (equivalent to -fsanitize-recover=all)
    938 
    939 Enable recovery for specified sanitizers
    940 
    941 .. option:: -fsanitize-stats, -fno-sanitize-stats
    942 
    943 Enable sanitizer statistics gathering.
    944 
    945 .. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics
    946 
    947 Enable atomic operations instrumentation in ThreadSanitizer (default)
    948 
    949 .. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit
    950 
    951 Enable function entry/exit instrumentation in ThreadSanitizer (default)
    952 
    953 .. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access
    954 
    955 Enable memory access instrumentation in ThreadSanitizer (default)
    956 
    957 .. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>..., -fsanitize-trap (equivalent to -fsanitize-trap=all), -fsanitize-undefined-trap-on-error (equivalent to -fsanitize-trap=undefined)
    958 
    959 Enable trapping for specified sanitizers
    960 
    961 .. option:: -fsanitize-undefined-strip-path-components=<number>
    962 
    963 Strip (or keep only, if negative) a given number of path components when emitting check metadata.
    964 
    965 .. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...
    966 
    967 Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
    968 
    969 .. option:: -moutline, -mno-outline
    970 
    971 Enable function outlining (AArch64 only)
    972 
    973 .. option:: --param <arg>, --param=<arg>
    974 
    975 .. option:: -print-supported-cpus, --print-supported-cpus, -mcpu=?, -mtune=?
    976 
    977 Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
    978 
    979 .. option:: -std=<arg>, --std=<arg>, --std <arg>
    980 
    981 Language standard to compile for
    982 
    983 Preprocessor flags
    984 ~~~~~~~~~~~~~~~~~~
    985 
    986 Flags controlling the behavior of the Clang preprocessor.
    987 
    988 .. option:: -C, --comments
    989 
    990 Include comments in preprocessed output
    991 
    992 .. option:: -CC, --comments-in-macros
    993 
    994 Include comments from within macros in preprocessed output
    995 
    996 .. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg>
    997 
    998 Define <macro> to <value> (or 1 if <value> omitted)
    999 
   1000 .. option:: -H, --trace-includes
   1001 
   1002 Show header includes and nesting depth
   1003 
   1004 .. option:: -P, --no-line-commands
   1005 
   1006 Disable linemarker output in -E mode
   1007 
   1008 .. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>
   1009 
   1010 Undefine macro <macro>
   1011 
   1012 .. option:: -Wp,<arg>,<arg2>...
   1013 
   1014 Pass the comma separated arguments in <arg> to the preprocessor
   1015 
   1016 .. option:: -Xpreprocessor <arg>
   1017 
   1018 Pass <arg> to the preprocessor
   1019 
   1020 .. option:: -fmacro-prefix-map=<arg>
   1021 
   1022 remap file source paths in predefined preprocessor macros
   1023 
   1024 Include path management
   1025 -----------------------
   1026 
   1027 Flags controlling how ``#include``\s are resolved to files.
   1028 
   1029 .. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg>
   1030 
   1031 Add directory to include search path. For C++ input, if
   1032 there are multiple -I options, these directories are searched
   1033 in the order they are given before the standard system directories
   1034 are searched. If the same directory is in the SYSTEM include search
   1035 paths, for example if also specified with -isystem, the -I option
   1036 will be ignored
   1037 
   1038 .. option:: -I-, --include-barrier
   1039 
   1040 Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
   1041 
   1042 .. option:: --cuda-path-ignore-env
   1043 
   1044 Ignore environment variables to detect CUDA installation
   1045 
   1046 .. option:: --cuda-path=<arg>
   1047 
   1048 CUDA installation path
   1049 
   1050 .. option:: -cxx-isystem<directory>
   1051 
   1052 Add directory to the C++ SYSTEM include search path
   1053 
   1054 .. option:: -fbuild-session-file=<file>
   1055 
   1056 Use the last modification time of <file> as the build session timestamp
   1057 
   1058 .. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
   1059 
   1060 Time when the current build session started
   1061 
   1062 .. option:: -fmodule-file=\[<name>=\]<file>
   1063 
   1064 Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
   1065 
   1066 .. option:: -fmodules-cache-path=<directory>
   1067 
   1068 Specify the module cache path
   1069 
   1070 .. option:: -fmodules-disable-diagnostic-validation
   1071 
   1072 Disable validation of the diagnostic options when loading the module
   1073 
   1074 .. option:: -fmodules-prune-after=<seconds>
   1075 
   1076 Specify the interval (in seconds) after which a module file will be considered unused
   1077 
   1078 .. option:: -fmodules-prune-interval=<seconds>
   1079 
   1080 Specify the interval (in seconds) between attempts to prune the module cache
   1081 
   1082 .. option:: -fmodules-user-build-path <directory>
   1083 
   1084 Specify the module user build path
   1085 
   1086 .. option:: -fmodules-validate-once-per-build-session
   1087 
   1088 Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
   1089 
   1090 .. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
   1091 
   1092 Validate the system headers that a module depends on when loading the module
   1093 
   1094 .. option:: -fprebuilt-module-path=<directory>
   1095 
   1096 Specify the prebuilt module path
   1097 
   1098 .. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
   1099 
   1100 Add directory to AFTER include search path
   1101 
   1102 .. option:: -iframework<arg>
   1103 
   1104 Add directory to SYSTEM framework search path
   1105 
   1106 .. option:: -iframeworkwithsysroot<directory>
   1107 
   1108 Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
   1109 
   1110 .. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
   1111 
   1112 Include macros from file before parsing
   1113 
   1114 .. option:: -include<file>, --include<file>, --include=<arg>
   1115 
   1116 Include file before parsing
   1117 
   1118 .. option:: -include-pch <file>
   1119 
   1120 Include precompiled header file
   1121 
   1122 .. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
   1123 
   1124 Set the -iwithprefix/-iwithprefixbefore prefix
   1125 
   1126 .. option:: -iquote<directory>
   1127 
   1128 Add directory to QUOTE include search path
   1129 
   1130 .. option:: -isysroot<dir>
   1131 
   1132 Set the system root directory (usually /)
   1133 
   1134 .. option:: -isystem<directory>
   1135 
   1136 Add directory to SYSTEM include search path
   1137 
   1138 .. option:: -isystem-after<directory>
   1139 
   1140 Add directory to end of the SYSTEM include search path
   1141 
   1142 .. option:: -ivfsoverlay<arg>
   1143 
   1144 Overlay the virtual filesystem described by file over the real file system
   1145 
   1146 .. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
   1147 
   1148 Set directory to SYSTEM include search path with prefix
   1149 
   1150 .. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
   1151 
   1152 Set directory to include search path with prefix
   1153 
   1154 .. option:: -iwithsysroot<directory>
   1155 
   1156 Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
   1157 
   1158 .. option:: --libomptarget-nvptx-bc-path=<arg>
   1159 
   1160 Path to libomptarget-nvptx bitcode library
   1161 
   1162 .. option:: --ptxas-path=<arg>
   1163 
   1164 Path to ptxas (used for compiling CUDA code)
   1165 
   1166 .. option:: --rocm-path=<arg>
   1167 
   1168 ROCm installation path, used for finding and automatically linking required bitcode libraries.
   1169 
   1170 .. program:: clang1
   1171 .. option:: -stdlib++-isystem<directory>
   1172 .. program:: clang
   1173 
   1174 Use directory as the C++ standard library include path
   1175 
   1176 .. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
   1177 
   1178 Treat all #include paths starting with <prefix> as including a system header.
   1179 
   1180 Dependency file generation
   1181 --------------------------
   1182 
   1183 Flags controlling generation of a dependency file for ``make``-like build
   1184 systems.
   1185 
   1186 .. option:: -M, --dependencies
   1187 
   1188 Like -MD, but also implies -E and writes to stdout by default
   1189 
   1190 .. option:: -MD, --write-dependencies
   1191 
   1192 Write a depfile containing user and system headers
   1193 
   1194 .. option:: -MF<file>
   1195 
   1196 Write depfile output from -MMD, -MD, -MM, or -M to <file>
   1197 
   1198 .. option:: -MG, --print-missing-file-dependencies
   1199 
   1200 Add missing headers to depfile
   1201 
   1202 .. option:: -MJ<arg>
   1203 
   1204 Write a compilation database entry per input
   1205 
   1206 .. option:: -MM, --user-dependencies
   1207 
   1208 Like -MMD, but also implies -E and writes to stdout by default
   1209 
   1210 .. option:: -MMD, --write-user-dependencies
   1211 
   1212 Write a depfile containing user headers
   1213 
   1214 .. option:: -MP
   1215 
   1216 Create phony target for each dependency (other than main file)
   1217 
   1218 .. option:: -MQ<arg>
   1219 
   1220 Specify name of main file output to quote in depfile
   1221 
   1222 .. option:: -MT<arg>
   1223 
   1224 Specify name of main file output in depfile
   1225 
   1226 .. option:: -MV
   1227 
   1228 Use NMake/Jom format for the depfile
   1229 
   1230 Dumping preprocessor state
   1231 --------------------------
   1232 
   1233 Flags allowing the state of the preprocessor to be dumped in various ways.
   1234 
   1235 .. option:: -d
   1236 
   1237 .. program:: clang1
   1238 .. option:: -d<arg>
   1239 .. program:: clang
   1240 
   1241 .. option:: -dD
   1242 
   1243 Print macro definitions in -E mode in addition to normal output
   1244 
   1245 .. option:: -dI
   1246 
   1247 Print include directives in -E mode in addition to normal output
   1248 
   1249 .. option:: -dM
   1250 
   1251 Print macro definitions in -E mode instead of normal output
   1252 
   1253 Diagnostic flags
   1254 ~~~~~~~~~~~~~~~~
   1255 
   1256 Flags controlling which warnings, errors, and remarks Clang will generate.
   1257 See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
   1258 
   1259 .. option:: -R<remark>
   1260 
   1261 Enable the specified remark
   1262 
   1263 .. option:: -Rpass-analysis=<arg>
   1264 
   1265 Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
   1266 
   1267 .. option:: -Rpass-missed=<arg>
   1268 
   1269 Report missed transformations by optimization passes whose name matches the given POSIX regular expression
   1270 
   1271 .. option:: -Rpass=<arg>
   1272 
   1273 Report transformations performed by optimization passes whose name matches the given POSIX regular expression
   1274 
   1275 .. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
   1276 
   1277 Enable the specified warning
   1278 
   1279 .. option:: -Wdeprecated, -Wno-deprecated
   1280 
   1281 Enable warnings for deprecated constructs and define \_\_DEPRECATED
   1282 
   1283 .. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
   1284 
   1285 Target-independent compilation options
   1286 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1287 .. option:: -Wframe-larger-than=<arg>
   1288 
   1289 .. option:: -fPIC, -fno-PIC
   1290 
   1291 .. option:: -fPIE, -fno-PIE
   1292 
   1293 .. option:: -faddrsig, -fno-addrsig
   1294 
   1295 Emit an address-significance table
   1296 
   1297 .. option:: -falign-functions, -fno-align-functions
   1298 
   1299 .. program:: clang1
   1300 .. option:: -falign-functions=<arg>
   1301 .. program:: clang
   1302 
   1303 .. program:: clang1
   1304 .. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
   1305 .. program:: clang
   1306 
   1307 Enable C++17 aligned allocation functions
   1308 
   1309 .. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
   1310 
   1311 Treat editor placeholders as valid source code
   1312 
   1313 .. option:: -fallow-unsupported
   1314 
   1315 .. option:: -faltivec, -fno-altivec
   1316 
   1317 .. option:: -fansi-escape-codes
   1318 
   1319 Use ANSI escape codes for diagnostics
   1320 
   1321 .. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
   1322 
   1323 Use Apple's kernel extensions ABI
   1324 
   1325 .. option:: -fapple-link-rtlib
   1326 
   1327 Force linking the clang builtins runtime library
   1328 
   1329 .. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
   1330 
   1331 Enable Apple gcc-compatible #pragma pack handling
   1332 
   1333 .. option:: -fapplication-extension, -fno-application-extension
   1334 
   1335 Restrict code to those available for App Extensions
   1336 
   1337 .. option:: -fasm, -fno-asm
   1338 
   1339 .. option:: -fasm-blocks, -fno-asm-blocks
   1340 
   1341 .. option:: -fassociative-math, -fno-associative-math
   1342 
   1343 .. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
   1344 
   1345 .. option:: -fast
   1346 
   1347 .. option:: -fastcp
   1348 
   1349 .. option:: -fastf
   1350 
   1351 .. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
   1352 
   1353 .. option:: -fautolink, -fno-autolink
   1354 
   1355 .. option:: -fbasic-block-sections=<arg>
   1356 
   1357 Generate labels for each basic block or place each basic block or a subset of basic blocks in its own section.
   1358 
   1359 .. option:: -fblocks, -fno-blocks
   1360 
   1361 Enable the 'blocks' language feature
   1362 
   1363 .. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
   1364 
   1365 .. option:: -fborland-extensions, -fno-borland-extensions
   1366 
   1367 Accept non-standard constructs supported by the Borland compiler
   1368 
   1369 .. option:: -fbracket-depth=<arg>
   1370 
   1371 .. option:: -fbuiltin, -fno-builtin
   1372 
   1373 .. option:: -fbuiltin-module-map
   1374 
   1375 Load the clang builtins module map file.
   1376 
   1377 .. option:: -fc++-static-destructors, -fno-c++-static-destructors
   1378 
   1379 .. option:: -fcaret-diagnostics, -fno-caret-diagnostics
   1380 
   1381 .. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
   1382 
   1383 Instrument control-flow architecture protection. Options: return, branch, full, none.
   1384 
   1385 .. option:: -fcf-runtime-abi=<arg>
   1386 
   1387 .. option:: -fchar8\_t, -fno-char8\_t
   1388 
   1389 Enable C++ builtin type char8\_t
   1390 
   1391 .. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
   1392 
   1393 .. option:: -fcolor-diagnostics, -fno-color-diagnostics
   1394 
   1395 Enable colors in diagnostics
   1396 
   1397 .. option:: -fcommon, -fno-common
   1398 
   1399 Place uninitialized global variables in a common block
   1400 
   1401 .. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
   1402 
   1403 .. option:: -fconstant-cfstrings, -fno-constant-cfstrings
   1404 
   1405 .. option:: -fconstant-string-class=<arg>
   1406 
   1407 .. option:: -fconstexpr-backtrace-limit=<arg>
   1408 
   1409 .. option:: -fconstexpr-depth=<arg>
   1410 
   1411 .. option:: -fconstexpr-steps=<arg>
   1412 
   1413 .. option:: -fconvergent-functions
   1414 
   1415 Assume functions may be convergent
   1416 
   1417 .. option:: -fcoroutines-ts, -fno-coroutines-ts
   1418 
   1419 Enable support for the C++ Coroutines TS
   1420 
   1421 .. option:: -fcoverage-mapping, -fno-coverage-mapping
   1422 
   1423 Generate coverage mapping to enable code coverage analysis
   1424 
   1425 .. option:: -fcreate-profile
   1426 
   1427 .. option:: -fcs-profile-generate
   1428 
   1429 Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
   1430 
   1431 .. program:: clang1
   1432 .. option:: -fcs-profile-generate=<directory>
   1433 .. program:: clang
   1434 
   1435 Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
   1436 
   1437 .. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
   1438 
   1439 Use approximate transcendental functions
   1440 
   1441 .. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
   1442 
   1443 Use 32-bit pointers for accessing const/local/shared address spaces
   1444 
   1445 .. option:: -fcxx-exceptions, -fno-cxx-exceptions
   1446 
   1447 Enable C++ exceptions
   1448 
   1449 .. option:: -fcxx-modules, -fno-cxx-modules
   1450 
   1451 .. option:: -fdata-sections, -fno-data-sections
   1452 
   1453 Place each data in its own section
   1454 
   1455 .. option:: -fdebug-compilation-dir <arg>, -fdebug-compilation-dir=<arg>
   1456 
   1457 The compilation directory to embed in the debug info.
   1458 
   1459 .. option:: -fdebug-default-version=<arg>
   1460 
   1461 Default DWARF version to use, if a -g option caused DWARF debug info to be produced
   1462 
   1463 .. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
   1464 
   1465 Emit extra debug info to make sample profile more accurate
   1466 
   1467 .. option:: -fdebug-macro, -fno-debug-macro
   1468 
   1469 Emit macro debug information
   1470 
   1471 .. option:: -fdebug-pass-arguments
   1472 
   1473 .. option:: -fdebug-pass-structure
   1474 
   1475 .. option:: -fdebug-prefix-map=<arg>
   1476 
   1477 remap file source paths in debug info
   1478 
   1479 .. option:: -fdebug-ranges-base-address, -fno-debug-ranges-base-address
   1480 
   1481 Use DWARF base address selection entries in .debug\_ranges
   1482 
   1483 .. option:: -fdebug-types-section, -fno-debug-types-section
   1484 
   1485 Place debug types in their own section (ELF Only)
   1486 
   1487 .. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
   1488 
   1489 Parse templated function definitions at the end of the translation unit
   1490 
   1491 .. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
   1492 
   1493 Treat usage of null pointers as undefined behavior (default)
   1494 
   1495 .. option:: -fdenormal-fp-math=<arg>
   1496 
   1497 .. option:: -fdiagnostics-absolute-paths
   1498 
   1499 Print absolute paths in diagnostics
   1500 
   1501 .. option:: -fdiagnostics-color, -fno-diagnostics-color
   1502 
   1503 .. program:: clang1
   1504 .. option:: -fdiagnostics-color=<arg>
   1505 .. program:: clang
   1506 
   1507 .. option:: -fdiagnostics-hotness-threshold=<number>
   1508 
   1509 Prevent optimization remarks from being output if they do not have at least this profile count
   1510 
   1511 .. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
   1512 
   1513 Enable profile hotness information in diagnostic line
   1514 
   1515 .. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
   1516 
   1517 Display include stacks for diagnostic notes
   1518 
   1519 .. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
   1520 
   1521 Print option name with mappable diagnostics
   1522 
   1523 .. option:: -fdiagnostics-show-template-tree
   1524 
   1525 Print a template comparison tree for differing templates
   1526 
   1527 .. option:: -fdigraphs, -fno-digraphs
   1528 
   1529 Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
   1530 
   1531 .. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
   1532 
   1533 Allow '$' in identifiers
   1534 
   1535 .. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
   1536 
   1537 Enable '\[\[\]\]' attributes in all C and C++ language modes
   1538 
   1539 .. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
   1540 
   1541 .. option:: -fdwarf-exceptions
   1542 
   1543 Use DWARF style exceptions
   1544 
   1545 .. option:: -felide-constructors, -fno-elide-constructors
   1546 
   1547 .. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
   1548 
   1549 .. option:: -feliminate-unused-debug-types, -fno-eliminate-unused-debug-types
   1550 
   1551 Do not emit  debug info for defined but unused types
   1552 
   1553 .. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
   1554 
   1555 Embed LLVM bitcode (option: off, all, bitcode, marker)
   1556 
   1557 .. option:: -femit-all-decls
   1558 
   1559 Emit all declarations, even if unused
   1560 
   1561 .. option:: -femulated-tls, -fno-emulated-tls
   1562 
   1563 Use emutls functions to access thread\_local variables
   1564 
   1565 .. option:: -fenable-matrix
   1566 
   1567 Enable matrix data type and related builtin functions
   1568 
   1569 .. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
   1570 
   1571 .. option:: -ferror-limit=<arg>
   1572 
   1573 .. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
   1574 
   1575 .. option:: -fexceptions, -fno-exceptions
   1576 
   1577 Enable support for exception handling
   1578 
   1579 .. option:: -fexec-charset=<arg>
   1580 
   1581 .. option:: -fexperimental-new-constant-interpreter
   1582 
   1583 Enable the experimental new constant interpreter
   1584 
   1585 .. option:: -fexperimental-relative-c++-abi-vtables, -fno-experimental-relative-c++-abi-vtables
   1586 
   1587 Use the experimental C++ class ABI for classes with virtual tables
   1588 
   1589 .. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
   1590 
   1591 .. option:: -ffast-math, -fno-fast-math
   1592 
   1593 Allow aggressive, lossy floating-point optimizations
   1594 
   1595 .. option:: -ffile-prefix-map=<arg>
   1596 
   1597 remap file source paths in debug info and predefined preprocessor macros
   1598 
   1599 .. option:: -ffinite-math-only, -fno-finite-math-only
   1600 
   1601 .. option:: -ffixed-point, -fno-fixed-point
   1602 
   1603 Enable fixed point types
   1604 
   1605 .. option:: -ffor-scope, -fno-for-scope
   1606 
   1607 .. option:: -fforce-dwarf-frame, -fno-force-dwarf-frame
   1608 
   1609 Always emit a debug frame section
   1610 
   1611 .. option:: -fforce-emit-vtables, -fno-force-emit-vtables
   1612 
   1613 Emits more virtual tables to improve devirtualization
   1614 
   1615 .. option:: -fforce-enable-int128, -fno-force-enable-int128
   1616 
   1617 Enable support for int128\_t type
   1618 
   1619 .. option:: -ffp-contract=<arg>
   1620 
   1621 Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma) \| off (never fuse). Default is 'fast' for CUDA/HIP and 'on' otherwise.
   1622 
   1623 .. option:: -ffp-exception-behavior=<arg>
   1624 
   1625 Specifies the exception behavior of floating-point operations.
   1626 
   1627 .. option:: -ffp-model=<arg>
   1628 
   1629 Controls the semantics of floating-point calculations.
   1630 
   1631 .. option:: -ffreestanding
   1632 
   1633 Assert that the compilation takes place in a freestanding environment
   1634 
   1635 .. option:: -ffunction-sections, -fno-function-sections
   1636 
   1637 Place each function in its own section
   1638 
   1639 .. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
   1640 
   1641 .. option:: -fgnu-keywords, -fno-gnu-keywords
   1642 
   1643 Allow GNU-extension keywords regardless of language standard
   1644 
   1645 .. option:: -fgnu-runtime
   1646 
   1647 Generate output compatible with the standard GNU Objective-C runtime
   1648 
   1649 .. option:: -fgnu89-inline, -fno-gnu89-inline
   1650 
   1651 Use the gnu89 inline semantics
   1652 
   1653 .. option:: -fgnuc-version=<arg>
   1654 
   1655 Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
   1656 
   1657 .. option:: -fgpu-allow-device-init, -fno-gpu-allow-device-init
   1658 
   1659 Allow device side init function in HIP
   1660 
   1661 .. option:: -fgpu-defer-diag, -fno-gpu-defer-diag
   1662 
   1663 Defer host/device related diagnostic messages for CUDA/HIP
   1664 
   1665 .. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
   1666 
   1667 Generate relocatable device code, also known as separate compilation mode
   1668 
   1669 .. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
   1670 
   1671 Use new kernel launching API for HIP
   1672 
   1673 .. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
   1674 
   1675 .. option:: -fhonor-nans, -fno-honor-nans
   1676 
   1677 .. option:: -fhosted
   1678 
   1679 .. option:: -fignore-exceptions
   1680 
   1681 Enable support for ignoring exception handling constructs
   1682 
   1683 .. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
   1684 
   1685 Implicitly search the file system for module map files.
   1686 
   1687 .. option:: -fimplicit-modules, -fno-implicit-modules
   1688 
   1689 .. option:: -finput-charset=<arg>
   1690 
   1691 .. option:: -finstrument-function-entry-bare
   1692 
   1693 Instrument function entry only, after inlining, without arguments to the instrumentation call
   1694 
   1695 .. option:: -finstrument-functions
   1696 
   1697 Generate calls to instrument function entry and exit
   1698 
   1699 .. option:: -finstrument-functions-after-inlining
   1700 
   1701 Like -finstrument-functions, but insert the calls after inlining
   1702 
   1703 .. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
   1704 
   1705 Enable the integrated assembler
   1706 
   1707 .. option:: -fintegrated-cc1, -fno-integrated-cc1
   1708 
   1709 Run cc1 in-process
   1710 
   1711 .. option:: -fjump-tables, -fno-jump-tables
   1712 
   1713 Use jump tables for lowering switches
   1714 
   1715 .. option:: -fkeep-static-consts, -fno-keep-static-consts
   1716 
   1717 Keep static const variables if unused
   1718 
   1719 .. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
   1720 
   1721 Enable implicit vector bit-casts
   1722 
   1723 .. option:: -flimited-precision=<arg>
   1724 
   1725 .. option:: -flto, -fno-lto
   1726 
   1727 Enable LTO in 'full' mode
   1728 
   1729 .. option:: -flto-jobs=<arg>
   1730 
   1731 Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
   1732 
   1733 .. program:: clang1
   1734 .. option:: -flto=<arg>
   1735 .. program:: clang
   1736 
   1737 Set LTO mode to either 'full' or 'thin'
   1738 
   1739 .. option:: -fmacro-backtrace-limit=<arg>
   1740 
   1741 .. option:: -fmath-errno, -fno-math-errno
   1742 
   1743 Require math functions to indicate errors by setting errno
   1744 
   1745 .. option:: -fmax-tokens=<arg>
   1746 
   1747 Max total number of preprocessed tokens for -Wmax-tokens.
   1748 
   1749 .. option:: -fmax-type-align=<arg>
   1750 
   1751 Specify the maximum alignment to enforce on pointers lacking an explicit alignment
   1752 
   1753 .. option:: -fmemory-profile, -fno-memory-profile
   1754 
   1755 Enable heap memory profiling
   1756 
   1757 .. option:: -fmerge-all-constants, -fno-merge-all-constants
   1758 
   1759 Allow merging of constants
   1760 
   1761 .. option:: -fmessage-length=<arg>
   1762 
   1763 Format message diagnostics so that they fit within N columns
   1764 
   1765 .. option:: -fmodule-file-deps, -fno-module-file-deps
   1766 
   1767 .. option:: -fmodule-map-file=<file>
   1768 
   1769 Load this module map file
   1770 
   1771 .. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
   1772 
   1773 Specify the name of the module to build
   1774 
   1775 .. option:: -fmodules, -fno-modules
   1776 
   1777 Enable the 'modules' language feature
   1778 
   1779 .. option:: -fmodules-decluse, -fno-modules-decluse
   1780 
   1781 Require declaration of modules used within a module
   1782 
   1783 .. option:: -fmodules-ignore-macro=<arg>
   1784 
   1785 Ignore the definition of the given macro when building and loading modules
   1786 
   1787 .. option:: -fmodules-search-all, -fno-modules-search-all
   1788 
   1789 Search even non-imported modules to resolve references
   1790 
   1791 .. option:: -fmodules-strict-decluse
   1792 
   1793 Like -fmodules-decluse but requires all headers to be in modules
   1794 
   1795 .. option:: -fmodules-ts
   1796 
   1797 Enable support for the C++ Modules TS
   1798 
   1799 .. option:: -fmodules-validate-input-files-content
   1800 
   1801 Validate PCM input files based on content if mtime differs
   1802 
   1803 .. option:: -fms-compatibility, -fno-ms-compatibility
   1804 
   1805 Enable full Microsoft Visual C++ compatibility
   1806 
   1807 .. option:: -fms-compatibility-version=<arg>
   1808 
   1809 Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
   1810 
   1811 .. option:: -fms-extensions, -fno-ms-extensions
   1812 
   1813 Accept some non-standard constructs supported by the Microsoft compiler
   1814 
   1815 .. option:: -fms-memptr-rep=<arg>
   1816 
   1817 .. option:: -fms-volatile
   1818 
   1819 .. option:: -fmsc-version=<arg>
   1820 
   1821 Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
   1822 
   1823 .. option:: -fmudflap
   1824 
   1825 .. option:: -fmudflapth
   1826 
   1827 .. option:: -fnested-functions
   1828 
   1829 .. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
   1830 
   1831 Specifies the largest alignment guaranteed by '::operator new(size\_t)'
   1832 
   1833 .. option:: -fnext-runtime
   1834 
   1835 .. option:: -fno-access-control, -fno-no-access-control
   1836 
   1837 .. option:: -fno-builtin-<arg>
   1838 
   1839 Disable implicit builtin knowledge of a specific function
   1840 
   1841 .. option:: -fno-elide-type
   1842 
   1843 Do not elide types when printing diagnostics
   1844 
   1845 .. option:: -fno-max-type-align
   1846 
   1847 .. option:: -fno-operator-names
   1848 
   1849 Do not treat C++ operator name keywords as synonyms for operators
   1850 
   1851 .. option:: -fno-strict-modules-decluse
   1852 
   1853 .. option:: -fno-temp-file
   1854 
   1855 Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
   1856 
   1857 .. option:: -fno-working-directory
   1858 
   1859 .. option:: -fno\_modules-validate-input-files-content
   1860 
   1861 .. program:: clang1
   1862 .. option:: -fno\_pch-validate-input-files-content
   1863 .. program:: clang
   1864 
   1865 .. option:: -fnoxray-link-deps
   1866 
   1867 .. option:: -fobjc-abi-version=<arg>
   1868 
   1869 .. option:: -fobjc-arc, -fno-objc-arc
   1870 
   1871 Synthesize retain and release calls for Objective-C pointers
   1872 
   1873 .. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
   1874 
   1875 Use EH-safe code when synthesizing retains and releases in -fobjc-arc
   1876 
   1877 .. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
   1878 
   1879 .. option:: -fobjc-exceptions, -fno-objc-exceptions
   1880 
   1881 Enable Objective-C exceptions
   1882 
   1883 .. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
   1884 
   1885 .. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
   1886 
   1887 .. option:: -fobjc-link-runtime
   1888 
   1889 .. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
   1890 
   1891 .. option:: -fobjc-nonfragile-abi-version=<arg>
   1892 
   1893 .. option:: -fobjc-runtime=<arg>
   1894 
   1895 Specify the target Objective-C runtime kind and version
   1896 
   1897 .. option:: -fobjc-sender-dependent-dispatch
   1898 
   1899 .. option:: -fobjc-weak, -fno-objc-weak
   1900 
   1901 Enable ARC-style weak references in Objective-C
   1902 
   1903 .. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
   1904 
   1905 .. option:: -fopenmp, -fno-openmp
   1906 
   1907 Parse OpenMP pragmas and generate parallel code.
   1908 
   1909 .. option:: -fopenmp-simd, -fno-openmp-simd
   1910 
   1911 Emit OpenMP code only for SIMD-based constructs.
   1912 
   1913 .. option:: -fopenmp-version=<arg>
   1914 
   1915 .. program:: clang1
   1916 .. option:: -fopenmp=<arg>
   1917 .. program:: clang
   1918 
   1919 .. option:: -foperator-arrow-depth=<arg>
   1920 
   1921 .. option:: -foptimization-record-file=<file>
   1922 
   1923 Specify the output name of the file containing the optimization remarks. Implies -fsave-optimization-record. On Darwin platforms, this cannot be used with multiple -arch <arch> options.
   1924 
   1925 .. option:: -foptimization-record-passes=<regex>
   1926 
   1927 Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
   1928 
   1929 .. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
   1930 
   1931 .. option:: -forder-file-instrumentation
   1932 
   1933 Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
   1934 
   1935 .. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
   1936 
   1937 .. option:: -fpack-struct, -fno-pack-struct
   1938 
   1939 .. program:: clang1
   1940 .. option:: -fpack-struct=<arg>
   1941 .. program:: clang
   1942 
   1943 Specify the default maximum struct packing alignment
   1944 
   1945 .. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
   1946 
   1947 Recognize and construct Pascal-style string literals
   1948 
   1949 .. option:: -fpass-plugin=<dsopath>
   1950 
   1951 Load pass plugin from a dynamic shared object file (only with new pass manager).
   1952 
   1953 .. option:: -fpatchable-function-entry=<N,M>
   1954 
   1955 Generate M NOPs before function entry and N-M NOPs after function entry
   1956 
   1957 .. option:: -fpcc-struct-return
   1958 
   1959 Override the default ABI to return all structs on the stack
   1960 
   1961 .. option:: -fpch-codegen, -fno-pch-codegen
   1962 
   1963 Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
   1964 
   1965 .. option:: -fpch-debuginfo, -fno-pch-debuginfo
   1966 
   1967 Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
   1968 
   1969 .. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
   1970 
   1971 Instantiate templates already while building a PCH
   1972 
   1973 .. option:: -fpch-preprocess
   1974 
   1975 .. option:: -fpch-validate-input-files-content
   1976 
   1977 Validate PCH input files based on content if mtime differs
   1978 
   1979 .. option:: -fpic, -fno-pic
   1980 
   1981 .. option:: -fpie, -fno-pie
   1982 
   1983 .. option:: -fplt, -fno-plt
   1984 
   1985 .. option:: -fplugin=<dsopath>
   1986 
   1987 Load the named plugin (dynamic shared object)
   1988 
   1989 .. option:: -fpreserve-as-comments, -fno-preserve-as-comments
   1990 
   1991 .. option:: -fprofile-arcs, -fno-profile-arcs
   1992 
   1993 .. option:: -fprofile-dir=<arg>
   1994 
   1995 .. option:: -fprofile-exclude-files=<arg>
   1996 
   1997 Instrument only functions from files where names don't match all the regexes separated by a semi-colon
   1998 
   1999 .. option:: -fprofile-filter-files=<arg>
   2000 
   2001 Instrument only functions from files where names match any regex separated by a semi-colon
   2002 
   2003 .. option:: -fprofile-generate, -fno-profile-generate
   2004 
   2005 Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
   2006 
   2007 .. program:: clang1
   2008 .. option:: -fprofile-generate=<directory>
   2009 .. program:: clang
   2010 
   2011 Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
   2012 
   2013 .. option:: -fprofile-instr-generate, -fno-profile-instr-generate
   2014 
   2015 Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
   2016 
   2017 .. program:: clang1
   2018 .. option:: -fprofile-instr-generate=<file>
   2019 .. program:: clang
   2020 
   2021 Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
   2022 
   2023 .. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
   2024 
   2025 .. program:: clang1
   2026 .. option:: -fprofile-instr-use=<arg>
   2027 .. program:: clang
   2028 
   2029 Use instrumentation data for profile-guided optimization
   2030 
   2031 .. option:: -fprofile-remapping-file=<file>, -fprofile-remapping-file <arg>
   2032 
   2033 Use the remappings described in <file> to match the profile data against names in the program
   2034 
   2035 .. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
   2036 
   2037 Specifies that the sample profile is accurate. If the sample
   2038                profile is accurate, callsites without profile samples are marked
   2039                as cold. Otherwise, treat callsites without profile samples as if
   2040                we have no profile
   2041 
   2042 .. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
   2043 
   2044 .. program:: clang1
   2045 .. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
   2046 .. program:: clang
   2047 
   2048 Enable sample-based profile guided optimizations
   2049 
   2050 .. option:: -fprofile-update=<method>
   2051 
   2052 Set update method of profile counters (atomic,prefer-atomic,single)
   2053 
   2054 .. program:: clang1
   2055 .. option:: -fprofile-use=<pathname>
   2056 .. program:: clang
   2057 
   2058 Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
   2059 
   2060 .. program:: clang1
   2061 .. option:: -fprofile-list=<file>
   2062 .. program:: clang
   2063 
   2064 Filename defining the list of functions/files to instrument. The file uses the sanitizer special case list format.
   2065 
   2066 .. option:: -freciprocal-math, -fno-reciprocal-math
   2067 
   2068 Allow division operations to be reassociated
   2069 
   2070 .. option:: -freg-struct-return
   2071 
   2072 Override the default ABI to return small structs in registers
   2073 
   2074 .. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
   2075 
   2076 Use atexit or \_\_cxa\_atexit to register global destructors
   2077 
   2078 .. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
   2079 
   2080 Enable C++17 relaxed template template argument matching
   2081 
   2082 .. option:: -freroll-loops, -fno-reroll-loops
   2083 
   2084 Turn on loop reroller
   2085 
   2086 .. option:: -fretain-comments-from-system-headers
   2087 
   2088 .. option:: -frewrite-imports, -fno-rewrite-imports
   2089 
   2090 .. option:: -frewrite-includes, -fno-rewrite-includes
   2091 
   2092 .. option:: -frewrite-map-file <arg>
   2093 
   2094 .. program:: clang1
   2095 .. option:: -frewrite-map-file=<arg>
   2096 .. program:: clang
   2097 
   2098 .. option:: -fropi, -fno-ropi
   2099 
   2100 Generate read-only position independent code (ARM only)
   2101 
   2102 .. option:: -frounding-math, -fno-rounding-math
   2103 
   2104 .. option:: -frtti, -fno-rtti
   2105 
   2106 .. option:: -frtti-data, -fno-rtti-data
   2107 
   2108 .. option:: -frwpi, -fno-rwpi
   2109 
   2110 Generate read-write position independent code (ARM only)
   2111 
   2112 .. option:: -fsave-optimization-record, -fno-save-optimization-record
   2113 
   2114 Generate a YAML optimization record file
   2115 
   2116 .. program:: clang1
   2117 .. option:: -fsave-optimization-record=<format>
   2118 .. program:: clang
   2119 
   2120 Generate an optimization record file in a specific format
   2121 
   2122 .. option:: -fseh-exceptions
   2123 
   2124 Use SEH style exceptions
   2125 
   2126 .. option:: -fsemantic-interposition, -fno-semantic-interposition
   2127 
   2128 .. option:: -fshort-enums, -fno-short-enums
   2129 
   2130 Allocate to an enum type only as many bytes as it needs for the declared range of possible values
   2131 
   2132 .. option:: -fshort-wchar, -fno-short-wchar
   2133 
   2134 Force wchar\_t to be a short unsigned int
   2135 
   2136 .. option:: -fshow-column, -fno-show-column
   2137 
   2138 .. option:: -fshow-overloads=<arg>
   2139 
   2140 Which overload candidates to show when overload resolution fails: best\|all; defaults to all
   2141 
   2142 .. option:: -fshow-source-location, -fno-show-source-location
   2143 
   2144 .. option:: -fsignaling-math, -fno-signaling-math
   2145 
   2146 .. option:: -fsigned-bitfields
   2147 
   2148 .. option:: -fsigned-char, -fno-signed-char, --signed-char
   2149 
   2150 char is signed
   2151 
   2152 .. option:: -fsigned-zeros, -fno-signed-zeros
   2153 
   2154 .. option:: -fsized-deallocation, -fno-sized-deallocation
   2155 
   2156 Enable C++14 sized global deallocation functions
   2157 
   2158 .. option:: -fsjlj-exceptions
   2159 
   2160 Use SjLj style exceptions
   2161 
   2162 .. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
   2163 
   2164 Enable the superword-level parallelism vectorization passes
   2165 
   2166 .. option:: -fspell-checking, -fno-spell-checking
   2167 
   2168 .. option:: -fspell-checking-limit=<arg>
   2169 
   2170 .. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
   2171 
   2172 Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
   2173 
   2174 .. option:: -fsplit-lto-unit, -fno-split-lto-unit
   2175 
   2176 Enables splitting of the LTO unit
   2177 
   2178 .. option:: -fsplit-machine-functions, -fno-split-machine-functions
   2179 
   2180 Enable late function splitting using profile information (x86 ELF)
   2181 
   2182 .. option:: -fsplit-stack
   2183 
   2184 .. option:: -fstack-clash-protection, -fno-stack-clash-protection
   2185 
   2186 Enable stack clash protection
   2187 
   2188 .. option:: -fstack-protector, -fno-stack-protector
   2189 
   2190 Enable stack protectors for some functions vulnerable to stack smashing. This uses a loose heuristic which considers functions vulnerable if they contain a char (or 8bit integer) array or constant sized calls to alloca , which are of greater size than ssp-buffer-size (default: 8 bytes). All variable sized calls to alloca are considered vulnerable. A function with a stack protector has a guard value added to the stack frame that is checked on function exit. The guard value must be positioned in the stack frame such that a buffer overflow from a vulnerable variable will overwrite the guard value before overwriting the function's return address. The reference stack guard value is stored in a global variable.
   2191 
   2192 .. option:: -fstack-protector-all
   2193 
   2194 Enable stack protectors for all functions
   2195 
   2196 .. option:: -fstack-protector-strong
   2197 
   2198 Enable stack protectors for some functions vulnerable to stack smashing. Compared to -fstack-protector, this uses a stronger heuristic that includes functions containing arrays of any size (and any type), as well as any calls to alloca or the taking of an address from a local variable
   2199 
   2200 .. option:: -fstack-size-section, -fno-stack-size-section
   2201 
   2202 Emit section containing metadata on function stack sizes
   2203 
   2204 .. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
   2205 
   2206 Emit full debug info for all types used by the program
   2207 
   2208 .. option:: -fstrict-aliasing, -fno-strict-aliasing
   2209 
   2210 .. option:: -fstrict-enums, -fno-strict-enums
   2211 
   2212 Enable optimizations based on the strict definition of an enum's value range
   2213 
   2214 .. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
   2215 
   2216 Assume that overflowing float-to-int casts are undefined (default)
   2217 
   2218 .. option:: -fstrict-overflow, -fno-strict-overflow
   2219 
   2220 .. option:: -fstrict-return, -fno-strict-return
   2221 
   2222 .. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
   2223 
   2224 Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
   2225 
   2226 .. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
   2227 
   2228 .. option:: -fsymbol-partition=<arg>
   2229 
   2230 .. option:: -ftabstop=<arg>
   2231 
   2232 .. option:: -ftemplate-backtrace-limit=<arg>
   2233 
   2234 .. option:: -ftemplate-depth-<arg>
   2235 
   2236 .. option:: -ftemplate-depth=<arg>
   2237 
   2238 .. option:: -ftest-coverage, -fno-test-coverage
   2239 
   2240 .. option:: -fthin-link-bitcode=<arg>
   2241 
   2242 Write minimized bitcode to <file> for the ThinLTO thin link only
   2243 
   2244 .. option:: -fthinlto-index=<arg>
   2245 
   2246 Perform ThinLTO importing using provided function summary index
   2247 
   2248 .. option:: -fthreadsafe-statics, -fno-threadsafe-statics
   2249 
   2250 .. option:: -ftime-report
   2251 
   2252 .. option:: -ftime-trace
   2253 
   2254 
   2255 Turn on time profiler. Generates JSON file based on output filename. Results
   2256 can be analyzed with chrome://tracing or `Speedscope App
   2257 <https://www.speedscope.app>`_ for flamegraph visualization.
   2258 
   2259 .. option:: -ftime-trace-granularity=<arg>
   2260 
   2261 Minimum time granularity (in microseconds) traced by time profiler
   2262 
   2263 .. option:: -ftls-model=<arg>
   2264 
   2265 .. option:: -ftrap-function=<arg>
   2266 
   2267 Issue call to specified function rather than a trap instruction
   2268 
   2269 .. option:: -ftrapping-math, -fno-trapping-math
   2270 
   2271 .. option:: -ftrapv
   2272 
   2273 Trap on integer overflow
   2274 
   2275 .. option:: -ftrapv-handler <arg>
   2276 
   2277 .. program:: clang1
   2278 .. option:: -ftrapv-handler=<function name>
   2279 .. program:: clang
   2280 
   2281 Specify the function to be called on overflow
   2282 
   2283 .. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
   2284 
   2285 Process trigraph sequences
   2286 
   2287 .. option:: -ftrivial-auto-var-init-stop-after=<arg>
   2288 
   2289 Stop initializing trivial automatic stack variables after the specified number of instances
   2290 
   2291 .. option:: -ftrivial-auto-var-init=<arg>
   2292 
   2293 Initialize trivial automatic stack variables: uninitialized (default) \| pattern
   2294 
   2295 .. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
   2296 
   2297 Use unique names for basic block sections (ELF Only)
   2298 
   2299 .. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
   2300 
   2301 Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
   2302 
   2303 .. option:: -funique-section-names, -fno-unique-section-names
   2304 
   2305 .. option:: -funit-at-a-time, -fno-unit-at-a-time
   2306 
   2307 .. option:: -funroll-loops, -fno-unroll-loops
   2308 
   2309 Turn on loop unroller
   2310 
   2311 .. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
   2312 
   2313 .. option:: -funsigned-bitfields
   2314 
   2315 .. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
   2316 
   2317 .. option:: -funwind-tables, -fno-unwind-tables
   2318 
   2319 .. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
   2320 
   2321 .. option:: -fuse-init-array, -fno-use-init-array
   2322 
   2323 .. option:: -fuse-ld=<arg>
   2324 
   2325 .. option:: -fuse-line-directives, -fno-use-line-directives
   2326 
   2327 Use #line in preprocessed output
   2328 
   2329 .. option:: -fvalidate-ast-input-files-content
   2330 
   2331 Compute and store the hash of input files used to build an AST. Files with mismatching mtime's are considered valid if both contents is identical
   2332 
   2333 .. option:: -fveclib=<arg>
   2334 
   2335 Use the given vector functions library
   2336 
   2337 .. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
   2338 
   2339 Enable the loop vectorization passes
   2340 
   2341 .. option:: -fverbose-asm, -dA, -fno-verbose-asm
   2342 
   2343 Generate verbose assembly output
   2344 
   2345 .. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
   2346 
   2347 Enables dead virtual function elimination optimization. Requires -flto=full
   2348 
   2349 .. option:: -fvisibility-global-new-delete-hidden
   2350 
   2351 Give global C++ operator new and delete declarations hidden visibility
   2352 
   2353 .. option:: -fvisibility-inlines-hidden
   2354 
   2355 Give inline C++ member functions hidden visibility by default
   2356 
   2357 .. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
   2358 
   2359 When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
   2360 
   2361 .. option:: -fvisibility-ms-compat
   2362 
   2363 Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
   2364 
   2365 .. option:: -fvisibility=<arg>
   2366 
   2367 Set the default symbol visibility for all global declarations
   2368 
   2369 .. option:: -fwasm-exceptions
   2370 
   2371 Use WebAssembly style exceptions
   2372 
   2373 .. option:: -fwhole-program-vtables, -fno-whole-program-vtables
   2374 
   2375 Enables whole-program vtable optimization. Requires -flto
   2376 
   2377 .. option:: -fwrapv, -fno-wrapv
   2378 
   2379 Treat signed integer overflow as two's complement
   2380 
   2381 .. option:: -fwritable-strings
   2382 
   2383 Store string literals as writable data
   2384 
   2385 .. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
   2386 
   2387 Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
   2388 
   2389 .. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
   2390 
   2391 Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
   2392 
   2393 .. option:: -fxray-always-instrument=<arg>
   2394 
   2395 DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
   2396 
   2397 .. option:: -fxray-attr-list=<arg>
   2398 
   2399 Filename defining the list of functions/types for imbuing XRay attributes.
   2400 
   2401 .. option:: -fxray-function-groups=<arg>
   2402 
   2403 Only instrument 1 of N groups
   2404 
   2405 .. option:: -fxray-function-index, -fno-xray-function-index
   2406 
   2407 .. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
   2408 
   2409 Don't instrument functions with loops unless they also meet the minimum function size
   2410 
   2411 .. option:: -fxray-instruction-threshold<arg>
   2412 
   2413 .. program:: clang1
   2414 .. option:: -fxray-instruction-threshold=<arg>
   2415 .. program:: clang
   2416 
   2417 Sets the minimum function size to instrument with XRay
   2418 
   2419 .. option:: -fxray-instrument, -fno-xray-instrument
   2420 
   2421 Generate XRay instrumentation sleds on function entry and exit
   2422 
   2423 .. option:: -fxray-instrumentation-bundle=<arg>
   2424 
   2425 Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'.  'function' includes both 'function-entry' and 'function-exit'.
   2426 
   2427 .. option:: -fxray-link-deps
   2428 
   2429 Tells clang to add the link dependencies for XRay.
   2430 
   2431 .. option:: -fxray-modes=<arg>
   2432 
   2433 List of modes to link in by default into XRay instrumented binaries.
   2434 
   2435 .. option:: -fxray-never-instrument=<arg>
   2436 
   2437 DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
   2438 
   2439 .. option:: -fxray-selected-function-group=<arg>
   2440 
   2441 When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
   2442 
   2443 .. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
   2444 
   2445 .. option:: -fzvector, -fno-zvector, -mzvector
   2446 
   2447 Enable System z vector language extension
   2448 
   2449 .. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
   2450 
   2451 .. option:: -pedantic-errors, --pedantic-errors
   2452 
   2453 OpenCL flags
   2454 ------------
   2455 .. option:: -cl-denorms-are-zero
   2456 
   2457 OpenCL only. Allow denormals to be flushed to zero.
   2458 
   2459 .. option:: -cl-fast-relaxed-math
   2460 
   2461 OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
   2462 
   2463 .. option:: -cl-finite-math-only
   2464 
   2465 OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
   2466 
   2467 .. option:: -cl-fp32-correctly-rounded-divide-sqrt
   2468 
   2469 OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
   2470 
   2471 .. option:: -cl-kernel-arg-info
   2472 
   2473 OpenCL only. Generate kernel argument metadata.
   2474 
   2475 .. option:: -cl-mad-enable
   2476 
   2477 OpenCL only. Allow use of less precise MAD computations in the generated binary.
   2478 
   2479 .. option:: -cl-no-signed-zeros
   2480 
   2481 OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
   2482 
   2483 .. option:: -cl-opt-disable
   2484 
   2485 OpenCL only. This option disables all optimizations. By default optimizations are enabled.
   2486 
   2487 .. option:: -cl-single-precision-constant
   2488 
   2489 OpenCL only. Treat double precision floating-point constant as single precision constant.
   2490 
   2491 .. option:: -cl-std=<arg>
   2492 
   2493 OpenCL language standard to compile for.
   2494 
   2495 .. option:: -cl-strict-aliasing
   2496 
   2497 OpenCL only. This option is added for compatibility with OpenCL 1.0.
   2498 
   2499 .. option:: -cl-uniform-work-group-size
   2500 
   2501 OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
   2502 
   2503 .. option:: -cl-unsafe-math-optimizations
   2504 
   2505 OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
   2506 
   2507 SYCL flags
   2508 ----------
   2509 .. option:: -fsycl, -fno-sycl
   2510 
   2511 Enable SYCL kernels compilation for device
   2512 
   2513 .. option:: -sycl-std=<arg>
   2514 
   2515 SYCL language standard to compile for.
   2516 
   2517 Target-dependent compilation options
   2518 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   2519 .. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
   2520 
   2521 Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
   2522 
   2523 .. option:: -ffixed-x1
   2524 
   2525 Reserve the x1 register (AArch64/RISC-V only)
   2526 
   2527 .. option:: -ffixed-x10
   2528 
   2529 Reserve the x10 register (AArch64/RISC-V only)
   2530 
   2531 .. option:: -ffixed-x11
   2532 
   2533 Reserve the x11 register (AArch64/RISC-V only)
   2534 
   2535 .. option:: -ffixed-x12
   2536 
   2537 Reserve the x12 register (AArch64/RISC-V only)
   2538 
   2539 .. option:: -ffixed-x13
   2540 
   2541 Reserve the x13 register (AArch64/RISC-V only)
   2542 
   2543 .. option:: -ffixed-x14
   2544 
   2545 Reserve the x14 register (AArch64/RISC-V only)
   2546 
   2547 .. option:: -ffixed-x15
   2548 
   2549 Reserve the x15 register (AArch64/RISC-V only)
   2550 
   2551 .. option:: -ffixed-x16
   2552 
   2553 Reserve the x16 register (AArch64/RISC-V only)
   2554 
   2555 .. option:: -ffixed-x17
   2556 
   2557 Reserve the x17 register (AArch64/RISC-V only)
   2558 
   2559 .. option:: -ffixed-x18
   2560 
   2561 Reserve the x18 register (AArch64/RISC-V only)
   2562 
   2563 .. option:: -ffixed-x19
   2564 
   2565 Reserve the x19 register (AArch64/RISC-V only)
   2566 
   2567 .. option:: -ffixed-x2
   2568 
   2569 Reserve the x2 register (AArch64/RISC-V only)
   2570 
   2571 .. option:: -ffixed-x20
   2572 
   2573 Reserve the x20 register (AArch64/RISC-V only)
   2574 
   2575 .. option:: -ffixed-x21
   2576 
   2577 Reserve the x21 register (AArch64/RISC-V only)
   2578 
   2579 .. option:: -ffixed-x22
   2580 
   2581 Reserve the x22 register (AArch64/RISC-V only)
   2582 
   2583 .. option:: -ffixed-x23
   2584 
   2585 Reserve the x23 register (AArch64/RISC-V only)
   2586 
   2587 .. option:: -ffixed-x24
   2588 
   2589 Reserve the x24 register (AArch64/RISC-V only)
   2590 
   2591 .. option:: -ffixed-x25
   2592 
   2593 Reserve the x25 register (AArch64/RISC-V only)
   2594 
   2595 .. option:: -ffixed-x26
   2596 
   2597 Reserve the x26 register (AArch64/RISC-V only)
   2598 
   2599 .. option:: -ffixed-x27
   2600 
   2601 Reserve the x27 register (AArch64/RISC-V only)
   2602 
   2603 .. option:: -ffixed-x28
   2604 
   2605 Reserve the x28 register (AArch64/RISC-V only)
   2606 
   2607 .. option:: -ffixed-x29
   2608 
   2609 Reserve the x29 register (AArch64/RISC-V only)
   2610 
   2611 .. option:: -ffixed-x3
   2612 
   2613 Reserve the x3 register (AArch64/RISC-V only)
   2614 
   2615 .. option:: -ffixed-x30
   2616 
   2617 Reserve the x30 register (AArch64/RISC-V only)
   2618 
   2619 .. option:: -ffixed-x31
   2620 
   2621 Reserve the x31 register (AArch64/RISC-V only)
   2622 
   2623 .. option:: -ffixed-x4
   2624 
   2625 Reserve the x4 register (AArch64/RISC-V only)
   2626 
   2627 .. option:: -ffixed-x5
   2628 
   2629 Reserve the x5 register (AArch64/RISC-V only)
   2630 
   2631 .. option:: -ffixed-x6
   2632 
   2633 Reserve the x6 register (AArch64/RISC-V only)
   2634 
   2635 .. option:: -ffixed-x7
   2636 
   2637 Reserve the x7 register (AArch64/RISC-V only)
   2638 
   2639 .. option:: -ffixed-x8
   2640 
   2641 Reserve the x8 register (AArch64/RISC-V only)
   2642 
   2643 .. option:: -ffixed-x9
   2644 
   2645 Reserve the x9 register (AArch64/RISC-V only)
   2646 
   2647 .. option:: -m16
   2648 
   2649 .. option:: -m32
   2650 
   2651 .. option:: -m64
   2652 
   2653 .. option:: -mabi=<arg>
   2654 
   2655 .. option:: -maix-struct-return
   2656 
   2657 Return all structs in memory (PPC32 only)
   2658 
   2659 .. option:: -malign-branch-boundary=<arg>
   2660 
   2661 Specify the boundary's size to align branches
   2662 
   2663 .. option:: -malign-branch=<arg1>,<arg2>...
   2664 
   2665 Specify types of branches to align
   2666 
   2667 .. option:: -malign-double
   2668 
   2669 Align doubles to two words in structs (x86 only)
   2670 
   2671 .. option:: -march=<arg>
   2672 
   2673 .. option:: -masm=<arg>
   2674 
   2675 .. option:: -mbackchain, -mno-backchain
   2676 
   2677 Link stack frames through backchain on System Z
   2678 
   2679 .. option:: -mbranches-within-32B-boundaries
   2680 
   2681 Align selected branches (fused, jcc, jmp) within 32-byte boundary
   2682 
   2683 .. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
   2684 
   2685 .. option:: -mcode-object-v3, -mno-code-object-v3
   2686 
   2687 Legacy option to specify code object ABI V2 (-mnocode-object-v3) or V3 (-mcode-object-v3) (AMDGPU only)
   2688 
   2689 .. option:: -mcode-object-version=<version>
   2690 
   2691 Specify code object ABI version. Defaults to 4. (AMDGPU only)
   2692 
   2693 .. option:: -mconsole<arg>
   2694 
   2695 .. program:: clang1
   2696 .. option:: -mcpu=<arg>, -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62), -mv65 (equivalent to -mcpu=hexagonv65), -mv66 (equivalent to -mcpu=hexagonv66), -mv67 (equivalent to -mcpu=hexagonv67), -mv67t (equivalent to -mcpu=hexagonv67t)
   2697 .. program:: clang
   2698 
   2699 .. option:: -mcrc, -mno-crc
   2700 
   2701 Allow use of CRC instructions (ARM/Mips only)
   2702 
   2703 .. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
   2704 
   2705 .. option:: -mdll<arg>
   2706 
   2707 .. option:: -mdouble=<arg>
   2708 
   2709 Force double to be 32 bits or 64 bits
   2710 
   2711 .. option:: -mdynamic-no-pic<arg>
   2712 
   2713 .. option:: -meabi <arg>
   2714 
   2715 Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
   2716 
   2717 .. option:: -menable-experimental-extensions
   2718 
   2719 Enable use of experimental RISC-V extensions.
   2720 
   2721 .. option:: -mfentry
   2722 
   2723 Insert calls to fentry at function entry (x86/SystemZ only)
   2724 
   2725 .. option:: -mfloat-abi=<arg>
   2726 
   2727 .. option:: -mfpmath=<arg>
   2728 
   2729 .. option:: -mfpu=<arg>
   2730 
   2731 .. option:: -mglobal-merge, -mno-global-merge
   2732 
   2733 Enable merging of globals
   2734 
   2735 .. option:: -mhard-float
   2736 
   2737 .. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
   2738 
   2739 .. option:: -mhwmult=<arg>
   2740 
   2741 .. option:: -miamcu, -mno-iamcu
   2742 
   2743 Use Intel MCU ABI
   2744 
   2745 .. option:: -mignore-xcoff-visibility
   2746 
   2747 Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
   2748 
   2749 .. option:: -mimplicit-float, -mno-implicit-float
   2750 
   2751 .. option:: -mimplicit-it=<arg>
   2752 
   2753 .. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
   2754 
   2755 (integrated-as) Emit an object file which can be used with an incremental linker
   2756 
   2757 .. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
   2758 
   2759 .. option:: -mkernel
   2760 
   2761 .. option:: -mlong-calls, -mno-long-calls
   2762 
   2763 Generate branches with extended addressability, usually via indirect jumps.
   2764 
   2765 .. option:: -mlvi-cfi, -mno-lvi-cfi
   2766 
   2767 Enable only control-flow mitigations for Load Value Injection (LVI)
   2768 
   2769 .. option:: -mlvi-hardening, -mno-lvi-hardening
   2770 
   2771 Enable all mitigations for Load Value Injection (LVI)
   2772 
   2773 .. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
   2774 
   2775 Set Mac OS X deployment target
   2776 
   2777 .. option:: -mmcu=<arg>
   2778 
   2779 .. option:: -mms-bitfields, -mno-ms-bitfields
   2780 
   2781 Set the default structure layout to be compatible with the Microsoft compiler standard
   2782 
   2783 .. option:: -mnop-mcount
   2784 
   2785 Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
   2786 
   2787 .. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
   2788 
   2789 Omit frame pointer setup for leaf functions
   2790 
   2791 .. option:: -moslib=<arg>
   2792 
   2793 .. option:: -mpacked-stack, -mno-packed-stack
   2794 
   2795 Use packed stack layout (SystemZ only).
   2796 
   2797 .. option:: -mpad-max-prefix-size=<arg>
   2798 
   2799 Specify maximum number of prefixes to use for padding
   2800 
   2801 .. option:: -mprefer-vector-width=<arg>
   2802 
   2803 Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
   2804 
   2805 .. option:: -mqdsp6-compat
   2806 
   2807 Enable hexagon-qdsp6 backward compatibility
   2808 
   2809 .. option:: -mrecip
   2810 
   2811 .. program:: clang1
   2812 .. option:: -mrecip=<arg1>,<arg2>...
   2813 .. program:: clang
   2814 
   2815 .. option:: -mrecord-mcount
   2816 
   2817 Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
   2818 
   2819 .. option:: -mred-zone, -mno-red-zone
   2820 
   2821 .. option:: -mregparm=<arg>
   2822 
   2823 .. option:: -mrelax, -mno-relax
   2824 
   2825 Enable linker relaxation
   2826 
   2827 .. option:: -mrelax-all, -mno-relax-all
   2828 
   2829 (integrated-as) Relax all machine instructions
   2830 
   2831 .. option:: -mretpoline, -mno-retpoline
   2832 
   2833 .. option:: -mrtd, -mno-rtd
   2834 
   2835 Make StdCall calling convention the default
   2836 
   2837 .. option:: -mseses, -mno-seses
   2838 
   2839 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
   2840 
   2841 .. option:: -msign-return-address=<arg>
   2842 
   2843 Select return address signing scope
   2844 
   2845 .. option:: -msim
   2846 
   2847 .. option:: -msoft-float, -mno-soft-float
   2848 
   2849 Use software floating point
   2850 
   2851 .. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
   2852 
   2853 .. option:: -mstack-alignment=<arg>
   2854 
   2855 Set the stack alignment
   2856 
   2857 .. option:: -mstack-arg-probe, -mno-stack-arg-probe
   2858 
   2859 Enable stack probes
   2860 
   2861 .. option:: -mstack-probe-size=<arg>
   2862 
   2863 Set the stack probe size
   2864 
   2865 .. option:: -mstack-protector-guard-offset=<arg>
   2866 
   2867 Use the given offset for addressing the stack-protector guard
   2868 
   2869 .. option:: -mstack-protector-guard-reg=<arg>
   2870 
   2871 Use the given reg for addressing the stack-protector guard
   2872 
   2873 .. option:: -mstack-protector-guard=<arg>
   2874 
   2875 Use the given guard (global, tls) for addressing the stack-protector guard
   2876 
   2877 .. option:: -mstackrealign, -mno-stackrealign
   2878 
   2879 Force realign the stack at entry to every function
   2880 
   2881 .. option:: -msvr4-struct-return
   2882 
   2883 Return small structs in registers (PPC32 only)
   2884 
   2885 .. option:: -mthread-model <arg>
   2886 
   2887 The thread model to use, e.g. posix, single (posix by default)
   2888 
   2889 .. option:: -mthreads<arg>
   2890 
   2891 .. option:: -mthumb, -mno-thumb
   2892 
   2893 .. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
   2894 
   2895 Enable direct TLS access through segment registers (default)
   2896 
   2897 .. option:: -mtls-size=<arg>
   2898 
   2899 Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) \| 24 (for 16MB, default) \| 32 (for 4GB) \| 48 (for 256TB, needs -mcmodel=large)
   2900 
   2901 .. program:: clang1
   2902 .. option:: -mtune=<arg>
   2903 .. program:: clang
   2904 
   2905 Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.
   2906 
   2907 .. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
   2908 
   2909 .. option:: -municode<arg>
   2910 
   2911 .. option:: -mabi=vec-extabi, -mabi=vec-default
   2912 
   2913 Only supported on AIX. Specify usage of the extended vector ABI on AIX and of non-volatile vector registers. Defaults to '-mabi=default' when Altivec is enabled.
   2914 
   2915 .. option:: -mvx, -mno-vx
   2916 
   2917 .. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
   2918 
   2919 .. option:: -mwatchos-version-min=<arg>
   2920 
   2921 .. option:: -mwavefrontsize64, -mno-wavefrontsize64
   2922 
   2923 Specify wavefront size 64 mode (AMDGPU only)
   2924 
   2925 .. option:: -mwindows<arg>
   2926 
   2927 .. option:: -mx32
   2928 
   2929 AARCH64
   2930 -------
   2931 .. option:: -fcall-saved-x10
   2932 
   2933 Make the x10 register call-saved (AArch64 only)
   2934 
   2935 .. option:: -fcall-saved-x11
   2936 
   2937 Make the x11 register call-saved (AArch64 only)
   2938 
   2939 .. option:: -fcall-saved-x12
   2940 
   2941 Make the x12 register call-saved (AArch64 only)
   2942 
   2943 .. option:: -fcall-saved-x13
   2944 
   2945 Make the x13 register call-saved (AArch64 only)
   2946 
   2947 .. option:: -fcall-saved-x14
   2948 
   2949 Make the x14 register call-saved (AArch64 only)
   2950 
   2951 .. option:: -fcall-saved-x15
   2952 
   2953 Make the x15 register call-saved (AArch64 only)
   2954 
   2955 .. option:: -fcall-saved-x18
   2956 
   2957 Make the x18 register call-saved (AArch64 only)
   2958 
   2959 .. option:: -fcall-saved-x8
   2960 
   2961 Make the x8 register call-saved (AArch64 only)
   2962 
   2963 .. option:: -fcall-saved-x9
   2964 
   2965 Make the x9 register call-saved (AArch64 only)
   2966 
   2967 .. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
   2968 
   2969 Workaround Cortex-A53 erratum 835769 (AArch64 only)
   2970 
   2971 .. option:: -mgeneral-regs-only
   2972 
   2973 Generate code which only uses the general purpose registers (AArch64 only)
   2974 
   2975 .. option:: -mmark-bti-property
   2976 
   2977 Add .note.gnu.property with BTI to assembly files (AArch64 only)
   2978 
   2979 .. option:: -msve-vector-bits=<arg>
   2980 
   2981 Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
   2982 
   2983 AMDGPU
   2984 ------
   2985 .. option:: -mcumode, -mno-cumode
   2986 
   2987 Specify CU (-mcumode) or WGP (-mno-cumode) wavefront execution mode (AMDGPU only)
   2988 
   2989 .. option:: -msram-ecc, -mno-sram-ecc
   2990 
   2991 Specify SRAM ECC mode (AMDGPU only)
   2992 
   2993 .. option:: -mtgsplit, -mno-tgsplit
   2994 
   2995 Enable threadgroup split execution mode (AMDGPU only)
   2996 
   2997 .. option:: -mxnack, -mno-xnack
   2998 
   2999 Specify XNACK mode (AMDGPU only)
   3000 
   3001 .. option:: -munsafe-fp-atomics, -mno-unsafe-fp-atomics
   3002 
   3003 Enable generation of unsafe floating point atomic instructions. May generate more efficient code, but may not respect rounding and denormal modes, and may give incorrect results for certain memory destinations. (AMDGPU only)
   3004 
   3005 ARM
   3006 ---
   3007 .. option:: -faapcs-bitfield-load
   3008 
   3009 Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
   3010 
   3011 .. option:: -faapcs-bitfield-width, -fno-aapcs-bitfield-width
   3012 
   3013 Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only).
   3014 
   3015 .. option:: -ffixed-r9
   3016 
   3017 Reserve the r9 register (ARM only)
   3018 
   3019 .. option:: -mcmse
   3020 
   3021 Allow use of CMSE (Armv8-M Security Extensions)
   3022 
   3023 .. option:: -mexecute-only, -mno-execute-only, -mpure-code
   3024 
   3025 Disallow generation of data access to code sections (ARM only)
   3026 
   3027 .. option:: -mno-movt
   3028 
   3029 Disallow use of movt/movw pairs (ARM only)
   3030 
   3031 .. option:: -mno-neg-immediates
   3032 
   3033 Disallow converting instructions with negative immediates to their negation or inversion.
   3034 
   3035 .. option:: -mnocrc
   3036 
   3037 Disallow use of CRC instructions (ARM only)
   3038 
   3039 .. option:: -mrestrict-it, -mno-restrict-it
   3040 
   3041 Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
   3042 
   3043 .. option:: -mtp=<arg>
   3044 
   3045 Thread pointer access method (AArch32/AArch64 only)
   3046 
   3047 .. option:: -munaligned-access, -mno-unaligned-access
   3048 
   3049 Allow memory accesses to be unaligned (AArch32/AArch64 only)
   3050 
   3051 Hexagon
   3052 -------
   3053 .. option:: -mieee-rnd-near
   3054 
   3055 .. option:: -mmemops, -mno-memops
   3056 
   3057 Enable generation of memop instructions
   3058 
   3059 .. option:: -mnvj, -mno-nvj
   3060 
   3061 Enable generation of new-value jumps
   3062 
   3063 .. option:: -mnvs, -mno-nvs
   3064 
   3065 Enable generation of new-value stores
   3066 
   3067 .. option:: -mpackets, -mno-packets
   3068 
   3069 Enable generation of instruction packets
   3070 
   3071 Hexagon
   3072 -------
   3073 .. option:: -mhvx, -mno-hvx
   3074 
   3075 Enable Hexagon Vector eXtensions
   3076 
   3077 .. option:: -mhvx-length=<arg>
   3078 
   3079 Set Hexagon Vector Length
   3080 
   3081 .. program:: clang1
   3082 .. option:: -mhvx=<arg>
   3083 .. program:: clang
   3084 
   3085 Enable Hexagon Vector eXtensions
   3086 
   3087 MIPS
   3088 ----
   3089 .. option:: -mabicalls, -mno-abicalls
   3090 
   3091 Enable SVR4-style position-independent code (Mips only)
   3092 
   3093 .. option:: -mabs=<arg>
   3094 
   3095 .. option:: -mcheck-zero-division, -mno-check-zero-division
   3096 
   3097 .. option:: -mcompact-branches=<arg>
   3098 
   3099 .. option:: -mdouble-float
   3100 
   3101 .. option:: -mdsp, -mno-dsp
   3102 
   3103 .. option:: -mdspr2, -mno-dspr2
   3104 
   3105 .. option:: -membedded-data, -mno-embedded-data
   3106 
   3107 Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
   3108 
   3109 .. option:: -mextern-sdata, -mno-extern-sdata
   3110 
   3111 Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
   3112 
   3113 .. option:: -mfp32
   3114 
   3115 Use 32-bit floating point registers (MIPS only)
   3116 
   3117 .. option:: -mfp64
   3118 
   3119 Use 64-bit floating point registers (MIPS only)
   3120 
   3121 .. option:: -mginv, -mno-ginv
   3122 
   3123 .. option:: -mgpopt, -mno-gpopt
   3124 
   3125 Use GP relative accesses for symbols known to be in a small data section (MIPS)
   3126 
   3127 .. option:: -mindirect-jump=<arg>
   3128 
   3129 Change indirect jump instructions to inhibit speculation
   3130 
   3131 .. option:: -mips16
   3132 
   3133 .. option:: -mldc1-sdc1, -mno-ldc1-sdc1
   3134 
   3135 .. option:: -mlocal-sdata, -mno-local-sdata
   3136 
   3137 Extend the -G behaviour to object local data (MIPS)
   3138 
   3139 .. option:: -mmadd4, -mno-madd4
   3140 
   3141 Enable the generation of 4-operand madd.s, madd.d and related instructions.
   3142 
   3143 .. option:: -mmicromips, -mno-micromips
   3144 
   3145 .. option:: -mmsa, -mno-msa
   3146 
   3147 Enable MSA ASE (MIPS only)
   3148 
   3149 .. option:: -mmt, -mno-mt
   3150 
   3151 Enable MT ASE (MIPS only)
   3152 
   3153 .. option:: -mnan=<arg>
   3154 
   3155 .. option:: -mno-mips16
   3156 
   3157 .. option:: -msingle-float
   3158 
   3159 .. option:: -mvirt, -mno-virt
   3160 
   3161 .. option:: -mxgot, -mno-xgot
   3162 
   3163 PowerPC
   3164 -------
   3165 .. option:: -maltivec, -mno-altivec
   3166 
   3167 .. option:: -mcmpb, -mno-cmpb
   3168 
   3169 .. option:: -mcrbits, -mno-crbits
   3170 
   3171 .. option:: -mcrypto, -mno-crypto
   3172 
   3173 .. option:: -mdirect-move, -mno-direct-move
   3174 
   3175 .. option:: -mefpu2
   3176 
   3177 .. option:: -mfloat128, -mno-float128
   3178 
   3179 .. option:: -mfprnd, -mno-fprnd
   3180 
   3181 .. option:: -mhtm, -mno-htm
   3182 
   3183 .. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
   3184 
   3185 .. option:: -misel, -mno-isel
   3186 
   3187 .. option:: -mlongcall, -mno-longcall
   3188 
   3189 .. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
   3190 
   3191 .. option:: -mmma, -mno-mma
   3192 
   3193 .. option:: -mpaired-vector-memops, -mno-paired-vector-memops
   3194 
   3195 .. option:: -mpcrel, -mno-pcrel
   3196 
   3197 .. option:: -mpopcntd, -mno-popcntd
   3198 
   3199 .. option:: -mpower10-vector, -mno-power10-vector
   3200 
   3201 .. option:: -mpower8-vector, -mno-power8-vector
   3202 
   3203 .. option:: -mpower9-vector, -mno-power9-vector
   3204 
   3205 .. option:: -msecure-plt
   3206 
   3207 .. option:: -mspe, -mno-spe
   3208 
   3209 .. option:: -mvsx, -mno-vsx
   3210 
   3211 WebAssembly
   3212 -----------
   3213 .. option:: -matomics, -mno-atomics
   3214 
   3215 .. option:: -mbulk-memory, -mno-bulk-memory
   3216 
   3217 .. option:: -mexception-handling, -mno-exception-handling
   3218 
   3219 .. option:: -mmultivalue, -mno-multivalue
   3220 
   3221 .. option:: -mmutable-globals, -mno-mutable-globals
   3222 
   3223 .. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
   3224 
   3225 .. option:: -mreference-types, -mno-reference-types
   3226 
   3227 .. option:: -msign-ext, -mno-sign-ext
   3228 
   3229 .. option:: -msimd128, -mno-simd128
   3230 
   3231 .. option:: -mtail-call, -mno-tail-call
   3232 
   3233 .. option:: -munimplemented-simd128, -mno-unimplemented-simd128
   3234 
   3235 WebAssembly Driver
   3236 ------------------
   3237 .. option:: -mexec-model=<arg>
   3238 
   3239 Execution model (WebAssembly only)
   3240 
   3241 X86
   3242 ---
   3243 .. option:: -m3dnow, -mno-3dnow
   3244 
   3245 .. option:: -m3dnowa, -mno-3dnowa
   3246 
   3247 .. option:: -madx, -mno-adx
   3248 
   3249 .. option:: -maes, -mno-aes
   3250 
   3251 .. option:: -mamx-bf16, -mno-amx-bf16
   3252 
   3253 .. option:: -mamx-int8, -mno-amx-int8
   3254 
   3255 .. option:: -mamx-tile, -mno-amx-tile
   3256 
   3257 .. option:: -mavx, -mno-avx
   3258 
   3259 .. option:: -mavx2, -mno-avx2
   3260 
   3261 .. option:: -mavx512bf16, -mno-avx512bf16
   3262 
   3263 .. option:: -mavx512bitalg, -mno-avx512bitalg
   3264 
   3265 .. option:: -mavx512bw, -mno-avx512bw
   3266 
   3267 .. option:: -mavx512cd, -mno-avx512cd
   3268 
   3269 .. option:: -mavx512dq, -mno-avx512dq
   3270 
   3271 .. option:: -mavx512er, -mno-avx512er
   3272 
   3273 .. option:: -mavx512f, -mno-avx512f
   3274 
   3275 .. option:: -mavx512ifma, -mno-avx512ifma
   3276 
   3277 .. option:: -mavx512pf, -mno-avx512pf
   3278 
   3279 .. option:: -mavx512vbmi, -mno-avx512vbmi
   3280 
   3281 .. option:: -mavx512vbmi2, -mno-avx512vbmi2
   3282 
   3283 .. option:: -mavx512vl, -mno-avx512vl
   3284 
   3285 .. option:: -mavx512vnni, -mno-avx512vnni
   3286 
   3287 .. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
   3288 
   3289 .. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
   3290 
   3291 .. option:: -mavxvnni, -mno-avxvnni
   3292 
   3293 .. option:: -mbmi, -mno-bmi
   3294 
   3295 .. option:: -mbmi2, -mno-bmi2
   3296 
   3297 .. option:: -mcldemote, -mno-cldemote
   3298 
   3299 .. option:: -mclflushopt, -mno-clflushopt
   3300 
   3301 .. option:: -mclwb, -mno-clwb
   3302 
   3303 .. option:: -mclzero, -mno-clzero
   3304 
   3305 .. option:: -mcx16, -mno-cx16
   3306 
   3307 .. option:: -menqcmd, -mno-enqcmd
   3308 
   3309 .. option:: -mf16c, -mno-f16c
   3310 
   3311 .. option:: -mfma, -mno-fma
   3312 
   3313 .. option:: -mfma4, -mno-fma4
   3314 
   3315 .. option:: -mfsgsbase, -mno-fsgsbase
   3316 
   3317 .. option:: -mfxsr, -mno-fxsr
   3318 
   3319 .. option:: -mgfni, -mno-gfni
   3320 
   3321 .. option:: -mhreset, -mno-hreset
   3322 
   3323 .. option:: -minvpcid, -mno-invpcid
   3324 
   3325 .. option:: -mkl, -mno-kl
   3326 
   3327 .. option:: -mlwp, -mno-lwp
   3328 
   3329 .. option:: -mlzcnt, -mno-lzcnt
   3330 
   3331 .. option:: -mmmx, -mno-mmx
   3332 
   3333 .. option:: -mmovbe, -mno-movbe
   3334 
   3335 .. option:: -mmovdir64b, -mno-movdir64b
   3336 
   3337 .. option:: -mmovdiri, -mno-movdiri
   3338 
   3339 .. option:: -mmwaitx, -mno-mwaitx
   3340 
   3341 .. option:: -mpclmul, -mno-pclmul
   3342 
   3343 .. option:: -mpconfig, -mno-pconfig
   3344 
   3345 .. option:: -mpku, -mno-pku
   3346 
   3347 .. option:: -mpopcnt, -mno-popcnt
   3348 
   3349 .. option:: -mprefetchwt1, -mno-prefetchwt1
   3350 
   3351 .. option:: -mprfchw, -mno-prfchw
   3352 
   3353 .. option:: -mptwrite, -mno-ptwrite
   3354 
   3355 .. option:: -mrdpid, -mno-rdpid
   3356 
   3357 .. option:: -mrdrnd, -mno-rdrnd
   3358 
   3359 .. option:: -mrdseed, -mno-rdseed
   3360 
   3361 .. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
   3362 
   3363 .. option:: -mrtm, -mno-rtm
   3364 
   3365 .. option:: -msahf, -mno-sahf
   3366 
   3367 .. option:: -mserialize, -mno-serialize
   3368 
   3369 .. option:: -msgx, -mno-sgx
   3370 
   3371 .. option:: -msha, -mno-sha
   3372 
   3373 .. option:: -mshstk, -mno-shstk
   3374 
   3375 .. option:: -msse, -mno-sse
   3376 
   3377 .. option:: -msse2, -mno-sse2
   3378 
   3379 .. option:: -msse3, -mno-sse3
   3380 
   3381 .. option:: -msse4.1, -mno-sse4.1
   3382 
   3383 .. program:: clang1
   3384 .. option:: -msse4.2, -mno-sse4.2, -msse4
   3385 .. program:: clang
   3386 
   3387 .. option:: -msse4a, -mno-sse4a
   3388 
   3389 .. option:: -mssse3, -mno-ssse3
   3390 
   3391 .. option:: -mtbm, -mno-tbm
   3392 
   3393 .. option:: -mtsxldtrk, -mno-tsxldtrk
   3394 
   3395 .. option:: -muintr, -mno-uintr
   3396 
   3397 .. option:: -mvaes, -mno-vaes
   3398 
   3399 .. option:: -mvpclmulqdq, -mno-vpclmulqdq
   3400 
   3401 .. option:: -mvzeroupper, -mno-vzeroupper
   3402 
   3403 .. option:: -mwaitpkg, -mno-waitpkg
   3404 
   3405 .. option:: -mwbnoinvd, -mno-wbnoinvd
   3406 
   3407 .. option:: -mwidekl, -mno-widekl
   3408 
   3409 .. option:: -mx87, -m80387, -mno-x87
   3410 
   3411 .. option:: -mxop, -mno-xop
   3412 
   3413 .. option:: -mxsave, -mno-xsave
   3414 
   3415 .. option:: -mxsavec, -mno-xsavec
   3416 
   3417 .. option:: -mxsaveopt, -mno-xsaveopt
   3418 
   3419 .. option:: -mxsaves, -mno-xsaves
   3420 
   3421 RISCV
   3422 -----
   3423 .. option:: -msave-restore, -mno-save-restore
   3424 
   3425 Enable using library calls for save and restore
   3426 
   3427 Long double flags
   3428 -----------------
   3429 Selects the long double implementation
   3430 
   3431 .. option:: -mlong-double-128
   3432 
   3433 Force long double to be 128 bits
   3434 
   3435 .. option:: -mlong-double-64
   3436 
   3437 Force long double to be 64 bits
   3438 
   3439 .. option:: -mlong-double-80
   3440 
   3441 Force long double to be 80 bits, padded to 128 bits for storage
   3442 
   3443 Optimization level
   3444 ~~~~~~~~~~~~~~~~~~
   3445 
   3446 Flags controlling how much optimization should be performed.
   3447 
   3448 .. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
   3449 
   3450 .. option:: -Ofast<arg>
   3451 
   3452 Debug information generation
   3453 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   3454 
   3455 Flags controlling how much and what kind of debug information should be
   3456 generated.
   3457 
   3458 Kind and level of debug information
   3459 -----------------------------------
   3460 .. option:: -g, --debug, --debug=<arg>
   3461 
   3462 Generate source-level debug information
   3463 
   3464 .. option:: -gdwarf
   3465 
   3466 Generate source-level debug information with the default dwarf version
   3467 
   3468 .. option:: -gdwarf-2
   3469 
   3470 Generate source-level debug information with dwarf version 2
   3471 
   3472 .. option:: -gdwarf-3
   3473 
   3474 Generate source-level debug information with dwarf version 3
   3475 
   3476 .. option:: -gdwarf-4
   3477 
   3478 Generate source-level debug information with dwarf version 4
   3479 
   3480 .. option:: -gdwarf-5
   3481 
   3482 Generate source-level debug information with dwarf version 5
   3483 
   3484 .. option:: -gfull
   3485 
   3486 .. option:: -gused
   3487 
   3488 Debug level
   3489 ___________
   3490 .. option:: -g0
   3491 
   3492 .. option:: -g2
   3493 
   3494 .. option:: -g3
   3495 
   3496 .. option:: -ggdb0
   3497 
   3498 .. option:: -ggdb1
   3499 
   3500 .. option:: -ggdb2
   3501 
   3502 .. option:: -ggdb3
   3503 
   3504 .. option:: -gline-directives-only
   3505 
   3506 Emit debug line info directives only
   3507 
   3508 .. option:: -gline-tables-only, -g1, -gmlt
   3509 
   3510 Emit debug line number tables only
   3511 
   3512 .. option:: -gmodules
   3513 
   3514 Generate debug info with external references to clang modules or precompiled headers
   3515 
   3516 Debugger to tune debug information for
   3517 ______________________________________
   3518 .. option:: -ggdb
   3519 
   3520 .. option:: -glldb
   3521 
   3522 .. option:: -gsce
   3523 
   3524 Debug information flags
   3525 -----------------------
   3526 .. option:: -gcolumn-info, -gno-column-info
   3527 
   3528 .. option:: -gdwarf-aranges
   3529 
   3530 .. option:: -gembed-source, -gno-embed-source
   3531 
   3532 Embed source text in DWARF debug sections
   3533 
   3534 .. option:: -ggnu-pubnames, -gno-gnu-pubnames
   3535 
   3536 .. option:: -gpubnames, -gno-pubnames
   3537 
   3538 .. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
   3539 
   3540 .. option:: -gsplit-dwarf
   3541 
   3542 .. program:: clang1
   3543 .. option:: -gsplit-dwarf=<arg>
   3544 .. program:: clang
   3545 
   3546 Set DWARF fission mode to either 'split' or 'single'
   3547 
   3548 .. option:: -gstrict-dwarf, -gno-strict-dwarf
   3549 
   3550 Restrict DWARF features to those defined in the specified version, avoiding features from later versions.
   3551 
   3552 .. option:: -gz=<arg>, -gz (equivalent to -gz=zlib)
   3553 
   3554 DWARF debug sections compression type
   3555 
   3556 Static analyzer flags
   3557 =====================
   3558 
   3559 Flags controlling the behavior of the Clang Static Analyzer.
   3560 
   3561 .. option:: -Xanalyzer <arg>
   3562 
   3563 Pass <arg> to the static analyzer
   3564 
   3565 Fortran compilation flags
   3566 =========================
   3567 
   3568 Flags that will be passed onto the ``gfortran`` compiler when Clang is given
   3569 a Fortran input.
   3570 
   3571 .. option:: -A<arg>, --assert <arg>, --assert=<arg>
   3572 
   3573 .. option:: -A-<arg>
   3574 
   3575 .. option:: -J<arg>
   3576 
   3577 .. option:: -cpp
   3578 
   3579 .. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
   3580 
   3581 .. option:: -falign-commons, -fno-align-commons
   3582 
   3583 .. option:: -fall-intrinsics, -fno-all-intrinsics
   3584 
   3585 .. option:: -fautomatic, -fno-automatic
   3586 
   3587 .. option:: -fbackslash, -fno-backslash
   3588 
   3589 .. option:: -fbacktrace, -fno-backtrace
   3590 
   3591 .. option:: -fblas-matmul-limit=<arg>
   3592 
   3593 .. option:: -fbounds-check, -fno-bounds-check
   3594 
   3595 .. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
   3596 
   3597 .. option:: -fcheck=<arg>
   3598 
   3599 .. option:: -fcoarray=<arg>
   3600 
   3601 .. option:: -fconvert=<arg>
   3602 
   3603 .. option:: -fcray-pointer, -fno-cray-pointer
   3604 
   3605 .. option:: -fd-lines-as-code, -fno-d-lines-as-code
   3606 
   3607 .. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
   3608 
   3609 .. option:: -fdefault-double-8, -fno-default-double-8
   3610 
   3611 .. option:: -fdefault-integer-8, -fno-default-integer-8
   3612 
   3613 .. option:: -fdefault-real-8, -fno-default-real-8
   3614 
   3615 .. option:: -fdollar-ok, -fno-dollar-ok
   3616 
   3617 .. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
   3618 
   3619 .. option:: -fdump-fortran-original, -fno-dump-fortran-original
   3620 
   3621 .. option:: -fdump-parse-tree, -fno-dump-parse-tree
   3622 
   3623 .. option:: -fexternal-blas, -fno-external-blas
   3624 
   3625 .. option:: -ff2c, -fno-f2c
   3626 
   3627 .. option:: -ffixed-form, -fno-fixed-form
   3628 
   3629 .. option:: -ffixed-line-length-<arg>
   3630 
   3631 .. option:: -ffpe-trap=<arg>
   3632 
   3633 .. option:: -ffree-form, -fno-free-form
   3634 
   3635 .. option:: -ffree-line-length-<arg>
   3636 
   3637 .. option:: -ffrontend-optimize, -fno-frontend-optimize
   3638 
   3639 .. option:: -fimplicit-none, -fno-implicit-none
   3640 
   3641 .. option:: -finit-character=<arg>
   3642 
   3643 .. option:: -finit-integer=<arg>
   3644 
   3645 .. option:: -finit-local-zero, -fno-init-local-zero
   3646 
   3647 .. option:: -finit-logical=<arg>
   3648 
   3649 .. option:: -finit-real=<arg>
   3650 
   3651 .. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
   3652 
   3653 .. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
   3654 
   3655 .. option:: -fmax-array-constructor=<arg>
   3656 
   3657 .. option:: -fmax-errors=<arg>
   3658 
   3659 .. option:: -fmax-identifier-length, -fno-max-identifier-length
   3660 
   3661 .. option:: -fmax-stack-var-size=<arg>
   3662 
   3663 .. option:: -fmax-subrecord-length=<arg>
   3664 
   3665 .. option:: -fmodule-private, -fno-module-private
   3666 
   3667 .. option:: -fpack-derived, -fno-pack-derived
   3668 
   3669 .. option:: -fprotect-parens, -fno-protect-parens
   3670 
   3671 .. option:: -frange-check, -fno-range-check
   3672 
   3673 .. option:: -freal-4-real-10, -fno-real-4-real-10
   3674 
   3675 .. option:: -freal-4-real-16, -fno-real-4-real-16
   3676 
   3677 .. option:: -freal-4-real-8, -fno-real-4-real-8
   3678 
   3679 .. option:: -freal-8-real-10, -fno-real-8-real-10
   3680 
   3681 .. option:: -freal-8-real-16, -fno-real-8-real-16
   3682 
   3683 .. option:: -freal-8-real-4, -fno-real-8-real-4
   3684 
   3685 .. option:: -frealloc-lhs, -fno-realloc-lhs
   3686 
   3687 .. option:: -frecord-marker=<arg>
   3688 
   3689 .. option:: -frecursive, -fno-recursive
   3690 
   3691 .. option:: -frepack-arrays, -fno-repack-arrays
   3692 
   3693 .. option:: -fsecond-underscore, -fno-second-underscore
   3694 
   3695 .. option:: -fsign-zero, -fno-sign-zero
   3696 
   3697 .. option:: -fstack-arrays, -fno-stack-arrays
   3698 
   3699 .. option:: -funderscoring, -fno-underscoring
   3700 
   3701 .. option:: -fwhole-file, -fno-whole-file
   3702 
   3703 .. option:: -imultilib <arg>
   3704 
   3705 .. option:: -nocpp
   3706 
   3707 .. option:: -static-libgfortran
   3708 
   3709 Linker flags
   3710 ============
   3711 Flags that are passed on to the linker
   3712 
   3713 .. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
   3714 
   3715 Add directory to library search path
   3716 
   3717 .. option:: -Mach
   3718 
   3719 .. option:: -T<script>
   3720 
   3721 Specify <script> as linker script
   3722 
   3723 .. option:: -Tbss<addr>
   3724 
   3725 Set starting address of BSS to <addr>
   3726 
   3727 .. option:: -Tdata<addr>
   3728 
   3729 Set starting address of DATA to <addr>
   3730 
   3731 .. option:: -Ttext<addr>
   3732 
   3733 Set starting address of TEXT to <addr>
   3734 
   3735 .. option:: -Wl,<arg>,<arg2>...
   3736 
   3737 Pass the comma separated arguments in <arg> to the linker
   3738 
   3739 .. option:: -X
   3740 
   3741 .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
   3742 
   3743 Pass <arg> to the linker
   3744 
   3745 .. program:: clang1
   3746 .. option:: -Z
   3747 .. program:: clang
   3748 
   3749 .. option:: -coverage, --coverage
   3750 
   3751 .. option:: -e<arg>, --entry
   3752 
   3753 .. option:: -filelist <arg>
   3754 
   3755 .. option:: --hip-device-lib=<arg>
   3756 
   3757 HIP device library
   3758 
   3759 .. option:: -l<arg>
   3760 
   3761 .. option:: --ld-path=<arg>
   3762 
   3763 .. option:: -nostartfiles
   3764 
   3765 .. program:: clang1
   3766 .. option:: -nostdlib, --no-standard-libraries
   3767 .. program:: clang
   3768 
   3769 .. option:: -pie
   3770 
   3771 .. option:: -r
   3772 
   3773 .. option:: -rdynamic
   3774 
   3775 .. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
   3776 
   3777 ROCm device library path. Alternative to rocm-path.
   3778 
   3779 .. option:: -rpath <arg>
   3780 
   3781 .. option:: -s
   3782 
   3783 .. option:: -shared, --shared
   3784 
   3785 .. option:: -specs=<arg>, --specs=<arg>
   3786 
   3787 .. option:: -static, --static
   3788 
   3789 .. option:: -static-pie
   3790 
   3791 .. option:: -t
   3792 
   3793 .. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
   3794 
   3795 .. option:: -undef
   3796 
   3797 undef all system defines
   3798 
   3799 .. option:: -undefined<arg>, --no-undefined
   3800 
   3801 .. option:: -z <arg>
   3802 
   3803 Pass -z <arg> to the linker
   3804