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