1; Options for the C, ObjC, C++ and ObjC++ front ends. 2; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 3; 2011, 2012 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 for a description of this file's format. 22 23; Please try to keep this file in ASCII collating order. 24 25Language 26C 27 28Language 29ObjC 30 31Language 32C++ 33 34Language 35ObjC++ 36 37-all-warnings 38C ObjC C++ ObjC++ Warning Alias(Wall) 39 40-ansi 41C ObjC C++ ObjC++ Alias(ansi) 42 43-assert 44C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs) 45 46-assert= 47C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs) 48 49-comments 50C ObjC C++ ObjC++ Alias(C) 51 52-comments-in-macros 53C ObjC C++ ObjC++ Alias(CC) 54 55-define-macro 56C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs) 57 58-define-macro= 59C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs) 60 61-dependencies 62C ObjC C++ ObjC++ Alias(M) 63 64-dump 65C ObjC C++ ObjC++ Separate Alias(d) 66 67-dump= 68C ObjC C++ ObjC++ Joined Alias(d) 69 70-imacros 71C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs) 72 73-imacros= 74C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs) 75 76-include 77C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs) 78 79-include= 80C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs) 81 82-include-barrier 83C ObjC C++ ObjC++ Alias(I, -) 84 85-include-directory 86C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs) 87 88-include-directory= 89C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs) 90 91-include-directory-after 92C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs) 93 94-include-directory-after= 95C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs) 96 97-include-prefix 98C ObjC C++ ObjC++ Separate Alias(iprefix) 99 100-include-prefix= 101C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix) 102 103-include-with-prefix 104C ObjC C++ ObjC++ Separate Alias(iwithprefix) 105 106-include-with-prefix= 107C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix) 108 109-include-with-prefix-after 110C ObjC C++ ObjC++ Separate Alias(iwithprefix) 111 112-include-with-prefix-after= 113C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix) 114 115-include-with-prefix-before 116C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore) 117 118-include-with-prefix-before= 119C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore) 120 121-no-integrated-cpp 122Driver Alias(no-integrated-cpp) 123 124-no-line-commands 125C ObjC C++ ObjC++ Alias(P) 126 127-no-standard-includes 128C ObjC C++ ObjC++ Alias(nostdinc) 129 130-no-warnings 131C ObjC C++ ObjC++ Alias(w) 132 133-output 134C ObjC C++ ObjC++ Separate Alias(o) 135 136-output= 137C ObjC C++ ObjC++ Joined Alias(o) 138 139-output-pch= 140C ObjC C++ ObjC++ Joined Separate 141 142-pedantic 143C ObjC C++ ObjC++ Alias(pedantic) 144 145-pedantic-errors 146C ObjC C++ ObjC++ Alias(pedantic-errors) 147 148-preprocess 149C ObjC C++ ObjC++ Undocumented Alias(E) 150 151-print-missing-file-dependencies 152C ObjC C++ ObjC++ Alias(MG) 153 154-trace-includes 155C ObjC C++ ObjC++ Alias(H) 156 157-traditional 158Driver Alias(traditional) 159 160-traditional-cpp 161C ObjC C++ ObjC++ Alias(traditional-cpp) 162 163-trigraphs 164C ObjC C++ ObjC++ Alias(trigraphs) 165 166-undefine-macro 167C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs) 168 169-undefine-macro= 170C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs) 171 172-user-dependencies 173C ObjC C++ ObjC++ Alias(MM) 174 175-verbose 176Common C ObjC C++ ObjC++ Alias(v) 177 178-write-dependencies 179C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs) 180 181-write-user-dependencies 182C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs) 183 184A 185C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs) 186-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question> 187 188C 189C ObjC C++ ObjC++ 190Do not discard comments 191 192CC 193C ObjC C++ ObjC++ 194Do not discard comments in macro expansions 195 196D 197C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs) 198-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1 199 200E 201C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only) 202 203F 204Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 205-F <dir> Add <dir> to the end of the main framework include path 206 207H 208C ObjC C++ ObjC++ 209Print the name of header files as they are used 210 211I 212C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 213-I <dir> Add <dir> to the end of the main include path 214 215M 216C ObjC C++ ObjC++ 217Generate make dependencies 218 219MD 220C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) 221Generate make dependencies and compile 222 223MF 224C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) 225-MF <file> Write dependency output to the given file 226 227MG 228C ObjC C++ ObjC++ 229Treat missing header files as generated files 230 231MM 232C ObjC C++ ObjC++ 233Like -M but ignore system header files 234 235MMD 236C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) 237Like -MD but ignore system header files 238 239MP 240C ObjC C++ ObjC++ 241Generate phony targets for all headers 242 243MQ 244C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs) 245-MQ <target> Add a MAKE-quoted target 246 247MT 248C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs) 249-MT <target> Add an unquoted target 250 251P 252C ObjC C++ ObjC++ 253Do not generate #line directives 254 255U 256C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs) 257-U<macro> Undefine <macro> 258 259Wabi 260C ObjC C++ ObjC++ LTO Var(warn_abi) Warning 261Warn about things that will change when compiling with an ABI-compliant compiler 262 263Wpsabi 264C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented 265 266Waddress 267C ObjC C++ ObjC++ Var(warn_address) Warning 268Warn about suspicious uses of memory addresses 269 270Wall 271C ObjC C++ ObjC++ Warning 272Enable most warning messages 273 274Wassign-intercept 275ObjC ObjC++ Var(warn_assign_intercept) Warning 276Warn whenever an Objective-C assignment is being intercepted by the garbage collector 277 278Wbad-function-cast 279C ObjC Var(warn_bad_function_cast) Warning 280Warn about casting functions to incompatible types 281 282Wbuiltin-macro-redefined 283C ObjC C++ ObjC++ Warning 284Warn when a built-in preprocessor macro is undefined or redefined 285 286Wc++-compat 287C ObjC Var(warn_cxx_compat) Warning 288Warn about C constructs that are not in the common subset of C and C++ 289 290Wc++0x-compat 291C++ ObjC++ Var(warn_cxx0x_compat) Warning 292Deprecated in favor of -Wc++11-compat 293 294Wc++11-compat 295C++ ObjC++ Warning Alias(Wc++0x-compat) 296Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011 297 298Wcast-qual 299C ObjC C++ ObjC++ Var(warn_cast_qual) Warning 300Warn about casts which discard qualifiers 301 302Wchar-subscripts 303C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning 304Warn about subscripts whose type is \"char\" 305 306Wclobbered 307C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning 308Warn about variables that might be changed by \"longjmp\" or \"vfork\" 309 310Wcomment 311C ObjC C++ ObjC++ Warning 312Warn about possibly nested block comments, and C++ comments spanning more than one physical line 313 314Wcomments 315C ObjC C++ ObjC++ Warning Alias(Wcomment) 316Synonym for -Wcomment 317 318Wconversion 319C ObjC C++ ObjC++ Var(warn_conversion) Warning 320Warn for implicit type conversions that may change a value 321 322Wconversion-null 323C++ ObjC++ Var(warn_conversion_null) Init(1) Warning 324Warn for converting NULL from/to a non-pointer type 325 326Wsign-conversion 327C ObjC C++ ObjC++ Var(warn_sign_conversion) Init(-1) 328Warn for implicit type conversions between signed and unsigned integers 329 330Wctor-dtor-privacy 331C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning 332Warn when all constructors and destructors are private 333 334Wdeclaration-after-statement 335C ObjC Var(warn_declaration_after_statement) Warning 336Warn when a declaration is found after a statement 337 338Wdelete-non-virtual-dtor 339C++ ObjC++ Var(warn_delnonvdtor) Warning 340Warn about deleting polymorphic objects with non-virtual destructors 341 342Wdeprecated 343C C++ ObjC ObjC++ Var(warn_deprecated) Init(1) Warning 344Warn if a deprecated compiler feature, class, method, or field is used 345 346Wdiv-by-zero 347C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning 348Warn about compile-time integer division by zero 349 350Weffc++ 351C++ ObjC++ Var(warn_ecpp) Warning 352Warn about violations of Effective C++ style rules 353 354Wempty-body 355C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning 356Warn about an empty body in an if or else statement 357 358Wendif-labels 359C ObjC C++ ObjC++ Warning 360Warn about stray tokens after #elif and #endif 361 362Wenum-compare 363C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning 364Warn about comparison of different enum types 365 366Werror 367C ObjC C++ ObjC++ 368; Documented in common.opt 369 370Werror-implicit-function-declaration 371C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration) 372This switch is deprecated; use -Werror=implicit-function-declaration instead 373 374Wfloat-equal 375C ObjC C++ ObjC++ Var(warn_float_equal) Warning 376Warn if testing floating point numbers for equality 377 378Wformat 379C ObjC C++ ObjC++ Warning 380Warn about printf/scanf/strftime/strfmon format string anomalies 381 382Wformat-extra-args 383C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning 384Warn if passing too many arguments to a function for its format string 385 386Wformat-nonliteral 387C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning 388Warn about format strings that are not literals 389 390Wformat-contains-nul 391C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning 392Warn about format strings that contain NUL bytes 393 394Wformat-security 395C ObjC C++ ObjC++ Var(warn_format_security) Warning 396Warn about possible security problems with format functions 397 398Wformat-y2k 399C ObjC C++ ObjC++ Var(warn_format_y2k) Warning 400Warn about strftime formats yielding 2-digit years 401 402Wformat-zero-length 403C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning 404Warn about zero-length formats 405 406Wformat= 407C ObjC C++ ObjC++ Joined Warning 408 409Wignored-qualifiers 410C C++ Var(warn_ignored_qualifiers) Init(-1) Warning 411Warn whenever type qualifiers are ignored. 412 413Winit-self 414C ObjC C++ ObjC++ Var(warn_init_self) Warning 415Warn about variables which are initialized to themselves 416 417Wimplicit 418C ObjC Var(warn_implicit) Init(-1) Warning 419Warn about implicit declarations 420 421Wdouble-promotion 422C ObjC C++ ObjC++ Var(warn_double_promotion) Warning 423Warn about implicit conversions from \"float\" to \"double\" 424 425Wimplicit-function-declaration 426C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning 427Warn about implicit function declarations 428 429Wimplicit-int 430C ObjC Var(warn_implicit_int) Init(-1) Warning 431Warn when a declaration does not specify a type 432 433Wimport 434C ObjC C++ ObjC++ Undocumented Ignore 435 436Wint-to-pointer-cast 437C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning 438Warn when there is a cast to a pointer from an integer of a different size 439 440Winvalid-offsetof 441C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning 442Warn about invalid uses of the \"offsetof\" macro 443 444Winvalid-pch 445C ObjC C++ ObjC++ Warning 446Warn about PCH files that are found but not used 447 448Wjump-misses-init 449C ObjC Var(warn_jump_misses_init) Init(-1) Warning 450Warn when a jump misses a variable initialization 451 452Wlogical-op 453C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning 454Warn when a logical operator is suspiciously always evaluating to true or false 455 456Wlong-long 457C ObjC C++ ObjC++ Var(warn_long_long) Init(-1) Warning 458Do not warn about using \"long long\" when -pedantic 459 460Wmain 461C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning 462Warn about suspicious declarations of \"main\" 463 464Wmissing-braces 465C ObjC C++ ObjC++ Var(warn_missing_braces) Warning 466Warn about possibly missing braces around initializers 467 468Wmissing-declarations 469C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning 470Warn about global functions without previous declarations 471 472Wmissing-field-initializers 473C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning 474Warn about missing fields in struct initializers 475 476Wmissing-format-attribute 477C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning 478Warn about functions which might be candidates for format attributes 479 480Wmissing-include-dirs 481C ObjC C++ ObjC++ Warning 482Warn about user-specified include directories that do not exist 483 484Wmissing-parameter-type 485C ObjC Var(warn_missing_parameter_type) Init(-1) Warning 486Warn about function parameters declared without a type specifier in K&R-style functions 487 488Wmissing-prototypes 489C ObjC Var(warn_missing_prototypes) Warning 490Warn about global functions without prototypes 491 492Wmudflap 493C ObjC C++ ObjC++ Var(warn_mudflap) Init(1) Warning 494Warn about constructs not instrumented by -fmudflap 495 496Wmultichar 497C ObjC C++ ObjC++ Warning 498Warn about use of multi-character character constants 499 500Wnarrowing 501C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) 502Warn about narrowing conversions within { } that are ill-formed in C++11 503 504Wnested-externs 505C ObjC Var(warn_nested_externs) Warning 506Warn about \"extern\" declarations not at file scope 507 508Wnoexcept 509C++ ObjC++ Var(warn_noexcept) Warning 510Warn when a noexcept expression evaluates to false even though the expression can't actually throw 511 512Wnon-template-friend 513C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning 514Warn when non-templatized friend functions are declared within a template 515 516Wnon-virtual-dtor 517C++ ObjC++ Var(warn_nonvdtor) Warning 518Warn about non-virtual destructors 519 520Wnonnull 521C ObjC C++ ObjC++ Var(warn_nonnull) Warning 522Warn about NULL being passed to argument slots marked as requiring non-NULL 523 524Wnormalized= 525C ObjC C++ ObjC++ Joined Warning 526-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings 527 528Wold-style-cast 529C++ ObjC++ Var(warn_old_style_cast) Warning 530Warn if a C-style cast is used in a program 531 532Wold-style-declaration 533C ObjC Var(warn_old_style_declaration) Init(-1) Warning 534Warn for obsolescent usage in a declaration 535 536Wold-style-definition 537C ObjC Var(warn_old_style_definition) Warning 538Warn if an old-style parameter definition is used 539 540Woverlength-strings 541C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warning 542Warn if a string is longer than the maximum portable length specified by the standard 543 544Woverloaded-virtual 545C++ ObjC++ Var(warn_overloaded_virtual) Warning 546Warn about overloaded virtual function names 547 548Woverride-init 549C ObjC Var(warn_override_init) Init(-1) Warning 550Warn about overriding initializers without side effects 551 552Wpacked-bitfield-compat 553C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning 554Warn about packed bit-fields whose offset changed in GCC 4.4 555 556Wparentheses 557C ObjC C++ ObjC++ Var(warn_parentheses) Warning 558Warn about possibly missing parentheses 559 560Wpmf-conversions 561C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning 562Warn when converting the type of pointers to member functions 563 564Wpointer-arith 565C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning 566Warn about function pointer arithmetic 567 568Wpointer-to-int-cast 569C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning 570Warn when a pointer is cast to an integer of a different size 571 572Wpragmas 573C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning 574Warn about misuses of pragmas 575 576Wproperty-assign-default 577ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning 578Warn if a property for an Objective-C object has no assign semantics specified 579 580Wprotocol 581ObjC ObjC++ Var(warn_protocol) Init(1) Warning 582Warn if inherited methods are unimplemented 583 584Wredundant-decls 585C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning 586Warn about multiple declarations of the same object 587 588Wreorder 589C++ ObjC++ Var(warn_reorder) Warning 590Warn when the compiler reorders code 591 592Wreturn-type 593C ObjC C++ ObjC++ Var(warn_return_type) Warning 594Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++) 595 596Wselector 597ObjC ObjC++ Var(warn_selector) Warning 598Warn if a selector has multiple methods 599 600Wsequence-point 601C ObjC C++ ObjC++ Var(warn_sequence_point) Warning 602Warn about possible violations of sequence point rules 603 604Wsign-compare 605C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warning 606Warn about signed-unsigned comparisons 607 608Wsign-promo 609C++ ObjC++ Var(warn_sign_promo) Warning 610Warn when overload promotes from unsigned to signed 611 612Wstrict-null-sentinel 613C++ ObjC++ Warning Var(warn_strict_null_sentinel) 614Warn about uncasted NULL used as sentinel 615 616Wstrict-prototypes 617C ObjC Var(warn_strict_prototypes) Warning 618Warn about unprototyped function declarations 619 620Wstrict-selector-match 621ObjC ObjC++ Var(warn_strict_selector_match) Warning 622Warn if type signatures of candidate methods do not match exactly 623 624Wsync-nand 625C C++ Var(warn_sync_nand) Init(1) Warning 626Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used 627 628Wsynth 629C++ ObjC++ Var(warn_synth) Warning 630Deprecated. This switch has no effect 631 632Wsystem-headers 633C ObjC C++ ObjC++ Warning 634; Documented in common.opt 635 636Wtraditional 637C ObjC Var(warn_traditional) Warning 638Warn about features not present in traditional C 639 640Wtraditional-conversion 641C ObjC Var(warn_traditional_conversion) Warning 642Warn of prototypes causing type conversions different from what would happen in the absence of prototype 643 644Wtrigraphs 645C ObjC C++ ObjC++ Warning 646Warn if trigraphs are encountered that might affect the meaning of the program 647 648Wundeclared-selector 649ObjC ObjC++ Var(warn_undeclared_selector) Warning 650Warn about @selector()s without previously declared methods 651 652Wundef 653C ObjC C++ ObjC++ Warning 654Warn if an undefined macro is used in an #if directive 655 656Wunknown-pragmas 657C ObjC C++ ObjC++ Warning 658Warn about unrecognized pragmas 659 660Wunsuffixed-float-constants 661C ObjC Var(warn_unsuffixed_float_constants) Warning 662Warn about unsuffixed float constants 663 664Wunused-local-typedefs 665C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning 666Warn when typedefs locally defined in a function are not used 667 668Wunused-macros 669C ObjC C++ ObjC++ Warning 670Warn about macros defined in the main file that are not used 671 672Wunused-result 673C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning 674Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value 675 676Wvariadic-macros 677C ObjC C++ ObjC++ Warning 678Do not warn about using variadic macros when -pedantic 679 680Wvla 681C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning 682Warn if a variable length array is used 683 684Wvolatile-register-var 685C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning 686Warn when a register variable is declared volatile 687 688Wwrite-strings 689C ObjC C++ ObjC++ Var(warn_write_strings) Warning 690In C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard. 691 692Wpointer-sign 693C ObjC Var(warn_pointer_sign) Init(-1) Warning 694Warn when a pointer differs in signedness in an assignment 695 696Wzero-as-null-pointer-constant 697C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning 698Warn when a literal '0' is used as null pointer 699 700ansi 701C ObjC C++ ObjC++ 702A synonym for -std=c89 (for C) or -std=c++98 (for C++) 703 704d 705C ObjC C++ ObjC++ Joined 706; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD? 707 708faccess-control 709C++ ObjC++ Var(flag_access_control) Init(1) 710Enforce class member access control semantics 711 712fall-virtual 713C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 714 715fallow-parameterless-variadic-functions 716C ObjC Var(flag_allow_parameterless_variadic_functions) 717Allow variadic functions without named parameter 718 719falt-external-templates 720C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 721No longer supported 722 723fasm 724C ObjC C++ ObjC++ Var(flag_no_asm, 0) 725Recognize the \"asm\" keyword 726 727; Define extra predefined macros for use in libgcc. 728fbuilding-libgcc 729C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc) 730 731fbuiltin 732C ObjC C++ ObjC++ Var(flag_no_builtin, 0) 733Recognize built-in functions 734 735fbuiltin- 736C ObjC C++ ObjC++ Joined 737 738fcheck-new 739C++ ObjC++ Var(flag_check_new) 740Check the return value of new 741 742fcond-mismatch 743C ObjC C++ ObjC++ 744Allow the arguments of the '?' operator to have different types 745 746fconserve-space 747C++ ObjC++ Var(flag_conserve_space) 748Reduce the size of object files 749 750fconstant-string-class= 751ObjC ObjC++ Joined MissingArgError(no class name specified with %qs) 752-fconst-string-class=<name> Use class <name> for constant strings 753 754fconstexpr-depth= 755C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512) 756-fconstexpr-depth=<number> Specify maximum constexpr recursion depth 757 758fdebug-cpp 759C ObjC C++ ObjC++ 760Emit debug annotations during preprocessing 761 762fdeduce-init-list 763C++ ObjC++ Var(flag_deduce_init_list) Init(0) 764-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list 765 766fdefault-inline 767C++ ObjC++ Ignore 768Does nothing. Preserved for backward compatibility. 769 770fdirectives-only 771C ObjC C++ ObjC++ 772Preprocess directives only. 773 774fdollars-in-identifiers 775C ObjC C++ ObjC++ 776Permit '$' as an identifier character 777 778felide-constructors 779C++ ObjC++ Var(flag_elide_constructors) Init(1) 780 781fenforce-eh-specs 782C++ ObjC++ Var(flag_enforce_eh_specs) Init(1) 783Generate code to check exception specifications 784 785fenum-int-equiv 786C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 787 788fexec-charset= 789C ObjC C++ ObjC++ Joined RejectNegative 790-fexec-charset=<cset> Convert all strings and character constants to character set <cset> 791 792fextended-identifiers 793C ObjC C++ ObjC++ 794Permit universal character names (\\u and \\U) in identifiers 795 796finput-charset= 797C ObjC C++ ObjC++ Joined RejectNegative 798-finput-charset=<cset> Specify the default character set for source files 799 800 801fexternal-templates 802C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 803 804ffor-scope 805C++ ObjC++ Var(flag_new_for_scope) Init(1) 806Scope of for-init-statement variables is local to the loop 807 808ffreestanding 809C ObjC C++ ObjC++ 810Do not assume that standard C libraries and \"main\" exist 811 812fgnu-keywords 813C++ ObjC++ Var(flag_no_gnu_keywords, 0) 814Recognize GNU-defined keywords 815 816fgnu-runtime 817ObjC ObjC++ Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME) 818Generate code for GNU runtime environment 819 820fgnu89-inline 821C ObjC Var(flag_gnu89_inline) Init(-1) 822Use traditional GNU semantics for inline functions 823 824fguiding-decls 825C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 826 827fhandle-exceptions 828C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)}) 829 830fhonor-std 831C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 832 833fhosted 834C ObjC 835Assume normal C execution environment 836 837fhuge-objects 838C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 839No longer supported 840 841fimplement-inlines 842C++ ObjC++ Var(flag_implement_inlines) Init(1) 843Export functions even if they can be inlined 844 845fimplicit-inline-templates 846C++ ObjC++ Var(flag_implicit_inline_templates) Init(1) 847Emit implicit instantiations of inline templates 848 849fimplicit-templates 850C++ ObjC++ Var(flag_implicit_templates) Init(1) 851Emit implicit instantiations of templates 852 853ffriend-injection 854C++ ObjC++ Var(flag_friend_injection) 855Inject friend functions into enclosing namespace 856 857fkeep-inline-dllexport 858C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES) 859Don't emit dllexported inline functions unless needed 860 861flabels-ok 862C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 863 864flax-vector-conversions 865C ObjC C++ ObjC++ Var(flag_lax_vector_conversions) 866Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types. 867 868fms-extensions 869C ObjC C++ ObjC++ Var(flag_ms_extensions) 870Don't warn about uses of Microsoft extensions 871 872fmudflap 873C ObjC C++ ObjC++ RejectNegative Report Var(flag_mudflap) 874Add mudflap bounds-checking instrumentation for single-threaded program 875 876fmudflapth 877C ObjC C++ ObjC++ RejectNegative Report Var(flag_mudflap,2) 878Add mudflap bounds-checking instrumentation for multi-threaded program 879 880fmudflapir 881C ObjC C++ ObjC++ RejectNegative Report Var(flag_mudflap_ignore_reads) 882Ignore read operations when inserting mudflap instrumentation 883 884fname-mangling-version- 885C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported) 886 887fnew-abi 888C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 889 890fnext-runtime 891ObjC ObjC++ Report RejectNegative Var(flag_next_runtime) 892Generate code for NeXT (Apple Mac OS X) runtime environment 893 894fnil-receivers 895ObjC ObjC++ Var(flag_nil_receivers) Init(1) 896Assume that receivers of Objective-C messages may be nil 897 898fnonansi-builtins 899C++ ObjC++ Var(flag_no_nonansi_builtin, 0) 900 901fnonnull-objects 902C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 903 904fnothrow-opt 905C++ ObjC++ Optimization Var(flag_nothrow_opt) 906Treat a throw() exception specification as noexcept to improve code size 907 908fobjc-abi-version= 909ObjC ObjC++ Joined Report RejectNegative UInteger Var(flag_objc_abi) 910Specify which ABI to use for Objective-C family code and meta-data generation. 911 912; Generate special '- .cxx_construct' and '- .cxx_destruct' methods 913; to initialize any non-POD ivars in Objective-C++ classes. 914fobjc-call-cxx-cdtors 915ObjC++ Var(flag_objc_call_cxx_cdtors) 916Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed 917 918fobjc-direct-dispatch 919ObjC ObjC++ Var(flag_objc_direct_dispatch) 920Allow fast jumps to the message dispatcher 921 922; Nonzero means that we will allow new ObjC exception syntax (@throw, 923; @try, etc.) in source code. 924fobjc-exceptions 925ObjC ObjC++ Var(flag_objc_exceptions) 926Enable Objective-C exception and synchronization syntax 927 928fobjc-gc 929ObjC ObjC++ Var(flag_objc_gc) 930Enable garbage collection (GC) in Objective-C/Objective-C++ programs 931 932fobjc-nilcheck 933ObjC ObjC++ Var(flag_objc_nilcheck,1) 934Enable inline checks for nil receivers with the NeXT runtime and ABI version 2. 935 936; Nonzero means that we generate NeXT setjmp based exceptions. 937fobjc-sjlj-exceptions 938ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1) 939Enable Objective-C setjmp exception handling runtime 940 941fobjc-std=objc1 942ObjC ObjC++ Var(flag_objc1_only) 943Conform to the Objective-C 1.0 language as implemented in GCC 4.0 944 945fopenmp 946C ObjC C++ ObjC++ Var(flag_openmp) 947Enable OpenMP (implies -frecursive in Fortran) 948 949foperator-names 950C++ ObjC++ 951Recognize C++ keywords like \"compl\" and \"xor\" 952 953foptional-diags 954C++ ObjC++ Ignore 955Does nothing. Preserved for backward compatibility. 956 957fpch-deps 958C ObjC C++ ObjC++ 959 960fpch-preprocess 961C ObjC C++ ObjC++ 962Look for and use PCH files even when preprocessing 963 964fpermissive 965C++ ObjC++ 966Downgrade conformance errors to warnings 967 968fplan9-extensions 969C ObjC Var(flag_plan9_extensions) 970Enable Plan 9 language extensions 971 972fpreprocessed 973C ObjC C++ ObjC++ 974Treat the input file as already preprocessed 975 976ftrack-macro-expansion 977C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger 978; converted into ftrack-macro-expansion= 979 980ftrack-macro-expansion= 981C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger 982-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages 983 984fpretty-templates 985C++ ObjC++ Var(flag_pretty_templates) Init(1) 986-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments 987 988freplace-objc-classes 989ObjC ObjC++ Var(flag_replace_objc_classes) 990Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime 991 992frepo 993C++ ObjC++ 994Enable automatic template instantiation 995 996frtti 997C++ ObjC++ Optimization Var(flag_rtti) Init(1) 998Generate run time type descriptor information 999 1000fshort-double 1001C ObjC C++ ObjC++ Optimization Var(flag_short_double) 1002Use the same size for double as for float 1003 1004fshort-enums 1005C ObjC C++ ObjC++ Optimization Var(flag_short_enums) 1006Use the narrowest integer type possible for enumeration types 1007 1008fshort-wchar 1009C ObjC C++ ObjC++ Optimization Var(flag_short_wchar) 1010Force the underlying type for \"wchar_t\" to be \"unsigned short\" 1011 1012fsigned-bitfields 1013C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1) 1014When \"signed\" or \"unsigned\" is not given make the bitfield signed 1015 1016fsigned-char 1017C ObjC C++ ObjC++ LTO Var(flag_signed_char) 1018Make \"char\" signed by default 1019 1020fsquangle 1021C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1022 1023fstats 1024C++ ObjC++ Var(flag_detailed_statistics) 1025Display statistics accumulated during compilation 1026 1027fstrict-enums 1028C++ ObjC++ Optimization Var(flag_strict_enums) 1029Assume that values of enumeration type are always within the minimum range of that type 1030 1031fstrict-prototype 1032C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1033 1034ftabstop= 1035C ObjC C++ ObjC++ Joined RejectNegative UInteger 1036-ftabstop=<number> Distance between tab stops for column reporting 1037 1038ftemplate-depth- 1039C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=) 1040 1041ftemplate-depth= 1042C++ ObjC++ Joined RejectNegative UInteger 1043-ftemplate-depth=<number> Specify maximum template instantiation depth 1044 1045fthis-is-variable 1046C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1047 1048fthreadsafe-statics 1049C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1) 1050-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics 1051 1052funsigned-bitfields 1053C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0) 1054When \"signed\" or \"unsigned\" is not given make the bitfield unsigned 1055 1056funsigned-char 1057C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0) 1058Make \"char\" unsigned by default 1059 1060fuse-cxa-atexit 1061C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT) 1062Use __cxa_atexit to register destructors 1063 1064fuse-cxa-get-exception-ptr 1065C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2) 1066Use __cxa_get_exception_ptr in exception handling 1067 1068fvisibility-inlines-hidden 1069C++ ObjC++ 1070Marks all inlined functions and methods as having hidden visibility 1071 1072fvisibility-ms-compat 1073C++ ObjC++ Var(flag_visibility_ms_compat) 1074Changes visibility to match Microsoft Visual Studio by default 1075 1076fvtable-gc 1077C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1078No longer supported 1079 1080fvtable-thunks 1081C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1082No longer supported 1083 1084fweak 1085C++ ObjC++ Var(flag_weak) Init(1) 1086Emit common-like symbols as weak symbols 1087 1088fwide-exec-charset= 1089C ObjC C++ ObjC++ Joined RejectNegative 1090-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset> 1091 1092fworking-directory 1093C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1) 1094Generate a #line directive pointing at the current working directory 1095 1096fxref 1097C++ ObjC++ Ignore Warn(switch %qs is no longer supported) 1098No longer supported 1099 1100fzero-link 1101ObjC ObjC++ Var(flag_zero_link) 1102Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode 1103 1104gen-decls 1105ObjC ObjC++ Var(flag_gen_declaration) 1106Dump declarations to a .decl file 1107 1108femit-struct-debug-baseonly 1109C ObjC C++ ObjC++ 1110-femit-struct-debug-baseonly Aggressive reduced debug info for structs 1111 1112femit-struct-debug-reduced 1113C ObjC C++ ObjC++ 1114-femit-struct-debug-reduced Conservative reduced debug info for structs 1115 1116femit-struct-debug-detailed= 1117C ObjC C++ ObjC++ Joined 1118-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs 1119 1120idirafter 1121C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 1122-idirafter <dir> Add <dir> to the end of the system include path 1123 1124imacros 1125C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) 1126-imacros <file> Accept definition of macros in <file> 1127 1128imultilib 1129C ObjC C++ ObjC++ Joined Separate 1130-imultilib <dir> Set <dir> to be the multilib include subdirectory 1131 1132include 1133C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) 1134-include <file> Include the contents of <file> before other files 1135 1136iprefix 1137C ObjC C++ ObjC++ Joined Separate 1138-iprefix <path> Specify <path> as a prefix for next two options 1139 1140isysroot 1141C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 1142-isysroot <dir> Set <dir> to be the system root directory 1143 1144isystem 1145C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 1146-isystem <dir> Add <dir> to the start of the system include path 1147 1148iquote 1149C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 1150-iquote <dir> Add <dir> to the end of the quote include path 1151 1152iwithprefix 1153C ObjC C++ ObjC++ Joined Separate 1154-iwithprefix <dir> Add <dir> to the end of the system include path 1155 1156iwithprefixbefore 1157C ObjC C++ ObjC++ Joined Separate 1158-iwithprefixbefore <dir> Add <dir> to the end of the main include path 1159 1160lang-asm 1161C Undocumented RejectDriver 1162 1163no-integrated-cpp 1164Driver 1165 1166nostdinc 1167C ObjC C++ ObjC++ 1168Do not search standard system include directories (those specified with -isystem will still be used) 1169 1170nostdinc++ 1171C++ ObjC++ 1172Do not search standard system include directories for C++ 1173 1174o 1175C ObjC C++ ObjC++ Joined Separate 1176; Documented in common.opt 1177 1178pedantic 1179C ObjC C++ ObjC++ 1180; Documented in common.opt 1181 1182pedantic-errors 1183C ObjC C++ ObjC++ 1184; Documented in common.opt 1185 1186print-objc-runtime-info 1187ObjC ObjC++ 1188Generate C header of platform-specific features 1189 1190remap 1191C ObjC C++ ObjC++ 1192Remap file names when including files 1193 1194std=c++98 1195C++ ObjC++ 1196Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum 1197 1198std=c++03 1199C++ ObjC++ Alias(std=c++98) 1200Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum 1201 1202std=c++11 1203C++ ObjC++ 1204Conform to the ISO 2011 C++ standard (experimental and incomplete support) 1205 1206std=c++0x 1207C++ ObjC++ Alias(std=c++11) 1208Deprecated in favor of -std=c++11 1209 1210std=c11 1211C ObjC 1212Conform to the ISO 2011 C standard (experimental and incomplete support) 1213 1214std=c1x 1215C ObjC Alias(std=c11) 1216Deprecated in favor of -std=c11 1217 1218std=c89 1219C ObjC Alias(std=c90) 1220Conform to the ISO 1990 C standard 1221 1222std=c90 1223C ObjC 1224Conform to the ISO 1990 C standard 1225 1226std=c99 1227C ObjC 1228Conform to the ISO 1999 C standard 1229 1230std=c9x 1231C ObjC Alias(std=c99) 1232Deprecated in favor of -std=c99 1233 1234std=gnu++98 1235C++ ObjC++ 1236Conform to the ISO 1998 C++ standard revised by the 2003 technical 1237corrigendum with GNU extensions 1238 1239std=gnu++03 1240C++ ObjC++ Alias(std=gnu++98) 1241Conform to the ISO 1998 C++ standard revised by the 2003 technical 1242corrigendum with GNU extensions 1243 1244std=gnu++11 1245C++ ObjC++ 1246Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support) 1247 1248std=gnu++0x 1249C++ ObjC++ Alias(std=gnu++11) 1250Deprecated in favor of -std=gnu++11 1251 1252std=gnu11 1253C ObjC 1254Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support) 1255 1256std=gnu1x 1257C ObjC Alias(std=gnu11) 1258Deprecated in favor of -std=gnu11 1259 1260std=gnu89 1261C ObjC Alias(std=gnu90) 1262Conform to the ISO 1990 C standard with GNU extensions 1263 1264std=gnu90 1265C ObjC 1266Conform to the ISO 1990 C standard with GNU extensions 1267 1268std=gnu99 1269C ObjC 1270Conform to the ISO 1999 C standard with GNU extensions 1271 1272std=gnu9x 1273C ObjC Alias(std=gnu99) 1274Deprecated in favor of -std=gnu99 1275 1276std=iso9899:1990 1277C ObjC Alias(std=c90) 1278Conform to the ISO 1990 C standard 1279 1280std=iso9899:199409 1281C ObjC 1282Conform to the ISO 1990 C standard as amended in 1994 1283 1284std=iso9899:1999 1285C ObjC Alias(std=c99) 1286Conform to the ISO 1999 C standard 1287 1288std=iso9899:199x 1289C ObjC Alias(std=c99) 1290Deprecated in favor of -std=iso9899:1999 1291 1292std=iso9899:2011 1293C ObjC Alias(std=c11) 1294Conform to the ISO 2011 C standard (experimental and incomplete support) 1295 1296traditional 1297Driver 1298 1299traditional-cpp 1300C ObjC C++ ObjC++ 1301Enable traditional preprocessing 1302 1303trigraphs 1304C ObjC C++ ObjC++ 1305-trigraphs Support ISO C trigraphs 1306 1307undef 1308C ObjC C++ ObjC++ Var(flag_undef) 1309Do not predefine system-specific and GCC-specific macros 1310 1311v 1312C ObjC C++ ObjC++ 1313; Documented in common.opt 1314 1315w 1316C ObjC C++ ObjC++ 1317; Documented in common.opt 1318 1319; This comment is to ensure we retain the blank line above. 1320