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