1; Options for the language- and target-independent parts of the compiler. 2 3; Copyright (C) 2003-2022 Free Software Foundation, Inc. 4; 5; This file is part of GCC. 6; 7; GCC is free software; you can redistribute it and/or modify it under 8; the terms of the GNU General Public License as published by the Free 9; Software Foundation; either version 3, or (at your option) any later 10; version. 11; 12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13; WARRANTY; without even the implied warranty of MERCHANTABILITY or 14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15; for more details. 16; 17; You should have received a copy of the GNU General Public License 18; along with GCC; see the file COPYING3. If not see 19; <http://www.gnu.org/licenses/>. 20 21; See the GCC internals manual (options.texi) for a description of this file's format. 22 23; Please try to keep this file in ASCII collating order. 24 25Variable 26int target_flags 27 28Variable 29int optimize 30 31Variable 32int optimize_size 33 34Variable 35int optimize_debug 36 37; Not used directly to control optimizations, only to save -Ofast 38; setting for "optimize" attributes. 39Variable 40int optimize_fast 41 42; True if this is the lto front end. This is used to disable gimple 43; generation and lowering passes that are normally run on the output 44; of a front end. These passes must be bypassed for lto since they 45; have already been done before the gimple was written. 46Variable 47bool in_lto_p = false 48 49; This variable is set to non-0 only by LTO front-end. 1 indicates that 50; the output produced will be used for incremental linking (thus weak symbols 51; can still be bound) and 2 indicates that the IL is going to be linked and 52; and output to LTO object file. 53Variable 54enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE 55 56; 0 means straightforward implementation of complex divide acceptable. 57; 1 means wide ranges of inputs must work for complex divide. 58; 2 means C99-like requirements for complex multiply and divide. 59Variable 60int flag_complex_method = 1 61 62Variable 63int flag_default_complex_method = 1 64 65; Language specific warning pass for unused results. 66Variable 67bool flag_warn_unused_result = false 68 69; Nonzero if we should write GIMPLE bytecode for link-time optimization. 70Variable 71int flag_generate_lto 72 73; Nonzero if we should write GIMPLE bytecode for offload compilation. 74Variable 75int flag_generate_offload = 0 76 77; Nonzero means we should be saving declaration info into a .X file. 78Variable 79int flag_gen_aux_info = 0 80 81; Nonzero if we are compiling code for a shared library, zero for 82; executable. 83Variable 84int flag_shlib 85 86; These three are really VEC(char_p,heap) *. 87 88Variable 89void *flag_instrument_functions_exclude_functions 90 91Variable 92void *flag_instrument_functions_exclude_files 93 94Variable 95void *flag_ignored_attributes 96 97; Generic structs (e.g. templates not explicitly specialized) 98; may not have a compilation unit associated with them, and so 99; may need to be treated differently from ordinary structs. 100; 101; Structs only handled by reference (indirectly), will also usually 102; not need as much debugging information. 103 104Variable 105enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY } 106 107Variable 108enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY } 109 110; True if we should exit after parsing options. 111Variable 112bool exit_after_options 113 114; Type(s) of debugging information we are producing (if any). See 115; flag-types.h for the definitions of the different possible types of 116; debugging information. 117Variable 118uint32_t write_symbols = NO_DEBUG 119 120; Level of debugging information we are producing. See flag-types.h 121; for the definitions of the different possible levels. 122Variable 123enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE 124 125; Nonzero means use GNU-only extensions in the generated symbolic 126; debugging information. Currently, this only has an effect when 127; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG. 128Variable 129bool use_gnu_debug_info_extensions 130 131; Level of CTF debugging information we are producing. See flag-types.h 132; for the definitions of the different possible levels. 133Variable 134enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE 135 136; Original value of maximum field alignment in bytes, specified via 137; -fpack-struct=<value>. 138Variable 139unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT 140 141; Type of stack check. 142Variable 143enum stack_check_type flag_stack_check = NO_STACK_CHECK 144 145; True if stack usage information needs to be computed. 146Variable 147bool flag_stack_usage_info = false 148 149; -dA causes debug commentary information to be produced in 150; the generated assembly code (to make it more readable). This option 151; is generally only of use to those who actually need to read the 152; generated assembly code (perhaps while debugging the compiler itself). 153; Currently, this switch is only used by dwarf2out.cc; however, it is intended 154; to be a catchall for printing debug information in the assembler file. 155Variable 156int flag_debug_asm 157 158; Balance between GNAT encodings and standard DWARF to emit. 159Variable 160enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT 161 162; -dP causes the rtl to be emitted as a comment in assembly. 163Variable 164int flag_dump_rtl_in_asm 165 166; Whether -da was passed (used only in handle_common_deferred_options). 167Variable 168bool flag_dump_all_passed 169 170; Other flags saying which kinds of debugging dump have been requested. 171 172Variable 173int rtl_dump_and_exit 174 175Variable 176int flag_print_asm_name 177 178; Name of top-level original source file (what was input to cpp). 179; This comes from the #-command at the beginning of the actual input. 180; If there isn't any there, then this is the cc1 input file name. 181Variable 182const char *main_input_filename 183 184; Pointer to base name in main_input_filename, with directories and a 185; single final extension removed, and the length of this base 186; name. 187 188Variable 189const char *main_input_basename 190 191Variable 192int main_input_baselength 193 194; The base name used for auxiliary output files. 195; dump_base_name minus dump_base_ext. 196 197Variable 198const char *aux_base_name 199 200; Which options have been printed by --help. 201Variable 202char *help_printed 203 204; Which enums have been printed by --help. 0 = not printed, no 205; relevant options seen, 1 = relevant option seen, not yet printed, 2 206; = printed. 207Variable 208char *help_enum_printed 209 210; The number of columns for --help output. 211Variable 212unsigned int help_columns 213 214; Whether this options structure has been through finish_options 215Variable 216bool flag_opts_finished 217 218; What the sanitizer should instrument 219Variable 220unsigned int flag_sanitize 221 222; What sanitizers should recover from errors 223Variable 224unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN) 225 226; Flag whether a prefix has been added to dump_base_name 227Variable 228bool dump_base_name_prefixed = false 229 230; What subset of registers should be zeroed on function return 231Variable 232unsigned int flag_zero_call_used_regs 233 234### 235Driver 236 237-assemble 238Driver Alias(S) 239 240-compile 241Driver Alias(c) 242 243-completion= 244Common Driver Joined Undocumented 245Provide bash completion for options starting with provided string. 246 247-coverage 248Driver Alias(coverage) 249 250-debug 251Common Alias(g) 252 253-dump 254Common Separate Alias(d) 255 256-dump= 257Common Joined Alias(d) 258 259-dumpbase 260Driver Common Separate Alias(dumpbase) 261 262-dumpbase-ext 263Driver Common Separate Alias(dumpbase-ext) 264 265-dumpdir 266Driver Common Separate Alias(dumpdir) 267 268-entry 269Driver Separate Alias(e) 270 271-entry= 272Driver Joined Alias(e) 273 274-extra-warnings 275Common Warning Alias(Wextra) 276 277-for-assembler 278Driver Separate Alias(Xassembler) 279 280-for-assembler= 281Driver JoinedOrMissing Alias(Xassembler) 282 283-for-linker 284Driver Separate Alias(Xlinker) 285 286-for-linker= 287Driver JoinedOrMissing Alias(Xlinker) 288 289-force-link 290Driver Separate Alias(u) 291 292-force-link= 293Driver Joined Alias(u) 294 295-help 296Common Driver Var(help_flag) 297Display this information. 298 299-help= 300Common Driver Joined 301--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params. 302 303-language 304Driver Separate Alias(x) 305 306-language= 307Driver Joined Alias(x) 308 309-library-directory 310Driver Separate Alias(L) 311 312-library-directory= 313Driver Joined Alias(L) 314 315-no-canonical-prefixes 316Driver Alias(no-canonical-prefixes) 317 318-no-standard-libraries 319Driver Alias(nostdlib) 320 321-no-sysroot-suffix 322Driver Var(no_sysroot_suffix) 323 324-no-warnings 325Common Alias(w) 326 327-optimize 328Common Alias(O) 329 330-output 331Common Driver Separate Alias(o) MissingArgError(missing filename after %qs) 332 333-output= 334Common Driver Joined Alias(o) MissingArgError(missing filename after %qs) 335 336-pass-exit-codes 337Driver Alias(pass-exit-codes) 338 339-pedantic 340Common Alias(Wpedantic) 341 342-pedantic-errors 343Common Alias(pedantic-errors) 344 345-pie 346Driver Alias(pie) 347 348-static-pie 349Driver Alias(static-pie) 350 351-pipe 352Driver Alias(pipe) 353 354-prefix 355Driver Separate Alias(B) 356 357-prefix= 358Driver JoinedOrMissing Alias(B) 359 360-preprocess 361Driver Alias(E) 362 363-print-file-name 364Driver Separate Alias(print-file-name=) 365 366-print-file-name= 367Driver JoinedOrMissing Alias(print-file-name=) 368 369-print-libgcc-file-name 370Driver Alias(print-libgcc-file-name) 371 372-print-multi-directory 373Driver Alias(print-multi-directory) 374 375-print-multi-lib 376Driver Alias(print-multi-lib) 377 378-print-multi-os-directory 379Driver Alias(print-multi-os-directory) 380 381-print-multiarch 382Driver Alias(print-multiarch) 383 384-print-prog-name 385Driver Separate Alias(print-prog-name=) 386 387-print-prog-name= 388Driver JoinedOrMissing Alias(print-prog-name=) 389 390-print-search-dirs 391Driver Alias(print-search-dirs) 392 393-print-sysroot 394Driver Alias(print-sysroot) 395 396-print-sysroot-headers-suffix 397Driver Alias(print-sysroot-headers-suffix) 398 399-profile 400Common Alias(p) 401 402-save-temps 403Driver Alias(save-temps) 404 405-shared 406Driver Alias(shared) 407 408-specs 409Driver Separate Alias(specs=) 410 411-specs= 412Driver Joined Alias(specs=) 413 414-static 415Driver Alias(static) 416 417-symbolic 418Driver Alias(symbolic) 419 420-target-help 421Common Driver 422Display target specific command line options (including assembler and linker options). 423 424-time 425Driver Alias(time) 426 427-verbose 428Driver Alias(v) 429 430;; The driver used to convert options such as --help into forms such 431;; as -fhelp; the following four entries are for compatibility with 432;; any direct uses of those (undocumented) -f forms 433fhelp 434Common Driver Alias(-help) 435 436fhelp= 437Common Driver Joined Alias(-help=) 438 439ftarget-help 440Common Driver Alias(-target-help) 441 442fversion 443Common Driver Alias(-version) 444 445-sysroot 446Driver Separate Alias(-sysroot=) 447 448-sysroot= 449Driver JoinedOrMissing 450 451-version 452Common Driver 453 454B 455Driver Joined Separate 456 457E 458Driver 459 460L 461Driver Joined Separate 462 463N 464Driver 465 466O 467Common JoinedOrMissing Optimization 468-O<number> Set optimization level to <number>. 469 470Os 471Common Optimization 472Optimize for space rather than speed. 473 474Ofast 475Common Optimization 476Optimize for speed disregarding exact standards compliance. 477 478Og 479Common Optimization 480Optimize for debugging experience rather than speed or size. 481 482Oz 483Common Optimization 484Optimize for space aggressively rather than speed. 485 486Q 487Driver 488 489Qn 490Driver Negative(Qy) 491 492Qy 493Driver Negative(Qn) 494 495R 496Driver Joined Separate 497 498S 499Driver 500 501T 502Driver Joined Separate 503 504Tbss 505Driver Separate 506 507Tbss= 508Driver Joined 509 510Tdata 511Driver Separate 512 513Tdata= 514Driver Joined 515 516Ttext 517Driver Separate 518 519Ttext= 520Driver Joined 521 522W 523Common RejectNegative Warning Alias(Wextra) 524This switch is deprecated; use -Wextra instead. 525 526Wa, 527Driver JoinedOrMissing RejectNegative 528 529Wl, 530Driver JoinedOrMissing RejectNegative 531 532Wp, 533Driver JoinedOrMissing RejectNegative 534 535Waggregate-return 536Common Var(warn_aggregate_return) Warning 537Warn about returning structures, unions or arrays. 538 539Waggressive-loop-optimizations 540Common Var(warn_aggressive_loop_optimizations) Init(1) Warning 541Warn if a loop with constant number of iterations triggers undefined behavior. 542 543Warray-bounds 544Common Var(warn_array_bounds) Warning 545Warn if an array is accessed out of bounds. 546 547Warray-bounds= 548Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2) 549Warn if an array is accessed out of bounds. 550 551Wuse-after-free 552Common Var(warn_use_after_free) Warning 553Warn for uses of pointers to deallocated storage. 554 555Wuse-after-free= 556Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3) 557Warn for uses of pointers to deallocated storage. 558 559Wattributes 560Common Var(warn_attributes) Init(1) Warning 561Warn about inappropriate attribute usage. 562 563Wattributes= 564Common Joined 565Do not warn about specified attributes. 566 567Wattribute-alias 568Common Alias(Wattribute_alias=, 1, 0) Warning 569Warn about type safety and similar errors and mismatches in declarations with alias attributes. 570 571Wattribute-alias= 572Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2) 573Warn about type safety and similar errors and mismatches in declarations with alias attributes. 574 575Wcannot-profile 576Common Var(warn_cannot_profile) Init(1) Warning 577Warn when profiling instrumentation was requested, but could not be applied to 578a certain function. 579 580Wcast-align 581Common Var(warn_cast_align) Warning 582Warn about pointer casts which increase alignment. 583 584Wcast-align=strict 585Common Var(warn_cast_align,2) Warning 586Warn about pointer casts which increase alignment. 587 588Wcpp 589Common Var(warn_cpp) Init(1) Warning 590Warn when a #warning directive is encountered. 591 592Wattribute-warning 593Common Var(warn_attribute_warning) Init(1) Warning 594Warn about uses of __attribute__((warning)) declarations. 595 596Wdeprecated 597Common Var(warn_deprecated) Init(1) Warning 598Warn if a deprecated compiler feature, class, method, or field is used. 599 600Wdeprecated-declarations 601Common Var(warn_deprecated_decl) Init(1) Warning 602Warn about uses of __attribute__((deprecated)) declarations. 603 604Wdisabled-optimization 605Common Var(warn_disabled_optimization) Warning 606Warn when an optimization pass is disabled. 607 608Werror 609Common Var(warnings_are_errors) 610Treat all warnings as errors. 611 612Werror= 613Common Joined 614Treat specified warning as error. 615 616Wextra 617Common Var(extra_warnings) Warning 618Print extra (possibly unwanted) warnings. 619 620Wfatal-errors 621Common Var(flag_fatal_errors) 622Exit on the first error occurred. 623 624Wframe-larger-than= 625Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX) 626-Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>. 627 628Wno-frame-larger-than 629Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning 630Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger. 631 632Wfree-nonheap-object 633Common Var(warn_free_nonheap_object) Init(1) Warning 634Warn when attempting to free a non-heap object. 635 636Whsa 637Common Ignore Warning 638Does nothing. Preserved for backward compatibility. 639 640Wimplicit-fallthrough 641Common Alias(Wimplicit-fallthrough=,3,0) Warning 642 643Wimplicit-fallthrough= 644Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5) 645Warn when a switch case falls through. 646 647Winfinite-recursion 648Var(warn_infinite_recursion) Warning 649Warn for infinitely recursive calls. 650 651Winline 652Common Var(warn_inline) Warning Optimization 653Warn when an inlined function cannot be inlined. 654 655Winvalid-memory-model 656Common Var(warn_invalid_memory_model) Init(1) Warning 657Warn when an atomic memory model parameter is known to be outside the valid range. 658 659Wlarger-than- 660Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=) 661 662Wlarger-than= 663Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX) 664-Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>. 665 666Wno-larger-than 667Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning 668Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger. 669 670Wnonnull-compare 671Var(warn_nonnull_compare) Warning 672Warn if comparing pointer parameter with nonnull attribute with NULL. 673 674Wnull-dereference 675Common Var(warn_null_dereference) Warning 676Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior. 677 678Wunsafe-loop-optimizations 679Common Ignore Warning 680Does nothing. Preserved for backward compatibility. 681 682Wmissing-noreturn 683Common Warning Alias(Wsuggest-attribute=noreturn) 684 685Wodr 686Common Var(warn_odr_violations) Init(1) Warning 687Warn about some C++ One Definition Rule violations during link time optimization. 688 689Woverflow 690Common Var(warn_overflow) Init(1) Warning 691Warn about overflow in arithmetic expressions. 692 693Wlto-type-mismatch 694Common Var(warn_lto_type_mismatch) Init(1) Warning 695During link time optimization warn about mismatched types of global declarations. 696 697Wpacked 698Common Var(warn_packed) Warning 699Warn when the packed attribute has no effect on struct layout. 700 701Wpadded 702Common Var(warn_padded) Warning 703Warn when padding is required to align structure members. 704 705Wpedantic 706Common Var(pedantic) Init(0) Warning 707Issue warnings needed for strict compliance to the standard. 708 709Wreturn-local-addr 710Common Var(warn_return_local_addr) Init(1) Warning 711Warn about returning a pointer/reference to a local or temporary variable. 712 713Wshadow 714Common Var(warn_shadow) Warning 715Warn when one variable shadows another. Same as -Wshadow=global. 716 717Wshadow=global 718Common Warning Alias(Wshadow) 719Warn when one variable shadows another (globally). 720 721Wshadow=local 722Common Var(warn_shadow_local) Warning EnabledBy(Wshadow) 723Warn when one local variable shadows another local variable or parameter. 724 725Wshadow-local 726Common Warning Undocumented Alias(Wshadow=local) 727 728Wshadow=compatible-local 729Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local) 730Warn when one local variable shadows another local variable or parameter of compatible type. 731 732Wshadow-compatible-local 733Common Warning Undocumented Alias(Wshadow=compatible-local) 734 735Wstack-protector 736Common Var(warn_stack_protect) Warning 737Warn when not issuing stack smashing protection for some reason. 738 739Wstack-usage= 740Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX) 741-Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>. 742 743Wno-stack-usage 744Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning 745Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger. 746 747Wstrict-aliasing 748Common Warning 749Warn about code which might break strict aliasing rules. 750 751Wstrict-aliasing= 752Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning 753Warn about code which might break strict aliasing rules. 754 755Wstrict-overflow 756Common Warning 757Warn about optimizations that assume that signed overflow is undefined. 758 759Wstrict-overflow= 760Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning 761Warn about optimizations that assume that signed overflow is undefined. 762 763Wsuggest-attribute=cold 764Common Var(warn_suggest_attribute_cold) Warning 765Warn about functions which might be candidates for __attribute__((cold)). 766 767Wsuggest-attribute=const 768Common Var(warn_suggest_attribute_const) Warning 769Warn about functions which might be candidates for __attribute__((const)). 770 771Wsuggest-attribute=pure 772Common Var(warn_suggest_attribute_pure) Warning 773Warn about functions which might be candidates for __attribute__((pure)). 774 775Wsuggest-attribute=noreturn 776Common Var(warn_suggest_attribute_noreturn) Warning 777Warn about functions which might be candidates for __attribute__((noreturn)). 778 779Wsuggest-attribute=malloc 780Common Var(warn_suggest_attribute_malloc) Warning 781Warn about functions which might be candidates for __attribute__((malloc)). 782 783Wsuggest-final-types 784Common Var(warn_suggest_final_types) Warning 785Warn about C++ polymorphic types where adding final keyword would improve code quality. 786 787Wsuggest-final-methods 788Common Var(warn_suggest_final_methods) Warning 789Warn about C++ virtual methods where adding final keyword would improve code quality. 790 791Wswitch-unreachable 792Common Var(warn_switch_unreachable) Warning Init(1) 793Warn about statements between switch's controlling expression and the first 794case. 795 796Wsystem-headers 797Common Var(warn_system_headers) Warning 798Do not suppress warnings from system headers. 799 800Wtrampolines 801Common Var(warn_trampolines) Warning 802Warn whenever a trampoline is generated. 803 804Wtrivial-auto-var-init 805Common Var(warn_trivial_auto_var_init) Warning Init(0) 806Warn about cases where -ftrivial-auto-var-init cannot initialize an auto variable. 807 808Wtype-limits 809Common Var(warn_type_limits) Warning EnabledBy(Wextra) 810Warn if a comparison is always true or always false due to the limited range of the data type. 811 812Wuninitialized 813Common Var(warn_uninitialized) Warning EnabledBy(Wextra) 814Warn about uninitialized automatic variables. 815 816Wmaybe-uninitialized 817Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized) 818Warn about maybe uninitialized automatic variables. 819 820Wunreachable-code 821Common Ignore Warning 822Does nothing. Preserved for backward compatibility. 823 824Wunused 825Common Var(warn_unused) Init(0) Warning 826Enable all -Wunused- warnings. 827 828Wunused-but-set-parameter 829Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra) 830Warn when a function parameter is only set, otherwise unused. 831 832Wunused-but-set-variable 833Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused) 834Warn when a variable is only set, otherwise unused. 835 836Wunused-function 837Common Var(warn_unused_function) Warning EnabledBy(Wunused) 838Warn when a function is unused. 839 840Wunused-label 841Common Var(warn_unused_label) Warning EnabledBy(Wunused) 842Warn when a label is unused. 843 844Wunused-parameter 845Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra) 846Warn when a function parameter is unused. 847 848Wunused-value 849Common Var(warn_unused_value) Warning EnabledBy(Wunused) 850Warn when an expression value is unused. 851 852Wunused-variable 853Common Var(warn_unused_variable) Warning EnabledBy(Wunused) 854Warn when a variable is unused. 855 856Wcoverage-mismatch 857Common Var(warn_coverage_mismatch) Init(1) Warning 858Warn in case profiles in -fprofile-use do not match. 859 860Wcoverage-invalid-line-number 861Common Var(warn_coverage_invalid_linenum) Init(1) Warning 862Warn in case a function ends earlier than it begins due to an invalid linenum macros. 863 864Wmissing-profile 865Common Var(warn_missing_profile) Init(1) Warning 866Warn in case profiles in -fprofile-use do not exist. 867 868Wvector-operation-performance 869Common Var(warn_vector_operation_performance) Warning 870Warn when a vector operation is compiled outside the SIMD. 871 872Wtsan 873Common Var(warn_tsan) Init(1) Warning 874Warn about unsupported features in ThreadSanitizer. 875 876Xassembler 877Driver Separate 878 879Xlinker 880Driver Separate 881 882Xpreprocessor 883Driver Separate 884 885Z 886Driver 887 888aux-info 889Common Separate Var(aux_info_file_name) 890-aux-info <file> Emit declaration information into <file>. 891 892aux-info= 893Common Joined Alias(aux-info) 894 895coverage 896Driver 897 898c 899Driver 900 901d 902Common Joined 903-d<letters> Enable dumps from specific passes of the compiler. 904 905dumpbase 906Driver Common Separate Var(dump_base_name) 907-dumpbase <file> Set the file basename to be used for dumps. 908 909dumpbase-ext 910Driver Common Separate Var(dump_base_ext) 911-dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files. 912 913dumpdir 914Driver Common Separate Var(dump_dir_name) 915-dumpdir <dir> Set the directory name to be used for dumps. 916 917dumpmachine 918Driver 919 920dumpspecs 921Driver 922 923dumpversion 924Driver 925 926dumpfullversion 927Driver 928 929e 930Driver Joined Separate 931 932; This option has historically been passed down to the linker by an 933; accident of a %{e*} spec, so ensure it continues to be passed down 934; as a single option. The supported option for this purpose is 935; -rdynamic. See PR 47390. 936export-dynamic 937Driver Undocumented 938 939; The version of the C++ ABI in use. The following values are allowed: 940; 941; 0: The version of the ABI believed most conformant with the C++ ABI 942; specification. This ABI may change as bugs are discovered and fixed. 943; Therefore, 0 will not necessarily indicate the same ABI in different 944; versions of G++. 945; 946; 1: The version of the ABI first used in G++ 3.2. No longer selectable. 947; 948; 2: The version of the ABI first used in G++ 3.4, and the default 949; until GCC 4.9. 950; 951; 3: The version of the ABI that fixes the missing underscore 952; in template non-type arguments of pointer type. 953; 954; 4: The version of the ABI that introduces unambiguous mangling of 955; vector types. First selectable in G++ 4.5. 956; 957; 5: The version of the ABI that ignores attribute const/noreturn 958; in function pointer mangling, and corrects mangling of decltype and 959; function parameters used in other parameters and the return type. 960; First selectable in G++ 4.6. 961; 962; 6: The version of the ABI that doesn't promote scoped enums to int and 963; changes the mangling of template argument packs, const/static_cast, 964; prefix ++ and --, and a class scope function used as a template 965; argument. 966; First selectable in G++ 4.7. 967; 968; 7: The version of the ABI that treats nullptr_t as a builtin type and 969; corrects the mangling of lambdas in default argument scope. 970; First selectable in G++ 4.8. 971; 972; 8: The version of the ABI that corrects the substitution behavior of 973; function types with function-cv-qualifiers. 974; First selectable in G++ 4.9 and default in G++ 5. 975; 976; 9: The version of the ABI that corrects the alignment of nullptr_t. 977; First selectable and default in G++ 5.2. 978; 979; 10: The version of the ABI that mangles attributes that affect type 980; identity, such as ia32 calling convention attributes (stdcall, etc.) 981; Default in G++ 6 (set in c_common_post_options). 982; 983; 11: The version of the ABI that corrects mangling of sizeof... expressions 984; and introduces new inheriting constructor handling. 985; Default in G++ 7. 986; 987; 12: Corrects the calling convention for classes with only deleted copy/move 988; constructors and changes passing/returning of empty records. 989; Default in G++ 8.1. 990; 991; 13: Fixes the accidental change in 12 to the calling convention for classes 992; with deleted copy constructor and trivial move constructor. 993; Default in G++ 8.2. 994; 995; 14: Corrects the mangling of nullptr expression. 996; Default in G++ 10. 997; 998; 15: Corrects G++ 10 ABI tag regression [PR98481]. 999; Available, but not default, in G++ 10.3. 1000; 1001; 16: Changes the mangling of __alignof__ to be distinct from that of alignof. 1002; Adds missing 'on' in mangling of operator names in some cases. 1003; Default in G++ 11. 1004; 1005; 17: Fixes layout of classes that inherit from aggregate classes with default 1006; member initializers in C++14 and up. 1007; Default in G++ 12. 1008; 1009; Additional positive integers will be assigned as new versions of 1010; the ABI become the default version of the ABI. 1011fabi-version= 1012Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0) 1013The version of the C++ ABI in use. 1014 1015faggressive-loop-optimizations 1016Common Var(flag_aggressive_loop_optimizations) Optimization Init(1) 1017Aggressively optimize loops using language constraints. 1018 1019falign-functions 1020Common Var(flag_align_functions) Optimization 1021Align the start of functions. 1022 1023falign-functions= 1024Common RejectNegative Joined Var(str_align_functions) Optimization 1025 1026flimit-function-alignment 1027Common Var(flag_limit_function_alignment) Optimization Init(0) 1028 1029falign-jumps 1030Common Var(flag_align_jumps) Optimization 1031Align labels which are only reached by jumping. 1032 1033falign-jumps= 1034Common RejectNegative Joined Var(str_align_jumps) Optimization 1035 1036falign-labels 1037Common Var(flag_align_labels) Optimization 1038Align all labels. 1039 1040falign-labels= 1041Common RejectNegative Joined Var(str_align_labels) Optimization 1042 1043falign-loops 1044Common Var(flag_align_loops) Optimization 1045Align the start of loops. 1046 1047falign-loops= 1048Common RejectNegative Joined Var(str_align_loops) Optimization 1049 1050fallow-store-data-races 1051Common Var(flag_store_data_races) Optimization 1052Allow the compiler to introduce new data races on stores. 1053 1054fanalyzer 1055Common Var(flag_analyzer) 1056Enable static analysis pass. 1057 1058fargument-alias 1059Common Ignore 1060Does nothing. Preserved for backward compatibility. 1061 1062fargument-noalias 1063Common Ignore 1064Does nothing. Preserved for backward compatibility. 1065 1066fargument-noalias-global 1067Common Ignore 1068Does nothing. Preserved for backward compatibility. 1069 1070fargument-noalias-anything 1071Common Ignore 1072Does nothing. Preserved for backward compatibility. 1073 1074fsanitize= 1075Common Driver Joined 1076Select what to sanitize. 1077 1078fsanitize-coverage= 1079Common Joined Enum(sanitize_coverage) Var(flag_sanitize_coverage) EnumBitSet 1080Select type of coverage sanitization. 1081 1082Enum 1083Name(sanitize_coverage) Type(int) 1084 1085EnumValue 1086Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC) 1087 1088EnumValue 1089Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP) 1090 1091fasan-shadow-offset= 1092Common Joined RejectNegative Var(common_deferred_options) Defer 1093-fasan-shadow-offset=<number> Use custom shadow memory offset. 1094 1095fsanitize-sections= 1096Common Joined RejectNegative Var(common_deferred_options) Defer 1097-fsanitize-sections=<sec1,sec2,...> Sanitize global variables 1098in user-defined sections. 1099 1100fsanitize-recover= 1101Common Joined 1102After diagnosing undefined behavior attempt to continue execution. 1103 1104fsanitize-recover 1105Common 1106This switch is deprecated; use -fsanitize-recover= instead. 1107 1108fsanitize-address-use-after-scope 1109Common Driver Var(flag_sanitize_address_use_after_scope) Init(0) 1110 1111fsanitize-undefined-trap-on-error 1112Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0) 1113Use trap instead of a library function for undefined behavior sanitization. 1114 1115fasynchronous-unwind-tables 1116Common Var(flag_asynchronous_unwind_tables) Optimization 1117Generate unwind tables that are exact at each instruction boundary. 1118 1119fauto-inc-dec 1120Common Var(flag_auto_inc_dec) Init(1) Optimization 1121Generate auto-inc/dec instructions. 1122 1123fauto-profile 1124Common Var(flag_auto_profile) 1125Use sample profile information for call graph node weights. The default 1126profile file is fbdata.afdo in 'pwd'. 1127 1128fauto-profile= 1129Common Joined RejectNegative Var(auto_profile_file) 1130Use sample profile information for call graph node weights. The profile 1131file is specified in the argument. 1132 1133; -fcheck-bounds causes gcc to generate array bounds checks. 1134; For C, C++ and ObjC: defaults off. 1135; For Java: defaults to on. 1136; For Fortran: defaults to off. 1137fbounds-check 1138Common Var(flag_bounds_check) 1139Generate code to check bounds before indexing arrays. 1140 1141fbranch-count-reg 1142Common Var(flag_branch_on_count_reg) Optimization 1143Replace add, compare, branch with branch on count register. 1144 1145fbranch-probabilities 1146Common Var(flag_branch_probabilities) Optimization 1147Use profiling information for branch probabilities. 1148 1149fbranch-target-load-optimize 1150Common Ignore 1151Does nothing. Preserved for backward compatibility. 1152 1153fbranch-target-load-optimize2 1154Common Ignore 1155Does nothing. Preserved for backward compatibility. 1156 1157fbtr-bb-exclusive 1158Common Ignore 1159Does nothing. Preserved for backward compatibility. 1160 1161fcallgraph-info 1162Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO); 1163Output callgraph information on a per-file basis. 1164 1165fcallgraph-info= 1166Common RejectNegative Joined 1167Output callgraph information on a per-file basis with decorations. 1168 1169fcall-saved- 1170Common Joined RejectNegative Var(common_deferred_options) Defer 1171-fcall-saved-<register> Mark <register> as being preserved across functions. 1172 1173fcall-used- 1174Common Joined RejectNegative Var(common_deferred_options) Defer 1175-fcall-used-<register> Mark <register> as being corrupted by function calls. 1176 1177; Nonzero for -fcaller-saves: allocate values in regs that need to 1178; be saved across function calls, if that produces overall better code. 1179; Optional now, so people can test it. 1180fcaller-saves 1181Common Var(flag_caller_saves) Optimization 1182Save registers around function calls. 1183 1184fcheck-data-deps 1185Common Ignore 1186This switch is deprecated; do not use. 1187 1188fcheck-new 1189Common Var(flag_check_new) 1190Check the return value of new in C++. 1191 1192fchecking 1193Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0) 1194Perform internal consistency checkings. 1195 1196fchecking= 1197Common Joined RejectNegative UInteger Var(flag_checking) 1198Perform internal consistency checkings. 1199 1200fcode-hoisting 1201Common Var(flag_code_hoisting) Optimization 1202Enable code hoisting. 1203 1204fcombine-stack-adjustments 1205Common Var(flag_combine_stack_adjustments) Optimization 1206Looks for opportunities to reduce stack adjustments and stack references. 1207 1208fcommon 1209Common Var(flag_no_common,0) Init(1) 1210Put uninitialized globals in the common section. 1211 1212fcompare-debug 1213Driver 1214; Converted by the driver to -fcompare-debug= options. 1215 1216fcompare-debug= 1217Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt) 1218-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump. 1219 1220fcompare-debug-second 1221Common Driver RejectNegative Var(flag_compare_debug) 1222Run only the second compilation of -fcompare-debug. 1223 1224fcompare-elim 1225Common Var(flag_compare_elim_after_reload) Optimization 1226Perform comparison elimination after register allocation has finished. 1227 1228fconserve-stack 1229Common Var(flag_conserve_stack) Optimization 1230Do not perform optimizations increasing noticeably stack usage. 1231 1232fcprop-registers 1233Common Var(flag_cprop_registers) Optimization 1234Perform a register copy-propagation optimization pass. 1235 1236fcrossjumping 1237Common Var(flag_crossjumping) Optimization 1238Perform cross-jumping optimization. 1239 1240fcse-follow-jumps 1241Common Var(flag_cse_follow_jumps) Optimization 1242When running CSE, follow jumps to their targets. 1243 1244fcse-skip-blocks 1245Common Ignore 1246Does nothing. Preserved for backward compatibility. 1247 1248fcx-limited-range 1249Common Var(flag_cx_limited_range) Optimization SetByCombined 1250Omit range reduction step when performing complex division. 1251 1252fcx-fortran-rules 1253Common Var(flag_cx_fortran_rules) Optimization 1254Complex multiplication and division follow Fortran rules. 1255 1256fdata-sections 1257Common Var(flag_data_sections) 1258Place data items into their own section. 1259 1260fdbg-cnt-list 1261Common Var(flag_dbg_cnt_list) 1262List all available debugging counters with their limits and counts. 1263 1264fdbg-cnt= 1265Common RejectNegative Joined Var(common_deferred_options) Defer 1266-fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit. 1267 1268fdebug-prefix-map= 1269Common Joined RejectNegative Var(common_deferred_options) Defer 1270-fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information. 1271 1272ffile-prefix-map= 1273Common Joined RejectNegative Var(common_deferred_options) Defer 1274-ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result. 1275 1276fdebug-regex-map= 1277Common Joined RejectNegative Var(common_deferred_options) Defer 1278Map one directory name to another in debug information using regular expression matching. 1279 1280fdebug-types-section 1281Common Var(flag_debug_types_section) Init(0) 1282Output .debug_types section when using DWARF v4 debuginfo. 1283 1284; Nonzero for -fdefer-pop: don't pop args after each function call 1285; instead save them up to pop many calls' args with one insns. 1286fdefer-pop 1287Common Var(flag_defer_pop) Optimization 1288Defer popping functions args from stack until later. 1289 1290fdelayed-branch 1291Common Var(flag_delayed_branch) Optimization 1292Attempt to fill delay slots of branch instructions. 1293 1294fdelete-dead-exceptions 1295Common Var(flag_delete_dead_exceptions) Init(0) Optimization 1296Delete dead instructions that may throw exceptions. 1297 1298;; netbsd GCC 5 disabled this, GCC 6 has it default to -1 1299;; figure out what -1 means 1300fdelete-null-pointer-checks 1301Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization 1302Delete useless null pointer checks. 1303 1304fdevirtualize-at-ltrans 1305Common Var(flag_ltrans_devirtualize) 1306Stream extra data to support more aggressive devirtualization in LTO local transformation mode. 1307 1308fdevirtualize-speculatively 1309Common Var(flag_devirtualize_speculatively) Optimization 1310Perform speculative devirtualization. 1311 1312fdevirtualize 1313Common Var(flag_devirtualize) Optimization 1314Try to convert virtual calls to direct ones. 1315 1316fdiagnostics-show-location= 1317Common Joined RejectNegative Enum(diagnostic_prefixing_rule) 1318-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics. 1319 1320; Required for these enum values. 1321SourceInclude 1322pretty-print.h 1323 1324Enum 1325Name(diagnostic_prefixing_rule) Type(int) 1326 1327EnumValue 1328Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE) 1329 1330EnumValue 1331Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE) 1332 1333fdiagnostics-show-caret 1334Common Var(flag_diagnostics_show_caret) Init(1) 1335Show the source line with a caret indicating the column. 1336 1337fdiagnostics-show-labels 1338Common Var(flag_diagnostics_show_labels) Init(1) 1339Show labels annotating ranges of source code when showing source. 1340 1341fdiagnostics-show-line-numbers 1342Common Var(flag_diagnostics_show_line_numbers) Init(1) 1343Show line numbers in the left margin when showing source. 1344 1345fdiagnostics-color 1346Common Alias(fdiagnostics-color=,always,never) 1347; 1348 1349fdiagnostics-color= 1350Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO) 1351-fdiagnostics-color=[never|always|auto] Colorize diagnostics. 1352 1353; Required for these enum values. 1354SourceInclude 1355diagnostic-color.h 1356 1357Enum 1358Name(diagnostic_color_rule) Type(int) 1359 1360EnumValue 1361Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO) 1362 1363EnumValue 1364Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES) 1365 1366EnumValue 1367Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO) 1368 1369fdiagnostics-urls= 1370Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO) 1371-fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics. 1372 1373; Required for these enum values. 1374SourceInclude 1375diagnostic-url.h 1376 1377Enum 1378Name(diagnostic_url_rule) Type(int) 1379 1380EnumValue 1381Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO) 1382 1383EnumValue 1384Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES) 1385 1386EnumValue 1387Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO) 1388 1389fdiagnostics-column-unit= 1390Common Joined RejectNegative Enum(diagnostics_column_unit) 1391-fdiagnostics-column-unit=[display|byte] Select whether column numbers are output as display columns (default) or raw bytes. 1392 1393fdiagnostics-column-origin= 1394Common Joined RejectNegative UInteger 1395-fdiagnostics-column-origin=<number> Set the number of the first column. The default is 1-based as per GNU style, but some utilities may expect 0-based, for example. 1396 1397fdiagnostics-format= 1398Common Joined RejectNegative Enum(diagnostics_output_format) 1399-fdiagnostics-format=[text|json] Select output format. 1400 1401fdiagnostics-escape-format= 1402Common Joined RejectNegative Enum(diagnostics_escape_format) 1403-fdiagnostics-escape-format=[unicode|bytes] Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it. 1404 1405; Required for these enum values. 1406SourceInclude 1407diagnostic.h 1408 1409Enum 1410Name(diagnostics_column_unit) Type(int) 1411 1412EnumValue 1413Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY) 1414 1415EnumValue 1416Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE) 1417 1418Enum 1419Name(diagnostics_escape_format) Type(int) 1420 1421EnumValue 1422Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE) 1423 1424EnumValue 1425Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES) 1426 1427Enum 1428Name(diagnostics_output_format) Type(int) 1429 1430EnumValue 1431Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT) 1432 1433EnumValue 1434Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON) 1435 1436fdiagnostics-parseable-fixits 1437Common Var(flag_diagnostics_parseable_fixits) 1438Print fix-it hints in machine-readable form. 1439 1440fdiagnostics-generate-patch 1441Common Var(flag_diagnostics_generate_patch) 1442Print fix-it hints to stderr in unified diff format. 1443 1444fdiagnostics-show-option 1445Common Var(flag_diagnostics_show_option) Init(1) 1446Amend appropriate diagnostic messages with the command line option that controls them. 1447 1448fdiagnostics-show-cwe 1449Common Var(flag_diagnostics_show_cwe) Init(1) 1450Print CWE identifiers for diagnostic messages, where available. 1451 1452fdiagnostics-path-format= 1453Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS) 1454Specify how to print any control-flow path associated with a diagnostic. 1455 1456fdiagnostics-plain-output 1457Driver Common RejectNegative 1458Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs. 1459 1460ftabstop= 1461Common Joined RejectNegative UInteger 1462-ftabstop=<number> Distance between tab stops for column reporting. 1463 1464Enum 1465Name(diagnostic_path_format) Type(int) 1466 1467EnumValue 1468Enum(diagnostic_path_format) String(none) Value(DPF_NONE) 1469 1470EnumValue 1471Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS) 1472 1473EnumValue 1474Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS) 1475 1476fdiagnostics-show-path-depths 1477Common Var(flag_diagnostics_show_path_depths) Init(0) 1478Show stack depths of events in paths. 1479 1480fdiagnostics-minimum-margin-width= 1481Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6) 1482Set minimum width of left margin of source code when showing source. 1483 1484fdisable- 1485Common Joined RejectNegative Var(common_deferred_options) Defer 1486-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass. 1487 1488fenable- 1489Common Joined RejectNegative Var(common_deferred_options) Defer 1490-fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass. 1491 1492fdump- 1493Common Joined RejectNegative Var(common_deferred_options) Defer 1494-fdump-<type> Dump various compiler internals to a file. 1495 1496fdump-final-insns 1497Driver RejectNegative 1498 1499fdump-final-insns= 1500Common RejectNegative Joined Var(flag_dump_final_insns) 1501-fdump-final-insns=filename Dump to filename the insns at the end of translation. 1502 1503fdump-go-spec= 1504Common RejectNegative Joined Var(flag_dump_go_spec) 1505-fdump-go-spec=filename Write all declarations to file as Go code. 1506 1507fdump-noaddr 1508Common Var(flag_dump_noaddr) 1509Suppress output of addresses in debugging dumps. 1510 1511freport-bug 1512Common Driver Var(flag_report_bug) 1513Collect and dump debug information into temporary file if ICE in C/C++ 1514compiler occurred. 1515 1516fdump-internal-locations 1517Common Var(flag_dump_locations) Init(0) 1518Dump detailed information on GCC's internal representation of source code locations. 1519 1520fdump-passes 1521Common Var(flag_dump_passes) Init(0) 1522Dump optimization passes. 1523 1524fdump-unnumbered 1525Common Var(flag_dump_unnumbered) 1526Suppress output of instruction numbers, line number notes and addresses in debugging dumps. 1527 1528fdump-unnumbered-links 1529Common Var(flag_dump_unnumbered_links) 1530Suppress output of previous and next insn numbers in debugging dumps. 1531 1532fdwarf2-cfi-asm 1533Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE) 1534Enable CFI tables via GAS assembler directives. 1535 1536fearly-inlining 1537Common Var(flag_early_inlining) Init(1) Optimization 1538Perform early inlining. 1539 1540feliminate-dwarf2-dups 1541Common Ignore 1542Does nothing. Preserved for backward compatibility. 1543 1544fipa-sra 1545Common Var(flag_ipa_sra) Init(0) Optimization 1546Perform interprocedural reduction of aggregates. 1547 1548feliminate-unused-debug-symbols 1549Common Var(flag_debug_only_used_symbols) Init(1) 1550Perform unused symbol elimination in debug info. 1551 1552feliminate-unused-debug-types 1553Common Var(flag_eliminate_unused_debug_types) Init(1) 1554Perform unused type elimination in debug info. 1555 1556femit-class-debug-always 1557Common Var(flag_emit_class_debug_always) Init(0) 1558Do not suppress C++ class debug information. 1559 1560fexceptions 1561Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions) 1562Enable exception handling. 1563 1564fexpensive-optimizations 1565Common Var(flag_expensive_optimizations) Optimization 1566Perform a number of minor, expensive optimizations. 1567 1568fexcess-precision= 1569Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined 1570-fexcess-precision=[fast|standard|16] Specify handling of excess floating-point precision. 1571 1572Enum 1573Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs) 1574 1575EnumValue 1576Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST) 1577 1578EnumValue 1579Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD) 1580 1581EnumValue 1582Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16) 1583 1584; Whether we permit the extended set of values for FLT_EVAL_METHOD 1585; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11. 1586fpermitted-flt-eval-methods= 1587Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT) 1588-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted. 1589 1590Enum 1591Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs) 1592 1593EnumValue 1594Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11) 1595 1596EnumValue 1597Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661) 1598 1599ffast-math 1600Common Optimization 1601 1602ffat-lto-objects 1603Common Var(flag_fat_lto_objects) 1604Output lto objects containing both the intermediate language and binary output. 1605 1606ffinite-math-only 1607Common Var(flag_finite_math_only) Optimization SetByCombined 1608Assume no NaNs or infinities are generated. 1609 1610ffinite-loops 1611Common Var(flag_finite_loops) Optimization Init(0) 1612Assume that loops with an exit will terminate and not loop indefinitely. 1613 1614ffixed- 1615Common Joined RejectNegative Var(common_deferred_options) Defer 1616-ffixed-<register> Mark <register> as being unavailable to the compiler. 1617 1618ffloat-store 1619Common Var(flag_float_store) Optimization 1620Don't allocate floats and doubles in extended-precision registers. 1621 1622fforce-addr 1623Common Ignore 1624Does nothing. Preserved for backward compatibility. 1625 1626fforward-propagate 1627Common Var(flag_forward_propagate) Optimization 1628Perform a forward propagation pass on RTL. 1629 1630ffp-contract= 1631Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization 1632-ffp-contract=[off|on|fast] Perform floating-point expression contraction. 1633 1634Enum 1635Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs) 1636 1637EnumValue 1638Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF) 1639 1640; Not implemented, fall back to conservative FP_CONTRACT_OFF. 1641EnumValue 1642Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF) 1643 1644EnumValue 1645Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST) 1646 1647ffp-int-builtin-inexact 1648Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization 1649Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions. 1650 1651; Nonzero means don't put addresses of constant functions in registers. 1652; Used for compiling the Unix kernel, where strange substitutions are 1653; done on the assembly output. 1654ffunction-cse 1655Common Var(flag_no_function_cse,0) Optimization 1656Allow function addresses to be held in registers. 1657 1658ffunction-sections 1659Common Var(flag_function_sections) 1660Place each function into its own section. 1661 1662fgcse 1663Common Var(flag_gcse) Optimization 1664Perform global common subexpression elimination. 1665 1666fgcse-lm 1667Common Var(flag_gcse_lm) Init(1) Optimization 1668Perform enhanced load motion during global common subexpression elimination. 1669 1670fgcse-sm 1671Common Var(flag_gcse_sm) Init(0) Optimization 1672Perform store motion after global common subexpression elimination. 1673 1674fgcse-las 1675Common Var(flag_gcse_las) Init(0) Optimization 1676Perform redundant load after store elimination in global common subexpression 1677elimination. 1678 1679fgcse-after-reload 1680Common Var(flag_gcse_after_reload) Optimization 1681Perform global common subexpression elimination after register allocation has 1682finished. 1683 1684Enum 1685Name(dwarf_gnat_encodings) Type(int) 1686 1687EnumValue 1688Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL) 1689 1690EnumValue 1691Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB) 1692 1693EnumValue 1694Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL) 1695 1696fgnat-encodings= 1697Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings) 1698-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information. 1699 1700; This option is not documented yet as its semantics will change. 1701fgraphite 1702Common Var(flag_graphite) Optimization 1703Enable in and out of Graphite representation. 1704 1705fgraphite-identity 1706Common Var(flag_graphite_identity) Optimization 1707Enable Graphite Identity transformation. 1708 1709fhoist-adjacent-loads 1710Common Var(flag_hoist_adjacent_loads) Optimization 1711Enable hoisting adjacent loads to encourage generating conditional move 1712instructions. 1713 1714fkeep-gc-roots-live 1715Common Undocumented Var(flag_keep_gc_roots_live) Optimization 1716; Always keep a pointer to a live memory block 1717 1718flarge-source-files 1719Common Var(flag_large_source_files) Init(0) 1720Improve GCC's ability to track column numbers in large source files, 1721at the expense of slower compilation. 1722 1723floop-parallelize-all 1724Common Var(flag_loop_parallelize_all) Optimization 1725Mark all loops as parallel. 1726 1727floop-strip-mine 1728Common Alias(floop-nest-optimize) 1729Enable loop nest transforms. Same as -floop-nest-optimize. 1730 1731floop-interchange 1732Common Var(flag_loop_interchange) Optimization 1733Enable loop interchange on trees. 1734 1735floop-block 1736Common Alias(floop-nest-optimize) 1737Enable loop nest transforms. Same as -floop-nest-optimize. 1738 1739floop-unroll-and-jam 1740Common Var(flag_unroll_jam) Optimization 1741Perform unroll-and-jam on loops. 1742 1743fgnu-tm 1744Common Var(flag_tm) 1745Enable support for GNU transactional memory. 1746 1747fgnu-unique 1748Common Var(flag_gnu_unique) Init(1) 1749Use STB_GNU_UNIQUE if supported by the assembler. 1750 1751floop-flatten 1752Common Ignore 1753Does nothing. Preserved for backward compatibility. 1754 1755floop-nest-optimize 1756Common Var(flag_loop_nest_optimize) Optimization 1757Enable the loop nest optimizer. 1758 1759fstrict-volatile-bitfields 1760Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization 1761Force bitfield accesses to match their type width. 1762 1763fstore-merging 1764Common Var(flag_store_merging) Optimization 1765Merge adjacent stores. 1766 1767fguess-branch-probability 1768Common Var(flag_guess_branch_prob) Optimization 1769Enable guessing of branch probabilities. 1770 1771fharden-compares 1772Common Var(flag_harden_compares) Optimization 1773Harden conditionals not used in branches, checking reversed conditions. 1774 1775fharden-conditional-branches 1776Common Var(flag_harden_conditional_branches) Optimization 1777Harden conditional branches by checking reversed conditions. 1778 1779; Nonzero means ignore `#ident' directives. 0 means handle them. 1780; Generate position-independent code for executables if possible 1781; On SVR4 targets, it also controls whether or not to emit a 1782; string identifying the compiler. 1783fident 1784Common Var(flag_no_ident,0) 1785Process #ident directives. 1786 1787fif-conversion 1788Common Var(flag_if_conversion) Optimization 1789Perform conversion of conditional jumps to branchless equivalents. 1790 1791fif-conversion2 1792Common Var(flag_if_conversion2) Optimization 1793Perform conversion of conditional jumps to conditional execution. 1794 1795fstack-reuse= 1796Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization 1797-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables. 1798 1799Enum 1800Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs) 1801 1802EnumValue 1803Enum(stack_reuse_level) String(all) Value(SR_ALL) 1804 1805EnumValue 1806Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS) 1807 1808EnumValue 1809Enum(stack_reuse_level) String(none) Value(SR_NONE) 1810 1811ftree-loop-if-convert 1812Common Var(flag_tree_loop_if_convert) Init(-1) Optimization 1813Convert conditional jumps in innermost loops to branchless equivalents. 1814 1815ftree-loop-if-convert-stores 1816Common Ignore 1817Does nothing. Preserved for backward compatibility. 1818 1819; -finhibit-size-directive inhibits output of .size for ELF. 1820; This is used only for compiling crtstuff.c, 1821; and it may be extended to other effects 1822; needed for crtstuff.c on other systems. 1823finhibit-size-directive 1824Common Var(flag_inhibit_size_directive) 1825Do not generate .size directives. 1826 1827findirect-inlining 1828Common Var(flag_indirect_inlining) Optimization 1829Perform indirect inlining. 1830 1831; General flag to enable inlining. Specifying -fno-inline will disable 1832; all inlining apart from always-inline functions. 1833finline 1834Common Var(flag_no_inline,0) Init(0) Optimization 1835Enable inlining of function declared \"inline\", disabling disables all inlining. 1836 1837finline-small-functions 1838Common Var(flag_inline_small_functions) Optimization 1839Integrate functions into their callers when code size is known not to grow. 1840 1841finline-functions 1842Common Var(flag_inline_functions) Optimization 1843Integrate functions not declared \"inline\" into their callers when profitable. 1844 1845finline-functions-called-once 1846Common Var(flag_inline_functions_called_once) Optimization 1847Integrate functions only required by their single caller. 1848 1849finline-limit- 1850Common RejectNegative Joined Alias(finline-limit=) 1851 1852finline-limit= 1853Common RejectNegative Joined UInteger 1854-finline-limit=<number> Limit the size of inlined functions to <number>. 1855 1856finline-atomics 1857Common Var(flag_inline_atomics) Init(1) Optimization 1858Inline __atomic operations when a lock free instruction sequence is available. 1859 1860fcf-protection 1861Common RejectNegative Alias(fcf-protection=,full) 1862 1863fcf-protection= 1864Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE) 1865-fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer 1866instructions have valid targets. 1867 1868Enum 1869Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs) 1870 1871EnumValue 1872Enum(cf_protection_level) String(full) Value(CF_FULL) 1873 1874EnumValue 1875Enum(cf_protection_level) String(branch) Value(CF_BRANCH) 1876 1877EnumValue 1878Enum(cf_protection_level) String(return) Value(CF_RETURN) 1879 1880EnumValue 1881Enum(cf_protection_level) String(check) Value(CF_CHECK) 1882 1883EnumValue 1884Enum(cf_protection_level) String(none) Value(CF_NONE) 1885 1886finstrument-functions 1887Common Var(flag_instrument_function_entry_exit) 1888Instrument function entry and exit with profiling calls. 1889 1890finstrument-functions-exclude-function-list= 1891Common RejectNegative Joined 1892-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions. 1893 1894finstrument-functions-exclude-file-list= 1895Common RejectNegative Joined 1896-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files. 1897 1898fipa-cp 1899Common Var(flag_ipa_cp) Optimization 1900Perform interprocedural constant propagation. 1901 1902fipa-cp-clone 1903Common Var(flag_ipa_cp_clone) Optimization 1904Perform cloning to make Interprocedural constant propagation stronger. 1905 1906fipa-cp-alignment 1907Common Ignore 1908Does nothing. Preserved for backward compatibility. 1909 1910fipa-bit-cp 1911Common Var(flag_ipa_bit_cp) Optimization 1912Perform interprocedural bitwise constant propagation. 1913 1914fipa-modref 1915Common Var(flag_ipa_modref) Optimization 1916Perform interprocedural modref analysis. 1917 1918fipa-profile 1919Common Var(flag_ipa_profile) Init(0) Optimization 1920Perform interprocedural profile propagation. 1921 1922fipa-pta 1923Common Var(flag_ipa_pta) Init(0) Optimization 1924Perform interprocedural points-to analysis. 1925 1926fipa-pure-const 1927Common Var(flag_ipa_pure_const) Init(0) Optimization 1928Discover pure and const functions. 1929 1930fipa-icf 1931Common Var(flag_ipa_icf) Optimization 1932Perform Identical Code Folding for functions and read-only variables. 1933 1934fipa-icf-functions 1935Common Var(flag_ipa_icf_functions) Optimization 1936Perform Identical Code Folding for functions. 1937 1938fipa-icf-variables 1939Common Var(flag_ipa_icf_variables) Optimization 1940Perform Identical Code Folding for variables. 1941 1942fipa-reference 1943Common Var(flag_ipa_reference) Init(0) Optimization 1944Discover read-only and non addressable static variables. 1945 1946fipa-reference-addressable 1947Common Var(flag_ipa_reference_addressable) Init(0) Optimization 1948Discover read-only, write-only and non-addressable static variables. 1949 1950fipa-stack-alignment 1951Common Var(flag_ipa_stack_alignment) Init(1) Optimization 1952Reduce stack alignment on call sites if possible. 1953 1954fipa-matrix-reorg 1955Common Ignore 1956Does nothing. Preserved for backward compatibility. 1957 1958fipa-struct-reorg 1959Common Ignore 1960Does nothing. Preserved for backward compatibility. 1961 1962fipa-vrp 1963Common Var(flag_ipa_vrp) Optimization 1964Perform IPA Value Range Propagation. 1965 1966fira-algorithm= 1967Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization 1968-fira-algorithm=[CB|priority] Set the used IRA algorithm. 1969 1970fipa-strict-aliasing 1971Common Var(flag_ipa_strict_aliasing) Init(1) Optimization 1972Assume strict aliasing rules apply across (uninlined) function boundaries. 1973 1974Enum 1975Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs) 1976 1977EnumValue 1978Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB) 1979 1980EnumValue 1981Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY) 1982 1983fira-region= 1984Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization 1985-fira-region=[one|all|mixed] Set regions for IRA. 1986 1987Enum 1988Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs) 1989 1990EnumValue 1991Enum(ira_region) String(one) Value(IRA_REGION_ONE) 1992 1993EnumValue 1994Enum(ira_region) String(all) Value(IRA_REGION_ALL) 1995 1996EnumValue 1997Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED) 1998 1999fira-hoist-pressure 2000Common Var(flag_ira_hoist_pressure) Init(1) Optimization 2001Use IRA based register pressure calculation 2002in RTL hoist optimizations. 2003 2004fira-loop-pressure 2005Common Var(flag_ira_loop_pressure) Optimization 2006Use IRA based register pressure calculation 2007in RTL loop optimizations. 2008 2009fira-share-save-slots 2010Common Var(flag_ira_share_save_slots) Init(1) Optimization 2011Share slots for saving different hard registers. 2012 2013fira-share-spill-slots 2014Common Var(flag_ira_share_spill_slots) Init(1) Optimization 2015Share stack slots for spilled pseudo-registers. 2016 2017fira-verbose= 2018Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5) 2019-fira-verbose=<number> Control IRA's level of diagnostic messages. 2020 2021fivopts 2022Common Var(flag_ivopts) Init(1) Optimization 2023Optimize induction variables on trees. 2024 2025fjump-tables 2026Common Var(flag_jump_tables) Init(1) Optimization 2027Use jump tables for sufficiently large switch statements. 2028 2029fbit-tests 2030Common Var(flag_bit_tests) Init(1) Optimization 2031Use bit tests for sufficiently large switch statements. 2032 2033fkeep-inline-functions 2034Common Var(flag_keep_inline_functions) 2035Generate code for functions even if they are fully inlined. 2036 2037fkeep-static-functions 2038Common Var(flag_keep_static_functions) 2039Generate code for static functions even if they are never called. 2040 2041fkeep-static-consts 2042Common Var(flag_keep_static_consts) Init(1) 2043Emit static const variables even if they are not used. 2044 2045fleading-underscore 2046Common Var(flag_leading_underscore) Init(-1) 2047Give external symbols a leading underscore. 2048 2049floop-optimize 2050Common Ignore 2051Does nothing. Preserved for backward compatibility. 2052 2053flra-remat 2054Common Var(flag_lra_remat) Optimization 2055Do CFG-sensitive rematerialization in LRA. 2056 2057flto 2058Common 2059Enable link-time optimization. 2060 2061flto= 2062Common RejectNegative Joined Var(flag_lto) 2063Link-time optimization with number of parallel jobs or jobserver. 2064 2065Enum 2066Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs) 2067 2068EnumValue 2069Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE) 2070 2071EnumValue 2072Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE) 2073 2074EnumValue 2075Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED) 2076 2077EnumValue 2078Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1) 2079 2080EnumValue 2081Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX) 2082 2083flto-partition= 2084Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED) 2085Specify the algorithm to partition symbols and vars at linktime. 2086 2087; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h. 2088flto-compression-level= 2089Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19) 2090-flto-compression-level=<number> Use zlib/zstd compression level <number> for IL. 2091 2092flto-odr-type-merging 2093Common Ignore 2094Does nothing. Preserved for backward compatibility. 2095 2096flto-report 2097Common Var(flag_lto_report) Init(0) 2098Report various link-time optimization statistics. 2099 2100flto-report-wpa 2101Common Var(flag_lto_report_wpa) Init(0) 2102Report various link-time optimization statistics for WPA only. 2103 2104fmath-errno 2105Common Var(flag_errno_math) Init(1) Optimization SetByCombined 2106Set errno after built-in math functions. 2107 2108fmax-errors= 2109Common Joined RejectNegative UInteger Var(flag_max_errors) 2110-fmax-errors=<number> Maximum number of errors to report. 2111 2112fmem-report 2113Common Var(mem_report) 2114Report on permanent memory allocation. 2115 2116fmem-report-wpa 2117Common Var(mem_report_wpa) 2118Report on permanent memory allocation in WPA only. 2119 2120; This will attempt to merge constant section constants, if 1 only 2121; string constants and constants from constant pool, if 2 also constant 2122; variables. 2123fmerge-all-constants 2124Common Var(flag_merge_constants,2) Init(1) 2125Attempt to merge identical constants and constant variables. 2126 2127fmerge-constants 2128Common Var(flag_merge_constants,1) 2129Attempt to merge identical constants across compilation units. 2130 2131fmerge-debug-strings 2132Common Var(flag_merge_debug_strings) Init(1) 2133Attempt to merge identical debug strings across compilation units. 2134 2135fmessage-length= 2136Common RejectNegative Joined UInteger 2137-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping. 2138 2139fmodulo-sched 2140Common Var(flag_modulo_sched) Optimization 2141Perform SMS based modulo scheduling before the first scheduling pass. 2142 2143fmodulo-sched-allow-regmoves 2144Common Var(flag_modulo_sched_allow_regmoves) Optimization 2145Perform SMS based modulo scheduling with register moves allowed. 2146 2147fmove-loop-invariants 2148Common Var(flag_move_loop_invariants) Optimization 2149Move loop invariant computations out of loops. 2150 2151fmove-loop-stores 2152Common Var(flag_move_loop_stores) Optimization 2153Move stores out of loops. 2154 2155fdce 2156Common Var(flag_dce) Init(1) Optimization 2157Use the RTL dead code elimination pass. 2158 2159fdse 2160Common Var(flag_dse) Init(0) Optimization 2161Use the RTL dead store elimination pass. 2162 2163freschedule-modulo-scheduled-loops 2164Common Var(flag_resched_modulo_sched) Optimization 2165Enable/Disable the traditional scheduling in loops that already passed modulo scheduling. 2166 2167fnon-call-exceptions 2168Common Var(flag_non_call_exceptions) Optimization 2169Support synchronous non-call exceptions. 2170 2171foffload= 2172Driver Joined MissingArgError(targets missing after %qs) 2173 2174foffload-options= 2175Common Driver Joined MissingArgError(options or targets=options missing after %qs) 2176-foffload-options=<targets>=<options> Specify options for the offloading targets. 2177 2178foffload-abi= 2179Common Joined RejectNegative Enum(offload_abi) 2180-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler. 2181 2182Enum 2183Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs) 2184 2185EnumValue 2186Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32) 2187 2188EnumValue 2189Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64) 2190 2191fomit-frame-pointer 2192Common Var(flag_omit_frame_pointer) Optimization 2193When possible do not generate stack frames. 2194 2195fopt-info 2196Common Var(flag_opt_info) Optimization 2197Enable all optimization info dumps on stderr. 2198 2199fopt-info- 2200Common Joined RejectNegative Var(common_deferred_options) Defer 2201-fopt-info[-<type>=filename] Dump compiler optimization details. 2202 2203fsave-optimization-record 2204Common Var(flag_save_optimization_record) Optimization 2205Write a SRCFILE.opt-record.json file detailing what optimizations were performed. 2206 2207foptimize-register-move 2208Common Ignore 2209Does nothing. Preserved for backward compatibility. 2210 2211foptimize-sibling-calls 2212Common Var(flag_optimize_sibling_calls) Optimization 2213Optimize sibling and tail recursive calls. 2214 2215fpartial-inlining 2216Common Var(flag_partial_inlining) Optimization 2217Perform partial inlining. 2218 2219fpre-ipa-mem-report 2220Common Var(pre_ipa_mem_report) 2221Report on memory allocation before interprocedural optimization. 2222 2223fpost-ipa-mem-report 2224Common Var(post_ipa_mem_report) 2225Report on memory allocation before interprocedural optimization. 2226 2227fpack-struct 2228Common Var(flag_pack_struct) Optimization 2229Pack structure members together without holes. 2230 2231fpack-struct= 2232Common RejectNegative Joined UInteger Optimization 2233-fpack-struct=<number> Set initial maximum structure member alignment. 2234 2235fpcc-struct-return 2236Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN) 2237Return small aggregates in memory, not registers. 2238 2239fpeel-loops 2240Common Var(flag_peel_loops) Optimization 2241Perform loop peeling. 2242 2243fpeephole 2244Common Var(flag_no_peephole,0) Optimization 2245Enable machine specific peephole optimizations. 2246 2247fpeephole2 2248Common Var(flag_peephole2) Optimization 2249Enable an RTL peephole pass before sched2. 2250 2251fPIC 2252Common Var(flag_pic,2) Negative(fPIE) Init(-1) 2253Generate position-independent code if possible (large mode). 2254 2255fPIE 2256Common Var(flag_pie,2) Negative(fpic) Init(-1) 2257Generate position-independent code for executables if possible (large mode). 2258 2259fpic 2260Common Var(flag_pic,1) Negative(fpie) Init(-1) 2261Generate position-independent code if possible (small mode). 2262 2263fpie 2264Common Var(flag_pie,1) Negative(fPIC) Init(-1) 2265Generate position-independent code for executables if possible (small mode). 2266 2267fplt 2268Common Var(flag_plt) Init(1) Optimization 2269Use PLT for PIC calls (-fno-plt: load the address from GOT at call site). 2270 2271fplugin= 2272Common Joined RejectNegative Var(common_deferred_options) Defer 2273Specify a plugin to load. 2274 2275fplugin-arg- 2276Common Joined RejectNegative Var(common_deferred_options) Defer 2277-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>. 2278 2279fpredictive-commoning 2280Common Var(flag_predictive_commoning) Optimization 2281Run predictive commoning optimization. 2282 2283fprefetch-loop-arrays 2284Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization 2285Generate prefetch instructions, if available, for arrays in loops. 2286 2287fprofile 2288Common Var(profile_flag) 2289Enable basic program profiling code. 2290 2291fprofile-abs-path 2292Common Var(profile_abs_path_flag) 2293Generate absolute source path names for gcov. 2294 2295fprofile-arcs 2296Common Var(profile_arc_flag) 2297Insert arc-based program profiling code. 2298 2299fprofile-dir= 2300Common Joined RejectNegative Var(profile_data_prefix) 2301Set the top-level directory for storing the profile data. 2302The default is 'pwd'. 2303 2304fprofile-note= 2305Common Joined RejectNegative Var(profile_note_location) 2306Select the name for storing the profile note file. 2307 2308fprofile-correction 2309Common Var(flag_profile_correction) 2310Enable correction of flow inconsistent profile data input. 2311 2312fprofile-update= 2313Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE) 2314-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method. 2315 2316fprofile-filter-files= 2317Common Joined RejectNegative Var(flag_profile_filter_files) 2318Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons). 2319 2320fprofile-exclude-files= 2321Common Joined RejectNegative Var(flag_profile_exclude_files) 2322Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons). 2323 2324Enum 2325Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs) 2326 2327EnumValue 2328Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL) 2329 2330EnumValue 2331Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS) 2332 2333EnumValue 2334Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED) 2335 2336fprofile-reproducible= 2337Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL) 2338-fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate. 2339 2340Enum 2341Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs) 2342 2343EnumValue 2344Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE) 2345 2346EnumValue 2347Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC) 2348 2349EnumValue 2350Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC) 2351 2352fprofile-prefix-path= 2353Common Joined RejectNegative Var(profile_prefix_path) 2354Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=. 2355 2356fprofile-prefix-map= 2357Common Joined RejectNegative Var(common_deferred_options) Defer 2358-fprofile-prefix-map=<old>=<new> Map one directory name to another in GCOV coverage result. 2359 2360fprofile-generate 2361Common 2362Enable common options for generating profile info for profile feedback directed optimizations. 2363 2364fprofile-generate= 2365Common Joined RejectNegative 2366Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=. 2367 2368fprofile-info-section 2369Common RejectNegative 2370Register the profile information in the .gcov_info section instead of using a constructor/destructor. 2371 2372fprofile-info-section= 2373Common Joined RejectNegative Var(profile_info_section) 2374Register the profile information in the specified section instead of using a constructor/destructor. 2375 2376fprofile-partial-training 2377Common Var(flag_profile_partial_training) Optimization 2378Do not assume that functions never executed during the train run are cold. 2379 2380fprofile-use 2381Common Var(flag_profile_use) 2382Enable common options for performing profile feedback directed optimizations. 2383 2384fprofile-use= 2385Common Joined RejectNegative 2386Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=. 2387 2388fprofile-values 2389Common Var(flag_profile_values) 2390Insert code to profile values of expressions. 2391 2392fprofile-report 2393Common Var(profile_report) 2394Report on consistency of profile. 2395 2396fprofile-reorder-functions 2397Common Var(flag_profile_reorder_functions) Optimization 2398Enable function reordering that improves code placement. 2399 2400fpatchable-function-entry= 2401Common Var(flag_patchable_function_entry) Joined Optimization 2402Insert NOP instructions at each function entry. 2403 2404frandom-seed 2405Common Var(common_deferred_options) Defer 2406 2407frandom-seed= 2408Common Joined RejectNegative Var(common_deferred_options) Defer 2409-frandom-seed=<string> Make compile reproducible using <string>. 2410 2411; This switch causes the command line that was used to create an 2412; object file to be recorded into the object file. The exact format 2413; of this recording is target and binary file format dependent. 2414; It is related to the -fverbose-asm switch, but that switch only 2415; records information in the assembler output file as comments, so 2416; they never reach the object file. 2417frecord-gcc-switches 2418Common Var(flag_record_gcc_switches) 2419Record gcc command line switches in the object file. 2420 2421freg-struct-return 2422Common Var(flag_pcc_struct_return,0) Optimization 2423Return small aggregates in registers. 2424 2425fregmove 2426Common Ignore 2427Does nothing. Preserved for backward compatibility. 2428 2429flifetime-dse 2430Common Var(flag_lifetime_dse,2) Init(2) Optimization 2431Tell DSE that the storage for a C++ object is dead when the constructor 2432starts and when the destructor finishes. 2433 2434flifetime-dse= 2435Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2) 2436 2437flive-patching 2438Common RejectNegative Alias(flive-patching=,inline-clone) Optimization 2439 2440flive-patching= 2441Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization 2442-flive-patching=[inline-only-static|inline-clone] Control IPA 2443optimizations to provide a safe compilation for live-patching. At the same 2444time, provides multiple-level control on the enabled IPA optimizations. 2445 2446Enum 2447Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs) 2448 2449EnumValue 2450Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC) 2451 2452EnumValue 2453Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE) 2454 2455fallocation-dce 2456Common Var(flag_allocation_dce) Init(1) Optimization 2457Tell DCE to remove unused C++ allocations. 2458 2459flive-range-shrinkage 2460Common Var(flag_live_range_shrinkage) Init(0) Optimization 2461Relief of register pressure through live range shrinkage. 2462 2463frename-registers 2464Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops) 2465Perform a register renaming optimization pass. 2466 2467fschedule-fusion 2468Common Var(flag_schedule_fusion) Init(2) Optimization 2469Perform a target dependent instruction fusion optimization pass. 2470 2471freorder-blocks 2472Common Var(flag_reorder_blocks) Optimization 2473Reorder basic blocks to improve code placement. 2474 2475freorder-blocks-algorithm= 2476Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization 2477-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm. 2478 2479Enum 2480Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs) 2481 2482EnumValue 2483Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE) 2484 2485EnumValue 2486Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC) 2487 2488freorder-blocks-and-partition 2489Common Var(flag_reorder_blocks_and_partition) Optimization 2490Reorder basic blocks and partition into hot and cold sections. 2491 2492freorder-functions 2493Common Var(flag_reorder_functions) Optimization 2494Reorder functions to improve code placement. 2495 2496frerun-cse-after-loop 2497Common Var(flag_rerun_cse_after_loop) Optimization 2498Add a common subexpression elimination pass after loop optimizations. 2499 2500frerun-loop-opt 2501Common Ignore 2502Does nothing. Preserved for backward compatibility. 2503 2504frounding-math 2505Common Var(flag_rounding_math) Optimization SetByCombined 2506Disable optimizations that assume default FP rounding behavior. 2507 2508fsched-interblock 2509Common Var(flag_schedule_interblock) Init(1) Optimization 2510Enable scheduling across basic blocks. 2511 2512fsched-pressure 2513Common Var(flag_sched_pressure) Init(0) Optimization 2514Enable register pressure sensitive insn scheduling. 2515 2516fsched-spec 2517Common Var(flag_schedule_speculative) Init(1) Optimization 2518Allow speculative motion of non-loads. 2519 2520fsched-spec-load 2521Common Var(flag_schedule_speculative_load) Optimization 2522Allow speculative motion of some loads. 2523 2524fsched-spec-load-dangerous 2525Common Var(flag_schedule_speculative_load_dangerous) Optimization 2526Allow speculative motion of more loads. 2527 2528fsched-verbose= 2529Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1) 2530-fsched-verbose=<number> Set the verbosity level of the scheduler. 2531 2532fsched2-use-superblocks 2533Common Var(flag_sched2_use_superblocks) Optimization 2534If scheduling post reload, do superblock scheduling. 2535 2536fsched2-use-traces 2537Common Ignore 2538Does nothing. Preserved for backward compatibility. 2539 2540fschedule-insns 2541Common Var(flag_schedule_insns) Optimization 2542Reschedule instructions before register allocation. 2543 2544fschedule-insns2 2545Common Var(flag_schedule_insns_after_reload) Optimization 2546Reschedule instructions after register allocation. 2547 2548; This flag should be on when a target implements non-trivial 2549; scheduling hooks, maybe saving some information for its own sake. 2550; On IA64, for example, this is used for correct bundling. 2551fselective-scheduling 2552Common Var(flag_selective_scheduling) Optimization 2553Schedule instructions using selective scheduling algorithm. 2554 2555fselective-scheduling2 2556Common Var(flag_selective_scheduling2) Optimization 2557Run selective scheduling after reload. 2558 2559fself-test= 2560Common Undocumented Joined Var(flag_self_test) 2561Run self-tests, using the given path to locate test files. 2562 2563fsel-sched-pipelining 2564Common Var(flag_sel_sched_pipelining) Init(0) Optimization 2565Perform software pipelining of inner loops during selective scheduling. 2566 2567fsel-sched-pipelining-outer-loops 2568Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization 2569Perform software pipelining of outer loops during selective scheduling. 2570 2571fsel-sched-reschedule-pipelined 2572Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization 2573Reschedule pipelined regions without pipelining. 2574 2575fsemantic-interposition 2576Common Var(flag_semantic_interposition) Init(1) Optimization 2577Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker. 2578 2579; sched_stalled_insns means that insns can be moved prematurely from the queue 2580; of stalled insns into the ready list. 2581fsched-stalled-insns 2582Common Var(flag_sched_stalled_insns) Optimization UInteger 2583Allow premature scheduling of queued insns. 2584 2585fsched-stalled-insns= 2586Common RejectNegative Joined UInteger Optimization 2587-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled. 2588 2589; sched_stalled_insns_dep controls how many recently scheduled cycles will 2590; be examined for a dependency on a stalled insn that is candidate for 2591; premature removal from the queue of stalled insns into the ready list (has 2592; an effect only if the flag 'sched_stalled_insns' is set). 2593fsched-stalled-insns-dep 2594Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger 2595Set dependence distance checking in premature scheduling of queued insns. 2596 2597fsched-stalled-insns-dep= 2598Common RejectNegative Joined UInteger Optimization 2599-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns. 2600 2601fsched-group-heuristic 2602Common Var(flag_sched_group_heuristic) Init(1) Optimization 2603Enable the group heuristic in the scheduler. 2604 2605fsched-critical-path-heuristic 2606Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization 2607Enable the critical path heuristic in the scheduler. 2608 2609fsched-spec-insn-heuristic 2610Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization 2611Enable the speculative instruction heuristic in the scheduler. 2612 2613fsched-rank-heuristic 2614Common Var(flag_sched_rank_heuristic) Init(1) Optimization 2615Enable the rank heuristic in the scheduler. 2616 2617fsched-last-insn-heuristic 2618Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization 2619Enable the last instruction heuristic in the scheduler. 2620 2621fsched-dep-count-heuristic 2622Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization 2623Enable the dependent count heuristic in the scheduler. 2624 2625fsection-anchors 2626Common Var(flag_section_anchors) Optimization 2627Access data in the same section from shared anchor points. 2628 2629fsee 2630Common Ignore 2631Does nothing. Preserved for backward compatibility. 2632 2633fzee 2634Common Ignore 2635Does nothing. Preserved for backward compatibility. 2636 2637free 2638Common Var(flag_ree) Init(0) Optimization 2639Turn on Redundant Extensions Elimination pass. 2640 2641fshow-column 2642Common Var(flag_show_column) Init(1) 2643Show column numbers in diagnostics, when available. Default on. 2644 2645fshrink-wrap 2646Common Var(flag_shrink_wrap) Optimization 2647Emit function prologues only before parts of the function that need it, 2648rather than at the top of the function. 2649 2650fshrink-wrap-separate 2651Common Var(flag_shrink_wrap_separate) Init(1) Optimization 2652Shrink-wrap parts of the prologue and epilogue separately. 2653 2654fsignaling-nans 2655Common Var(flag_signaling_nans) Optimization SetByCombined 2656Disable optimizations observable by IEEE signaling NaNs. 2657 2658fsigned-zeros 2659Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined 2660Disable floating point optimizations that ignore the IEEE signedness of zero. 2661 2662fsingle-precision-constant 2663Common Var(flag_single_precision_constant) Optimization 2664Convert floating point constants to single precision constants. 2665 2666fsplit-ivs-in-unroller 2667Common Var(flag_split_ivs_in_unroller) Init(1) Optimization 2668Split lifetimes of induction variables when loops are unrolled. 2669 2670fsplit-stack 2671Common Var(flag_split_stack) Init(-1) 2672Generate discontiguous stack frames. 2673 2674fsplit-wide-types 2675Common Var(flag_split_wide_types) Optimization 2676Split wide types into independent registers. 2677 2678fsplit-wide-types-early 2679Common Var(flag_split_wide_types_early) Optimization 2680Split wide types into independent registers earlier. 2681 2682fssa-backprop 2683Common Var(flag_ssa_backprop) Init(1) Optimization 2684Enable backward propagation of use properties at the SSA level. 2685 2686fssa-phiopt 2687Common Var(flag_ssa_phiopt) Optimization 2688Optimize conditional patterns using SSA PHI nodes. 2689 2690fstdarg-opt 2691Common Var(flag_stdarg_opt) Init(1) Optimization 2692Optimize amount of stdarg registers saved to stack at start of function. 2693 2694fvariable-expansion-in-unroller 2695Common Var(flag_variable_expansion_in_unroller) Optimization 2696Apply variable expansion when loops are unrolled. 2697 2698fstack-check= 2699Common RejectNegative Joined Optimization 2700-fstack-check=[no|generic|specific] Insert stack checking code into the program. 2701 2702fstack-check 2703Common Alias(fstack-check=, specific, no) 2704Insert stack checking code into the program. Same as -fstack-check=specific. 2705 2706fstack-clash-protection 2707Common Var(flag_stack_clash_protection) Optimization 2708Insert code to probe each page of stack space as it is allocated to protect 2709from stack-clash style attacks. 2710 2711fstack-limit 2712Common Var(common_deferred_options) Defer 2713 2714fstack-limit-register= 2715Common RejectNegative Joined Var(common_deferred_options) Defer 2716-fstack-limit-register=<register> Trap if the stack goes past <register>. 2717 2718fstack-limit-symbol= 2719Common RejectNegative Joined Var(common_deferred_options) Defer 2720-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>. 2721 2722fstack-protector 2723Common Var(flag_stack_protect, 1) Init(-1) Optimization 2724Use propolice as a stack protection method. 2725 2726fstack-protector-all 2727Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization 2728Use a stack protection method for every function. 2729 2730fstack-protector-strong 2731Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization 2732Use a smart stack protection method for certain functions. 2733 2734fstack-protector-explicit 2735Common RejectNegative Var(flag_stack_protect, 4) Optimization 2736Use stack protection method only for functions with the stack_protect attribute. 2737 2738fstack-usage 2739Common RejectNegative Var(flag_stack_usage) 2740Output stack usage information on a per-function basis. 2741 2742fstrength-reduce 2743Common Ignore 2744Does nothing. Preserved for backward compatibility. 2745 2746; Nonzero if we should do (language-dependent) alias analysis. 2747; Typically, this analysis will assume that expressions of certain 2748; types do not alias expressions of certain other types. Only used 2749; if alias analysis (in general) is enabled. 2750fstrict-aliasing 2751Common Var(flag_strict_aliasing) Optimization 2752Assume strict aliasing rules apply. 2753 2754fstrict-overflow 2755Common 2756Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer. 2757 2758fsync-libcalls 2759Common Var(flag_sync_libcalls) Init(1) 2760Implement __atomic operations via libcalls to legacy __sync functions. 2761 2762fsyntax-only 2763Common Var(flag_syntax_only) 2764Check for syntax errors, then stop. 2765 2766ftest-coverage 2767Common Var(flag_test_coverage) 2768Create data files needed by \"gcov\". 2769 2770fthread-jumps 2771Common Var(flag_thread_jumps) Optimization 2772Perform jump threading optimizations. 2773 2774ftime-report 2775Common Var(time_report) 2776Report the time taken by each compiler pass. 2777 2778ftime-report-details 2779Common Var(time_report_details) 2780Record times taken by sub-phases separately. 2781 2782ftls-model= 2783Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC) 2784-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model. 2785 2786Enum 2787Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs) 2788 2789EnumValue 2790Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC) 2791 2792EnumValue 2793Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC) 2794 2795EnumValue 2796Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC) 2797 2798EnumValue 2799Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC) 2800 2801ftoplevel-reorder 2802Common Var(flag_toplevel_reorder) Init(2) Optimization 2803Reorder top level functions, variables, and asms. 2804 2805ftracer 2806Common Var(flag_tracer) Optimization 2807Perform superblock formation via tail duplication. 2808 2809ftrampolines 2810Common Var(flag_trampolines) Init(0) 2811For targets that normally need trampolines for nested functions, always 2812generate them instead of using descriptors. 2813 2814; Zero means that floating-point math operations cannot generate a 2815; (user-visible) trap. This is the case, for example, in nonstop 2816; IEEE 754 arithmetic. 2817ftrapping-math 2818Common Var(flag_trapping_math) Init(1) Optimization SetByCombined 2819Assume floating-point operations can trap. 2820 2821ftrapv 2822Common Var(flag_trapv) Optimization 2823Trap for signed overflow in addition, subtraction and multiplication. 2824 2825ftree-ccp 2826Common Var(flag_tree_ccp) Optimization 2827Enable SSA-CCP optimization on trees. 2828 2829ftree-bit-ccp 2830Common Var(flag_tree_bit_ccp) Optimization 2831Enable SSA-BIT-CCP optimization on trees. 2832 2833ftree-store-ccp 2834Common Ignore 2835Does nothing. Preserved for backward compatibility. 2836 2837ftree-ch 2838Common Var(flag_tree_ch) Optimization 2839Enable loop header copying on trees. 2840 2841ftree-coalesce-inlined-vars 2842Common Ignore RejectNegative 2843Does nothing. Preserved for backward compatibility. 2844 2845ftree-coalesce-vars 2846Common Var(flag_tree_coalesce_vars) Optimization 2847Enable SSA coalescing of user variables. 2848 2849ftree-copyrename 2850Common Ignore 2851Does nothing. Preserved for backward compatibility. 2852 2853ftree-copy-prop 2854Common Var(flag_tree_copy_prop) Optimization 2855Enable copy propagation on trees. 2856 2857ftree-store-copy-prop 2858Common Ignore 2859Does nothing. Preserved for backward compatibility. 2860 2861ftree-cselim 2862Common Var(flag_tree_cselim) Optimization 2863Transform condition stores into unconditional ones. 2864 2865ftree-switch-conversion 2866Common Var(flag_tree_switch_conversion) Optimization 2867Perform conversions of switch initializations. 2868 2869ftree-dce 2870Common Var(flag_tree_dce) Optimization 2871Enable SSA dead code elimination optimization on trees. 2872 2873ftree-dominator-opts 2874Common Var(flag_tree_dom) Optimization 2875Enable dominator optimizations. 2876 2877ftree-tail-merge 2878Common Var(flag_tree_tail_merge) Optimization 2879Enable tail merging on trees. 2880 2881ftree-dse 2882Common Var(flag_tree_dse) Optimization 2883Enable dead store elimination. 2884 2885ftree-forwprop 2886Common Var(flag_tree_forwprop) Init(1) Optimization 2887Enable forward propagation on trees. 2888 2889ftree-fre 2890Common Var(flag_tree_fre) Optimization 2891Enable Full Redundancy Elimination (FRE) on trees. 2892 2893foptimize-strlen 2894Common Var(flag_optimize_strlen) Optimization 2895Enable string length optimizations on trees. 2896 2897fisolate-erroneous-paths-dereference 2898Common Var(flag_isolate_erroneous_paths_dereference) Optimization 2899Detect paths that trigger erroneous or undefined behavior due to 2900dereferencing a null pointer. Isolate those paths from the main control 2901flow and turn the statement with erroneous or undefined behavior into a trap. 2902 2903fisolate-erroneous-paths-attribute 2904Common Var(flag_isolate_erroneous_paths_attribute) Optimization 2905Detect paths that trigger erroneous or undefined behavior due to a null value 2906being used in a way forbidden by a returns_nonnull or nonnull 2907attribute. Isolate those paths from the main control flow and turn the 2908statement with erroneous or undefined behavior into a trap. 2909 2910ftree-loop-distribution 2911Common Var(flag_tree_loop_distribution) Optimization 2912Enable loop distribution on trees. 2913 2914ftree-loop-distribute-patterns 2915Common Var(flag_tree_loop_distribute_patterns) Optimization 2916Enable loop distribution for patterns transformed into a library call. 2917 2918ftree-loop-im 2919Common Var(flag_tree_loop_im) Init(1) Optimization 2920Enable loop invariant motion on trees. 2921 2922ftree-loop-linear 2923Common Alias(floop-nest-optimize) 2924Enable loop nest transforms. Same as -floop-nest-optimize. 2925 2926ftree-loop-ivcanon 2927Common Var(flag_tree_loop_ivcanon) Init(1) Optimization 2928Create canonical induction variables in loops. 2929 2930ftree-loop-optimize 2931Common Var(flag_tree_loop_optimize) Init(1) Optimization 2932Enable loop optimizations on tree level. 2933 2934ftree-parallelize-loops= 2935Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization 2936-ftree-parallelize-loops=<number> Enable automatic parallelization of loops. 2937 2938ftree-phiprop 2939Common Var(flag_tree_phiprop) Init(1) Optimization 2940Enable hoisting loads from conditional pointers. 2941 2942ftree-pre 2943Common Var(flag_tree_pre) Optimization 2944Enable SSA-PRE optimization on trees. 2945 2946ftree-partial-pre 2947Common Var(flag_tree_partial_pre) Optimization 2948In SSA-PRE optimization on trees, enable partial-partial redundancy elimination. 2949 2950ftree-pta 2951Common Var(flag_tree_pta) Optimization 2952Perform function-local points-to analysis on trees. 2953 2954ftree-reassoc 2955Common Var(flag_tree_reassoc) Init(1) Optimization 2956Enable reassociation on tree level. 2957 2958ftree-salias 2959Common Ignore 2960Does nothing. Preserved for backward compatibility. 2961 2962ftree-sink 2963Common Var(flag_tree_sink) Optimization 2964Enable SSA code sinking on trees. 2965 2966ftree-slsr 2967Common Var(flag_tree_slsr) Optimization 2968Perform straight-line strength reduction. 2969 2970ftree-sra 2971Common Var(flag_tree_sra) Optimization 2972Perform scalar replacement of aggregates. 2973 2974ftree-ter 2975Common Var(flag_tree_ter) Optimization 2976Replace temporary expressions in the SSA->normal pass. 2977 2978ftree-lrs 2979Common Var(flag_tree_live_range_split) Optimization 2980Perform live range splitting during the SSA->normal pass. 2981 2982ftree-vrp 2983Common Var(flag_tree_vrp) Init(0) Optimization 2984Perform Value Range Propagation on trees. 2985 2986fsplit-paths 2987Common Var(flag_split_paths) Init(0) Optimization 2988Split paths leading to loop backedges. 2989 2990funconstrained-commons 2991Common Var(flag_unconstrained_commons) Optimization 2992Assume common declarations may be overridden with ones with a larger 2993trailing array. 2994 2995funit-at-a-time 2996Common Var(flag_unit_at_a_time) Init(1) 2997Compile whole compilation unit at a time. 2998 2999funroll-loops 3000Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops) 3001Perform loop unrolling when iteration count is known. 3002 3003funroll-all-loops 3004Common Var(flag_unroll_all_loops) Optimization 3005Perform loop unrolling for all loops. 3006 3007funroll-completely-grow-size 3008Undocumented Var(flag_cunroll_grow_size) Optimization 3009; Internal undocumented flag, allow size growth during complete unrolling 3010 3011; Nonzero means that loop optimizer may assume that the induction variables 3012; that control loops do not overflow and that the loops with nontrivial 3013; exit condition are not infinite 3014funsafe-loop-optimizations 3015Common Ignore 3016Does nothing. Preserved for backward compatibility. 3017 3018fassociative-math 3019Common Var(flag_associative_math) SetByCombined Optimization 3020Allow optimization for floating-point arithmetic which may change the 3021result of the operation due to rounding. 3022 3023freciprocal-math 3024Common Var(flag_reciprocal_math) SetByCombined Optimization 3025Same as -fassociative-math for expressions which include division. 3026 3027; Nonzero means that unsafe floating-point math optimizations are allowed 3028; for the sake of speed. IEEE compliance is not guaranteed, and operations 3029; are allowed to assume that their arguments and results are "normal" 3030; (e.g., nonnegative for SQRT). 3031funsafe-math-optimizations 3032Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined 3033Allow math optimizations that may violate IEEE or ISO standards. 3034 3035funswitch-loops 3036Common Var(flag_unswitch_loops) Optimization 3037Perform loop unswitching. 3038 3039fsplit-loops 3040Common Var(flag_split_loops) Optimization 3041Perform loop splitting. 3042 3043fversion-loops-for-strides 3044Common Var(flag_version_loops_for_strides) Optimization 3045Version loops based on whether indices have a stride of one. 3046 3047funwind-tables 3048Common Var(flag_unwind_tables) Optimization 3049Just generate unwind tables for exception handling. 3050 3051fuse-ld=bfd 3052Common Driver Negative(fuse-ld=gold) 3053Use the bfd linker instead of the default linker. 3054 3055fuse-ld=gold 3056Common Driver Negative(fuse-ld=bfd) 3057Use the gold linker instead of the default linker. 3058 3059fuse-ld=lld 3060Common Driver Negative(fuse-ld=lld) 3061Use the lld LLVM linker instead of the default linker. 3062 3063fuse-ld=mold 3064Common Driver Negative(fuse-ld=mold) 3065Use the Modern linker (MOLD) linker instead of the default linker. 3066 3067fuse-linker-plugin 3068Common Undocumented Var(flag_use_linker_plugin) 3069 3070; Positive if we should track variables, negative if we should run 3071; the var-tracking pass only to discard debug annotations, zero if 3072; we're not to run it. 3073fvar-tracking 3074Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit) 3075Perform variable tracking. 3076 3077; Positive if we should track variables at assignments, negative if 3078; we should run the var-tracking pass only to discard debug 3079; annotations. 3080fvar-tracking-assignments 3081Common Var(flag_var_tracking_assignments) PerFunction 3082Perform variable tracking by annotating assignments. 3083 3084; Nonzero if we should toggle flag_var_tracking_assignments after 3085; processing options and computing its default. */ 3086fvar-tracking-assignments-toggle 3087Common Var(flag_var_tracking_assignments_toggle) PerFunction 3088Toggle -fvar-tracking-assignments. 3089 3090; Positive if we should track uninitialized variables, negative if 3091; we should run the var-tracking pass only to discard debug 3092; annotations. 3093fvar-tracking-uninit 3094Common Var(flag_var_tracking_uninit) PerFunction 3095Perform variable tracking and also tag variables that are uninitialized. 3096 3097; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize. 3098ftree-vectorize 3099Common Var(flag_tree_vectorize) Optimization 3100Enable vectorization on trees. 3101 3102ftree-vectorizer-verbose= 3103Common Joined RejectNegative Ignore 3104Does nothing. Preserved for backward compatibility. 3105 3106ftree-loop-vectorize 3107Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize) 3108Enable loop vectorization on trees. 3109 3110ftree-slp-vectorize 3111Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize) 3112Enable basic block vectorization (SLP) on trees. 3113 3114fvect-cost-model= 3115Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization 3116-fvect-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the cost model for vectorization. 3117 3118fsimd-cost-model= 3119Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization 3120-fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the vectorization cost model for code marked with a simd directive. 3121 3122Enum 3123Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs) 3124 3125EnumValue 3126Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED) 3127 3128EnumValue 3129Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC) 3130 3131EnumValue 3132Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP) 3133 3134EnumValue 3135Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP) 3136 3137fvect-cost-model 3138Common Alias(fvect-cost-model=,dynamic,unlimited) 3139Enables the dynamic vectorizer cost model. Preserved for backward compatibility. 3140 3141ftree-vect-loop-version 3142Common Ignore 3143Does nothing. Preserved for backward compatibility. 3144 3145ftree-scev-cprop 3146Common Var(flag_tree_scev_cprop) Init(1) Optimization 3147Enable copy propagation of scalar-evolution information. 3148 3149ftrivial-auto-var-init= 3150Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization 3151-ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to automatic variables. 3152 3153Enum 3154Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs) 3155 3156EnumValue 3157Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED) 3158 3159EnumValue 3160Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN) 3161 3162EnumValue 3163Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO) 3164 3165; -fverbose-asm causes extra commentary information to be produced in 3166; the generated assembly code (to make it more readable). This option 3167; is generally only of use to those who actually need to read the 3168; generated assembly code (perhaps while debugging the compiler itself). 3169; -fno-verbose-asm, the default, causes the extra information 3170; to not be added and is useful when comparing two assembler files. 3171fverbose-asm 3172Common Var(flag_verbose_asm) 3173Add extra commentary to assembler output. 3174 3175fvisibility= 3176Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT) 3177-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility. 3178 3179Enum 3180Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs) 3181 3182EnumValue 3183Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT) 3184 3185EnumValue 3186Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL) 3187 3188EnumValue 3189Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN) 3190 3191EnumValue 3192Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED) 3193 3194fvtable-verify= 3195Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY) 3196Validate vtable pointers before using them. 3197 3198Enum 3199Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs) 3200 3201EnumValue 3202Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY) 3203 3204EnumValue 3205Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY) 3206 3207EnumValue 3208Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY) 3209 3210fvtv-counts 3211Common Var(flag_vtv_counts) 3212Output vtable verification counters. 3213 3214fvtv-debug 3215Common Var(flag_vtv_debug) 3216Output vtable verification pointer sets information. 3217 3218fvpt 3219Common Var(flag_value_profile_transformations) Optimization 3220Use expression value profiles in optimizations. 3221 3222fweb 3223Common Var(flag_web) Optimization EnabledBy(funroll-loops) 3224Construct webs and split unrelated uses of single variable. 3225 3226ftree-builtin-call-dce 3227Common Var(flag_tree_builtin_call_dce) Init(0) Optimization 3228Enable conditional dead code elimination for builtin calls. 3229 3230fwhole-program 3231Common Var(flag_whole_program) Init(0) 3232Perform whole program optimizations. 3233 3234fwrapv-pointer 3235Common Var(flag_wrapv_pointer) Optimization 3236Assume pointer overflow wraps around. 3237 3238fwrapv 3239Common Var(flag_wrapv) Optimization 3240Assume signed arithmetic overflow wraps around. 3241 3242fzero-initialized-in-bss 3243Common Var(flag_zero_initialized_in_bss) Init(1) 3244Put zero initialized data in the bss section. 3245 3246fzero-call-used-regs= 3247Common RejectNegative Joined 3248Clear call-used registers upon function return. 3249 3250g 3251Common Driver RejectNegative JoinedOrMissing 3252Generate debug information in default format. 3253 3254gas-loc-support 3255Common Driver Var(dwarf2out_as_loc_support) 3256Assume assembler support for (DWARF2+) .loc directives. 3257 3258gas-locview-support 3259Common Driver Var(dwarf2out_as_locview_support) 3260Assume assembler support for view in (DWARF2+) .loc directives. 3261 3262gcoff 3263Common Driver WarnRemoved 3264Does nothing. Preserved for backward compatibility. 3265 3266gcoff1 3267Common Driver WarnRemoved 3268Does nothing. Preserved for backward compatibility. 3269 3270gcoff2 3271Common Driver WarnRemoved 3272Does nothing. Preserved for backward compatibility. 3273 3274gcoff3 3275Common Driver WarnRemoved 3276Does nothing. Preserved for backward compatibility. 3277 3278gcolumn-info 3279Common Driver Var(debug_column_info,1) Init(1) 3280Record DW_AT_decl_column and DW_AT_call_column in DWARF. 3281 3282; The CTF generation process feeds off DWARF dies. This option implicitly 3283; updates the debug_info_level to DINFO_LEVEL_NORMAL. 3284gctf 3285Common Driver RejectNegative JoinedOrMissing 3286Generate CTF debug information at default level. 3287 3288gbtf 3289Common Driver RejectNegative JoinedOrMissing 3290Generate BTF debug information at default level. 3291 3292gdwarf 3293Common Driver JoinedOrMissing Negative(gdwarf-) 3294Generate debug information in default version of DWARF format. 3295 3296; XXX NetBSD ctf tools can't handle version 5 yet. 3297gdwarf- 3298Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs) 3299Generate debug information in DWARF v2 (or later) format. 3300 3301gdwarf32 3302Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative 3303Use 32-bit DWARF format when emitting DWARF debug information. 3304 3305gdwarf64 3306Common Driver Var(dwarf_offset_size,8) RejectNegative 3307Use 64-bit DWARF format when emitting DWARF debug information. 3308 3309ggdb 3310Common Driver JoinedOrMissing 3311Generate debug information in default extended format. 3312 3313ginline-points 3314Common Driver Var(debug_inline_points) 3315Generate extended entry point information for inlined functions. 3316 3317ginternal-reset-location-views 3318Common Driver Var(debug_internal_reset_location_views) Init(2) 3319Compute locview reset points based on insn length estimates. 3320 3321gno- 3322RejectNegative Joined Undocumented 3323; Catch the gno- prefix, so it doesn't backtrack to g<level>. 3324 3325gno-pubnames 3326Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1) 3327Don't generate DWARF pubnames and pubtypes sections. 3328 3329gpubnames 3330Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1) 3331Generate DWARF pubnames and pubtypes sections. 3332 3333ggnu-pubnames 3334Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2) 3335Generate DWARF pubnames and pubtypes sections with GNU extensions. 3336 3337grecord-gcc-switches 3338Common Driver Var(dwarf_record_gcc_switches) Init(1) 3339Record gcc command line switches in DWARF DW_AT_producer. 3340 3341gsplit-dwarf 3342Common Driver Var(dwarf_split_debug_info) Init(0) 3343Generate debug information in separate .dwo files. 3344 3345gstabs 3346Common Driver JoinedOrMissing Negative(gstabs+) 3347Generate debug information in STABS format. 3348 3349gstabs+ 3350Common Driver JoinedOrMissing Negative(gvms) 3351Generate debug information in extended STABS format. 3352 3353gstatement-frontiers 3354Common Driver Var(debug_nonbind_markers_p) PerFunction 3355Emit progressive recommended breakpoint locations. 3356 3357gstrict-dwarf 3358Common Driver Var(dwarf_strict) Init(0) 3359Don't emit DWARF additions beyond selected version. 3360 3361gdescribe-dies 3362Common Driver Var(flag_describe_dies) Init(0) 3363Add description attributes to some DWARF DIEs that have no name attribute. 3364 3365gtoggle 3366Common Driver Var(flag_gtoggle) 3367Toggle debug information generation. 3368 3369gvariable-location-views 3370Common Driver Var(debug_variable_location_views, 1) 3371Augment variable location lists with progressive views. 3372 3373gvariable-location-views=incompat5 3374Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2) 3375 3376gvms 3377Common Driver JoinedOrMissing Negative(gxcoff) 3378Generate debug information in VMS format. 3379 3380gxcoff 3381Common Driver JoinedOrMissing Negative(gxcoff+) 3382Generate debug information in XCOFF format. 3383 3384gxcoff+ 3385Common Driver JoinedOrMissing Negative(gdwarf) 3386Generate debug information in extended XCOFF format. 3387 3388Enum 3389Name(compressed_debug_sections) Type(int) 3390 3391; Since -gz= is completely handled in specs, the values aren't used and we 3392; assign arbitrary constants. 3393EnumValue 3394Enum(compressed_debug_sections) String(none) Value(0) 3395 3396EnumValue 3397Enum(compressed_debug_sections) String(zlib) Value(1) 3398 3399EnumValue 3400Enum(compressed_debug_sections) String(zlib-gnu) Value(2) 3401 3402gz 3403Common Driver 3404Generate compressed debug sections. 3405 3406gz= 3407Common Driver RejectNegative Joined Enum(compressed_debug_sections) 3408-gz=<format> Generate compressed debug sections in format <format>. 3409 3410h 3411Driver Joined Separate 3412 3413iplugindir= 3414Common Joined Var(plugindir_string) Init(0) 3415-iplugindir=<dir> Set <dir> to be the default plugin directory. 3416 3417imultiarch 3418Common Joined Separate RejectDriver Var(imultiarch) Init(0) 3419-imultiarch <dir> Set <dir> to be the multiarch include subdirectory. 3420 3421l 3422Driver Joined Separate 3423 3424n 3425Driver 3426 3427no-canonical-prefixes 3428Driver 3429 3430nodefaultlibs 3431Driver 3432 3433nostartfiles 3434Driver 3435 3436nolibc 3437Driver 3438 3439nostdlib 3440Driver 3441 3442o 3443Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs) 3444-o <file> Place output into <file>. 3445 3446p 3447Common Var(profile_flag) 3448Enable function profiling. 3449 3450pass-exit-codes 3451Driver Var(pass_exit_codes) 3452 3453pedantic 3454Common Alias(Wpedantic) 3455 3456pedantic-errors 3457Common Var(flag_pedantic_errors) 3458Like -pedantic but issue them as errors. 3459 3460pg 3461Driver 3462 3463pipe 3464Driver Var(use_pipes) 3465 3466print-file-name= 3467Driver JoinedOrMissing Var(print_file_name) 3468 3469print-libgcc-file-name 3470Driver 3471 3472print-multi-directory 3473Driver Var(print_multi_directory) 3474 3475print-multi-lib 3476Driver Var(print_multi_lib) 3477 3478print-multi-os-directory 3479Driver Var(print_multi_os_directory) 3480 3481print-multiarch 3482Driver Var(print_multiarch) 3483 3484print-prog-name= 3485Driver JoinedOrMissing Var(print_prog_name) 3486 3487print-search-dirs 3488Driver Var(print_search_dirs) 3489 3490print-sysroot 3491Driver Var(print_sysroot) 3492 3493print-sysroot-headers-suffix 3494Driver Var(print_sysroot_headers_suffix) 3495 3496quiet 3497Common Var(quiet_flag) RejectDriver 3498Do not display functions compiled or elapsed time. 3499 3500r 3501Driver 3502 3503s 3504Driver 3505 3506save-temps 3507Driver 3508 3509save-temps= 3510Driver Joined 3511 3512t 3513Driver 3514 3515time 3516Driver Var(report_times) 3517 3518time= 3519Driver JoinedOrMissing 3520 3521u 3522Driver Joined Separate 3523 3524undef 3525Driver 3526; C option, but driver must not handle as "-u ndef". 3527 3528v 3529Common Driver Var(verbose_flag) 3530Enable verbose output. 3531 3532version 3533Common Var(version_flag) RejectDriver 3534Display the compiler's version. 3535 3536w 3537Common Var(inhibit_warnings) 3538Suppress warnings. 3539 3540wrapper 3541Driver Separate Var(wrapper_string) 3542 3543x 3544Driver Joined Separate 3545 3546shared 3547Driver RejectNegative Negative(static-pie) 3548Create a shared library. 3549 3550shared-libgcc 3551Driver 3552 3553specs 3554Driver Separate Alias(specs=) 3555 3556specs= 3557Driver Joined 3558 3559static 3560Driver 3561 3562static-libgcc 3563Driver 3564 3565static-libgfortran 3566Driver 3567; Documented for Fortran, but always accepted by driver. 3568 3569static-libphobos 3570Driver 3571; Documented for D, but always accepted by driver. 3572 3573static-libstdc++ 3574Driver 3575 3576static-libgo 3577Driver 3578; Documented for Go, but always accepted by driver. 3579 3580static-libasan 3581Driver 3582 3583static-libhwasan 3584Driver 3585 3586static-libtsan 3587Driver 3588 3589static-liblsan 3590Driver 3591 3592static-libubsan 3593Driver 3594 3595symbolic 3596Driver 3597 3598no-pie 3599Driver RejectNegative Negative(shared) 3600Don't create a dynamically linked position independent executable. 3601 3602pie 3603Driver RejectNegative Negative(no-pie) 3604Create a dynamically linked position independent executable. 3605 3606static-pie 3607Driver RejectNegative Negative(pie) 3608Create a static position independent executable. 3609 3610z 3611Driver Joined Separate 3612 3613fipa-ra 3614Common Var(flag_ipa_ra) Optimization 3615Use caller save register across calls if possible. 3616 3617; This comment is to ensure we retain the blank line above. 3618