1; Options for the C, ObjC, C++ and ObjC++ front ends. 2; Copyright (C) 2003-2021 Free Software Foundation, Inc. 3; 4; This file is part of GCC. 5; 6; GCC is free software; you can redistribute it and/or modify it under 7; the terms of the GNU General Public License as published by the Free 8; Software Foundation; either version 3, or (at your option) any later 9; version. 10; 11; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12; WARRANTY; without even the implied warranty of MERCHANTABILITY or 13; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14; for more details. 15; 16; You should have received a copy of the GNU General Public License 17; along with GCC; see the file COPYING3. If not see 18; <http://www.gnu.org/licenses/>. 19 20; See the GCC internals manual for a description of this file's format. 21 22; Please try to keep this file in ASCII collating order. 23 24Language 25C 26 27Language 28ObjC 29 30Language 31C++ 32 33Language 34ObjC++ 35 36-all-warnings 37C ObjC C++ ObjC++ Warning Alias(Wall) 38 39-ansi 40C ObjC C++ ObjC++ Alias(ansi) 41 42-assert 43C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs) 44 45-assert= 46C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs) 47 48-comments 49C ObjC C++ ObjC++ Alias(C) 50 51-comments-in-macros 52C ObjC C++ ObjC++ Alias(CC) 53 54-define-macro 55C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs) 56 57-define-macro= 58C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs) 59 60-dependencies 61C ObjC C++ ObjC++ Alias(M) 62 63-dump 64C ObjC C++ ObjC++ Separate Alias(d) 65 66-dump= 67C ObjC C++ ObjC++ Joined Alias(d) 68 69-imacros 70C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs) 71 72-imacros= 73C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs) 74 75-include 76C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs) 77 78-include= 79C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs) 80 81-include-barrier 82C ObjC C++ ObjC++ Alias(I, -) 83 84-include-directory 85C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs) 86 87-include-directory= 88C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs) 89 90-include-directory-after 91C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs) 92 93-include-directory-after= 94C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs) 95 96-include-prefix 97C ObjC C++ ObjC++ Separate Alias(iprefix) 98 99-include-prefix= 100C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix) 101 102-include-with-prefix 103C ObjC C++ ObjC++ Separate Alias(iwithprefix) 104 105-include-with-prefix= 106C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix) 107 108-include-with-prefix-after 109C ObjC C++ ObjC++ Separate Alias(iwithprefix) 110 111-include-with-prefix-after= 112C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix) 113 114-include-with-prefix-before 115C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore) 116 117-include-with-prefix-before= 118C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore) 119 120-no-integrated-cpp 121Driver Alias(no-integrated-cpp) 122 123-no-line-commands 124C ObjC C++ ObjC++ Alias(P) 125 126-no-standard-includes 127C ObjC C++ ObjC++ Alias(nostdinc) 128 129-no-warnings 130C ObjC C++ ObjC++ Alias(w) 131 132-output 133C ObjC C++ ObjC++ Separate Alias(o) 134 135-output= 136C ObjC C++ ObjC++ Joined Alias(o) 137 138-output-pch= 139C ObjC C++ ObjC++ Joined Separate 140 141-pedantic 142C ObjC C++ ObjC++ Alias(pedantic) 143 144-preprocess 145C ObjC C++ ObjC++ Undocumented Alias(E) 146 147-print-missing-file-dependencies 148C ObjC C++ ObjC++ Alias(MG) 149 150-trace-includes 151C ObjC C++ ObjC++ Alias(H) 152 153-traditional 154Driver Alias(traditional) 155 156-traditional-cpp 157C ObjC C++ ObjC++ Alias(traditional-cpp) 158 159-trigraphs 160C ObjC C++ ObjC++ Alias(trigraphs) 161 162-undefine-macro 163C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs) 164 165-undefine-macro= 166C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs) 167 168-user-dependencies 169C ObjC C++ ObjC++ Alias(MM) 170 171-verbose 172Common C ObjC C++ ObjC++ Alias(v) 173 174-write-dependencies 175C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs) 176 177-write-user-dependencies 178C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs) 179 180A 181C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs) 182-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>. 183 184C 185C ObjC C++ ObjC++ 186Do not discard comments. 187 188CC 189C ObjC C++ ObjC++ 190Do not discard comments in macro expansions. 191 192D 193C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs) 194-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1. 195 196E 197C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only) 198 199F 200Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 201-F <dir> Add <dir> to the end of the main framework include path. 202 203fgimple 204C Var(flag_gimple) Init(0) 205Enable parsing GIMPLE. 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 239Mmodules 240C++ 241Generate C++ Module dependency information. 242 243Mno-modules 244C++ 245; undocumented 246 247MP 248C ObjC C++ ObjC++ 249Generate phony targets for all headers. 250 251MQ 252C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs) 253-MQ <target> Add a target that may require quoting. 254 255MT 256C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs) 257-MT <target> Add a target that does not require quoting. 258 259P 260C ObjC C++ ObjC++ 261Do not generate #line directives. 262 263U 264C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs) 265-U<macro> Undefine <macro>. 266 267WNSObject-attribute 268C ObjC C++ ObjC++ LTO Var(warn_nsobject_attribute) Warning Init(1) 269Warn if the NSObject attribute is applied to a non-typedef. 270 271Wabi 272C ObjC C++ ObjC++ LTO Var(warn_abi) Warning 273Warn about things that will change when compiling with an ABI-compliant compiler. 274 275Wabi= 276C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning 277Warn about things that change between the current -fabi-version and the specified version. 278 279Wabi-tag 280C++ ObjC++ Var(warn_abi_tag) Warning 281Warn if a subobject has an abi_tag attribute that the complete object type does not have. 282 283Wpsabi 284C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi) 285 286Wabsolute-value 287C ObjC Var(warn_absolute_value) Warning EnabledBy(Wextra) 288Warn on suspicious calls of standard functions computing absolute values. 289 290Waddress 291C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 292Warn about suspicious uses of memory addresses. 293 294Enum 295Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized) 296 297EnumValue 298Enum(warn_aligned_new_level) String(none) Value(0) 299 300EnumValue 301Enum(warn_aligned_new_level) String(global) Value(1) 302 303EnumValue 304Enum(warn_aligned_new_level) String(all) Value(2) 305 306Waligned-new 307C++ ObjC++ Alias(Waligned-new=,global,none) 308Warn about 'new' of type with extended alignment without -faligned-new. 309 310Waligned-new= 311C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0) 312-Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function. 313 314Wall 315C ObjC C++ ObjC++ Warning 316Enable most warning messages. 317 318Walloca 319C ObjC C++ ObjC++ Var(warn_alloca) Warning 320Warn on any use of alloca. 321 322Walloc-size-larger-than= 323C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX) 324-Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that 325attempt to allocate objects larger than the specified number of bytes. 326 327Wno-alloc-size-larger-than 328C ObjC C++ LTO ObjC++ Alias(Walloc-size-larger-than=,18446744073709551615EiB,none) Warning 329Disable Walloc-size-larger-than= warning. Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger. 330 331Walloc-zero 332C ObjC C++ ObjC++ Var(warn_alloc_zero) Warning 333Warn for calls to allocation functions that specify zero bytes. 334 335Walloca-larger-than= 336C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX) 337-Walloca-larger-than=<number> Warn on unbounded uses of 338alloca, and on bounded uses of alloca whose bound can be larger than 339<number> bytes. 340 341Wno-alloca-larger-than 342C ObjC C++ LTO ObjC++ Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning 343Disable Walloca-larger-than= warning. Equivalent to Walloca-larger-than=<SIZE_MAX> or larger. 344 345Warray-bounds 346LangEnabledBy(C ObjC C++ LTO ObjC++) 347; in common.opt 348 349Warray-bounds= 350LangEnabledBy(C ObjC C++ LTO ObjC++,Wall,1,0) 351; in common.opt 352 353Warray-parameter 354C ObjC C++ ObjC++ Warning Alias(Warray-parameter=, 2, 0) 355Warn about mismatched declarations of array parameters and unsafe accesses to them. 356 357Warray-parameter= 358C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_array_parameter) IntegerRange(0, 2) LangEnabledBy(C ObjC C++ ObjC++,Wall, 2, 0) Warning 359Warn about mismatched declarations of array parameters and unsafe accesses to them. 360 361Wzero-length-bounds 362C ObjC C++ ObjC++ Var(warn_zero_length_bounds) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 363Warn about accesses to interior zero-length array members. 364 365Wassign-intercept 366ObjC ObjC++ Var(warn_assign_intercept) Warning 367Warn whenever an Objective-C assignment is being intercepted by the garbage collector. 368 369Wbad-function-cast 370C ObjC Var(warn_bad_function_cast) Warning 371Warn about casting functions to incompatible types. 372 373Wbool-compare 374C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 375Warn about boolean expression compared with an integer value different from true/false. 376 377Wbool-operation 378C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 379Warn about certain operations on boolean expressions. 380 381Wframe-address 382C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 383Warn when __builtin_frame_address or __builtin_return_address is used unsafely. 384 385Wbuiltin-declaration-mismatch 386C ObjC C++ ObjC++ Var(warn_builtin_declaration_mismatch) Init(1) Warning 387Warn when a built-in function is declared with the wrong signature. 388 389Wbuiltin-macro-redefined 390C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning 391Warn when a built-in preprocessor macro is undefined or redefined. 392 393Wc11-c2x-compat 394C ObjC CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT) Var(warn_c11_c2x_compat) Init(-1) Warning 395Warn about features not present in ISO C11, but present in ISO C2X. 396 397Wc90-c99-compat 398C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning 399Warn about features not present in ISO C90, but present in ISO C99. 400 401Wc99-c11-compat 402C ObjC Var(warn_c99_c11_compat) Init(-1) Warning 403Warn about features not present in ISO C99, but present in ISO C11. 404 405Wc++-compat 406C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning 407Warn about C constructs that are not in the common subset of C and C++. 408 409Wc++0x-compat 410C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented 411 412Wc++11-compat 413C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT) 414Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011. 415 416Wc++14-compat 417C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall) 418Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014. 419 420Wc++1z-compat 421C++ ObjC++ Warning Alias(Wc++17-compat) Undocumented 422 423Wc++17-compat 424C++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall) 425Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017. 426 427Wc++2a-compat 428C++ ObjC++ Warning Alias(Wc++20-compat) Undocumented 429 430Wc++20-compat 431C++ ObjC++ Var(warn_cxx20_compat) Warning LangEnabledBy(C++ ObjC++,Wall) 432Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020. 433 434Wcast-function-type 435C ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra) 436Warn about casts between incompatible function types. 437 438Wcast-qual 439C ObjC C++ ObjC++ Var(warn_cast_qual) Warning 440Warn about casts which discard qualifiers. 441 442Wcatch-value 443C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0) 444Warn about catch handlers of non-reference type. 445 446Wcatch-value= 447C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0) IntegerRange(0, 3) 448Warn about catch handlers of non-reference type. 449 450Wchar-subscripts 451C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 452Warn about subscripts whose type is \"char\". 453 454Wchkp 455C ObjC C++ ObjC++ Warning WarnRemoved 456Removed in GCC 9. This switch has no effect. 457 458Wclobbered 459C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra) 460Warn about variables that might be changed by \"longjmp\" or \"vfork\". 461 462Wcomma-subscript 463C++ ObjC++ Var(warn_comma_subscript) Warning 464Warn about uses of a comma operator within a subscripting expression. 465 466Wcomment 467C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 468Warn about possibly nested block comments, and C++ comments spanning more than one physical line. 469 470Wcomments 471C ObjC C++ ObjC++ Warning Alias(Wcomment) 472Synonym for -Wcomment. 473 474Wconditionally-supported 475C++ ObjC++ Var(warn_conditionally_supported) Warning 476Warn for conditionally-supported constructs. 477 478Wconversion 479C ObjC C++ ObjC++ Var(warn_conversion) Warning 480Warn for implicit type conversions that may change a value. 481 482Wconversion-null 483C++ ObjC++ Var(warn_conversion_null) Init(1) Warning 484Warn for converting NULL from/to a non-pointer type. 485 486Wcpp 487C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE) 488; Documented in common.opt 489 490Wctad-maybe-unsupported 491C++ ObjC++ Var(warn_ctad_maybe_unsupported) Warning 492Warn when performing class template argument deduction on a type with no 493deduction guides. 494 495Wctor-dtor-privacy 496C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning 497Warn when all constructors and destructors are private. 498 499Wdangling-else 500C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses) 501Warn about dangling else. 502 503Wdate-time 504C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning 505Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage. 506 507Wdeclaration-after-statement 508C ObjC Var(warn_declaration_after_statement) Init(-1) Warning 509Warn when a declaration is found after a statement. 510 511Wdelete-incomplete 512C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning 513Warn when deleting a pointer to incomplete type. 514 515Wdelete-non-virtual-dtor 516C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++) 517Warn about deleting polymorphic objects with non-virtual destructors. 518 519Wdeprecated 520C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) 521; Documented in common.opt 522 523Wdeprecated-copy 524C++ ObjC++ Var(warn_deprecated_copy) Warning LangEnabledBy(C++ ObjC++, Wextra) 525Mark implicitly-declared copy operations as deprecated if the class has a 526user-provided copy operation. 527 528Wdeprecated-copy-dtor 529C++ ObjC++ Var(warn_deprecated_copy, 2) Warning 530Mark implicitly-declared copy operations as deprecated if the class has a 531user-provided copy operation or destructor. 532 533Wdeprecated-enum-enum-conversion 534C++ ObjC++ Var(warn_deprecated_enum_enum_conv) Warning 535Warn about deprecated arithmetic conversions on operands of enumeration types. 536 537Wdeprecated-enum-float-conversion 538C++ ObjC++ Var(warn_deprecated_enum_float_conv) Warning 539Warn about deprecated arithmetic conversions on operands where one is of enumeration 540type and the other is of a floating-point type. 541 542Wdesignated-init 543C ObjC Var(warn_designated_init) Init(1) Warning 544Warn about positional initialization of structs requiring designated initializers. 545 546Wdiscarded-array-qualifiers 547C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning 548Warn if qualifiers on arrays which are pointer targets are discarded. 549 550Wdiscarded-qualifiers 551C ObjC Var(warn_discarded_qualifiers) Init(1) Warning 552Warn if type qualifiers on pointers are discarded. 553 554Wdiv-by-zero 555C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning 556Warn about compile-time integer division by zero. 557 558Wduplicated-branches 559C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning 560Warn about duplicated branches in if-else statements. 561 562Wduplicated-cond 563C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning 564Warn about duplicated conditions in an if-else-if chain. 565 566Weffc++ 567C++ ObjC++ Var(warn_ecpp) Warning 568Warn about violations of Effective C++ style rules. 569 570Wempty-body 571C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra) 572Warn about an empty body in an if or else statement. 573 574Wendif-labels 575C ObjC C++ ObjC++ CPP(warn_endif_labels) CppReason(CPP_W_ENDIF_LABELS) Var(cpp_warn_endif_labels) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic) 576Warn about stray tokens after #else and #endif. 577 578Wenum-compare 579C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat) 580Warn about comparison of different enum types. 581 582Wenum-conversion 583C ObjC C++ ObjC++ Var(warn_enum_conversion) Init(0) Warning LangEnabledBy(C ObjC,Wextra) 584Warn about implicit conversion of enum types. 585 586Werror 587C ObjC C++ ObjC++ 588; Documented in common.opt 589 590Werror-implicit-function-declaration 591C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration) 592This switch is deprecated; use -Werror=implicit-function-declaration instead. 593 594Wexceptions 595C++ ObjC++ Var(warn_exceptions) Init(1) Warning 596Warn when an exception handler is shadowed by another handler. 597 598Wextra 599C ObjC C++ ObjC++ Warning 600; in common.opt 601 602Wextra-semi 603C++ ObjC++ Var(warn_extra_semi) Warning 604Warn about semicolon after in-class function definition. 605 606Wfloat-conversion 607C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion) 608Warn for implicit type conversions that cause loss of floating point precision. 609 610Wfloat-equal 611C ObjC C++ ObjC++ Var(warn_float_equal) Warning 612Warn if testing floating point numbers for equality. 613 614Wformat 615C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0) 616Warn about printf/scanf/strftime/strfmon format string anomalies. 617 618Wformat-contains-nul 619C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) 620Warn about format strings that contain NUL bytes. 621 622Wformat-diag 623C ObjC C++ ObjC++ Var(warn_format_diag) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) 624Warn about GCC format strings with strings unsuitable for diagnostics. 625 626Wformat-extra-args 627C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) 628Warn if passing too many arguments to a function for its format string. 629 630Wformat-nonliteral 631C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) 632Warn about format strings that are not literals. 633 634Wformat-overflow 635C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2) 636Warn about function calls with format strings that write past the end 637of the destination region. Same as -Wformat-overflow=1. 638 639Wformat-security 640C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) 641Warn about possible security problems with format functions. 642 643Wformat-signedness 644C ObjC C++ ObjC++ Var(warn_format_signedness) Warning 645Warn about sign differences with format functions. 646 647Wformat-truncation 648C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0) 649Warn about calls to snprintf and similar functions that truncate output. 650Same as -Wformat-truncation=1. 651 652Wformat-y2k 653C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0) 654Warn about strftime formats yielding 2-digit years. 655 656Wformat-zero-length 657C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0) 658Warn about zero-length formats. 659 660Wformat= 661C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2) 662Warn about printf/scanf/strftime/strfmon format string anomalies. 663 664Wformat-overflow= 665C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2) 666Warn about function calls with format strings that write past the end 667of the destination region. 668 669Wformat-truncation= 670C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2) 671Warn about calls to snprintf and similar functions that truncate output. 672 673Wif-not-aligned 674C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning 675Warn when the field in a struct is not aligned. 676 677Wignored-qualifiers 678C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra) 679Warn whenever type qualifiers are ignored. 680 681Wignored-attributes 682C C++ Var(warn_ignored_attributes) Init(1) Warning 683Warn whenever attributes are ignored. 684 685Winaccessible-base 686C++ ObjC++ Var(warn_inaccessible_base) Init(1) Warning 687Warn when a base is inaccessible in derived due to ambiguity. 688 689Wincompatible-pointer-types 690C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning 691Warn when there is a conversion between pointers that have incompatible types. 692 693Waddress-of-packed-member 694C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning 695Warn when the address of packed member of struct or union is taken. 696 697Winit-self 698C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall) 699Warn about variables which are initialized to themselves. 700 701Winit-list-lifetime 702C++ ObjC++ Var(warn_init_list) Warning Init(1) 703Warn about uses of std::initializer_list that can result in dangling pointers. 704 705Wimplicit 706C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall) 707Warn about implicit declarations. 708 709Wimplicit-fallthrough= 710LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0) 711; in common.opt 712 713Wdouble-promotion 714C ObjC C++ ObjC++ Var(warn_double_promotion) Warning 715Warn about implicit conversions from \"float\" to \"double\". 716 717Wexpansion-to-defined 718C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic) 719Warn if \"defined\" is used outside #if. 720 721Wimplicit-function-declaration 722C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit) 723Warn about implicit function declarations. 724 725Wimplicit-int 726C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit) 727Warn when a declaration does not specify a type. 728 729Wimport 730C ObjC C++ ObjC++ Undocumented Ignore 731 732Winherited-variadic-ctor 733C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning 734Warn about C++11 inheriting constructors when the base has a variadic constructor. 735 736Wint-conversion 737C ObjC Var(warn_int_conversion) Init(1) Warning 738Warn about incompatible integer to pointer and pointer to integer conversions. 739 740Wint-in-bool-context 741C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 742Warn for suspicious integer expressions in boolean context. 743 744Wint-to-pointer-cast 745C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning 746Warn when there is a cast to a pointer from an integer of a different size. 747 748Winvalid-offsetof 749C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning 750Warn about invalid uses of the \"offsetof\" macro. 751 752Winvalid-pch 753C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning 754Warn about PCH files that are found but not used. 755 756Wjump-misses-init 757C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat) 758Warn when a jump misses a variable initialization. 759 760Wliteral-suffix 761C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning 762Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore. 763 764Wlogical-op 765C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning 766Warn when a logical operator is suspiciously always evaluating to true or false. 767 768Wlogical-not-parentheses 769C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 770Warn when logical not is used on the left hand side operand of a comparison. 771 772Wlong-long 773C ObjC C++ ObjC++ CPP(cpp_warn_long_long) CppReason(CPP_W_LONG_LONG) Var(warn_long_long) Init(-1) Warning LangEnabledBy(C ObjC,Wc90-c99-compat) 774Do not warn about using \"long long\" when -pedantic. 775 776Wmain 777C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0) 778Warn about suspicious declarations of \"main\". 779 780Wmain 781LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0) 782; 783 784Wmemset-transposed-args 785C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 786Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not. 787 788Wmemset-elt-size 789C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 790Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size. 791 792Wmisleading-indentation 793C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall) 794Warn when the indentation of the code does not reflect the block structure. 795 796Wmismatched-dealloc 797C ObjC C++ ObjC++ Var(warn_mismatched_alloc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 798Warn for deallocation calls with arguments returned from mismatched allocation 799functions. 800 801Wmismatched-new-delete 802C++ ObjC++ Var(warn_mismatched_new_delete) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 803Warn for mismatches between calls to operator new or delete and the corresponding 804call to the allocation or deallocation function. 805 806Wmismatched-tags 807C++ ObjC++ Var(warn_mismatched_tags) Warning 808Warn when a class is redeclared or referenced using a mismatched class-key. 809 810Wmissing-braces 811C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall) 812Warn about possibly missing braces around initializers. 813 814Wmissing-declarations 815C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning 816Warn about global functions without previous declarations. 817 818Wmissing-field-initializers 819C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra) 820Warn about missing fields in struct initializers. 821 822Wmultistatement-macros 823C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 824Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for. 825 826Wmultiple-inheritance 827C++ ObjC++ Var(warn_multiple_inheritance) Warning 828Warn on direct multiple inheritance. 829 830Wnamespaces 831C++ ObjC++ Var(warn_namespaces) Warning 832Warn on namespace definition. 833 834Wpacked-not-aligned 835C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 836Warn when fields in a struct with the packed attribute are misaligned. 837 838Wrange-loop-construct 839C++ ObjC++ Var(warn_range_loop_construct) Warning LangEnabledBy(C++ ObjC++,Wall) 840Warn when a range-based for-loop is creating unnecessary copies. 841 842Wredundant-tags 843C++ ObjC++ Var(warn_redundant_tags) Warning 844Warn when a class or enumerated type is referenced using a redundant class-key. 845 846Wsized-deallocation 847C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra) 848Warn about missing sized deallocation functions. 849 850Wsizeof-pointer-div 851C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 852Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers. 853 854Wsizeof-array-div 855C ObjC C++ ObjC++ Var(warn_sizeof_array_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 856Warn about divisions of two sizeof operators when the first one is applied 857to an array and the divisor does not equal the size of the array element. 858 859Wsizeof-pointer-memaccess 860C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 861Warn about suspicious length parameters to certain string functions if the argument uses sizeof. 862 863Wsizeof-array-argument 864C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1) 865Warn when sizeof is applied on a parameter declared as an array. 866 867Wstring-compare 868C ObjC C++ LTO ObjC++ Warning Var(warn_string_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra) 869Warn about calls to strcmp and strncmp used in equality expressions that 870are necessarily true or false due to the length of one and size of the other 871argument. 872 873Wstringop-overflow 874C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0) 875Warn about buffer overflow in string manipulation functions like memcpy 876and strcpy. 877 878Wstringop-overflow= 879C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4) 880Under the control of Object Size type, warn about buffer overflow in string 881manipulation functions like memcpy and strcpy. 882 883Wstringop-overread 884C ObjC C++ LTO ObjC++ Var(warn_stringop_overread) Init(1) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall) 885Warn about reading past the end of a source array in string manipulation functions like memchr and memcpy. 886 887Wstringop-truncation 888C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall) 889Warn about truncation in string manipulation functions like strncat and strncpy. 890 891Wsuggest-attribute=format 892C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning 893Warn about functions which might be candidates for format attributes. 894 895Wsuggest-override 896C++ ObjC++ Var(warn_override) Warning 897Suggest that the override keyword be used when the declaration of a virtual 898function overrides another. 899 900Wswitch 901C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 902Warn about enumerated switches, with no default, missing a case. 903 904Wswitch-default 905C ObjC C++ ObjC++ Var(warn_switch_default) Warning 906Warn about enumerated switches missing a \"default:\" statement. 907 908Wswitch-enum 909C ObjC C++ ObjC++ Var(warn_switch_enum) Warning 910Warn about all enumerated switches missing a specific case. 911 912Wswitch-bool 913C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1) 914Warn about switches with boolean controlling expression. 915 916Wswitch-outside-range 917C ObjC C++ ObjC++ Var(warn_switch_outside_range) Warning Init(1) 918Warn about switch values that are outside of the switch's type range. 919 920Wtemplates 921C++ ObjC++ Var(warn_templates) Warning 922Warn on primary template declaration. 923 924Wmissing-attributes 925C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 926Warn about declarations of entities that may be missing attributes 927that related entities have been declared with. 928 929Wmissing-format-attribute 930C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format) 931; 932 933Wmissing-include-dirs 934C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning 935Warn about user-specified include directories that do not exist. 936 937Wmissing-parameter-type 938C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra) 939Warn about function parameters declared without a type specifier in K&R-style functions. 940 941Wmissing-prototypes 942C ObjC Var(warn_missing_prototypes) Warning 943Warn about global functions without prototypes. 944 945Wmudflap 946C ObjC C++ ObjC++ WarnRemoved 947 948Wmultichar 949C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning 950Warn about use of multi-character character constants. 951 952Wnarrowing 953C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat) 954Warn about narrowing conversions within { } that are ill-formed in C++11. 955 956Wnested-externs 957C ObjC Var(warn_nested_externs) Warning 958Warn about \"extern\" declarations not at file scope. 959 960Wnoexcept 961C++ ObjC++ Var(warn_noexcept) Warning 962Warn when a noexcept expression evaluates to false even though the expression can't actually throw. 963 964Wnoexcept-type 965C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat) 966Warn if C++17 noexcept function type will change the mangled name of a symbol. 967 968Wnon-template-friend 969C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning 970Warn when non-templatized friend functions are declared within a template. 971 972Wclass-conversion 973C++ ObjC++ Var(warn_class_conversion) Init(1) Warning 974Warn when a conversion function will never be called due to the type it converts to. 975 976Wclass-memaccess 977C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall) 978Warn for unsafe raw memory writes to objects of class types. 979 980Wnon-virtual-dtor 981C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++) 982Warn about non-virtual destructors. 983 984Wnonnull 985C ObjC C++ LTO ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=,warn_format >= 1,0) 986Warn about NULL being passed to argument slots marked as requiring non-NULL. 987 988Wnonnull 989C ObjC C++ LTO ObjC++ LangEnabledBy(C ObjC C++ LTO ObjC++,Wall) 990; 991 992Wnonnull-compare 993C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall) 994; 995 996Wnormalized 997C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none) 998; 999 1000Wnormalized= 1001C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) CppReason(CPP_W_NORMALIZE) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level) 1002-Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings. 1003 1004; Required for these enum values. 1005SourceInclude 1006cpplib.h 1007 1008Enum 1009Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized) 1010 1011EnumValue 1012Enum(cpp_normalize_level) String(none) Value(normalized_none) 1013 1014EnumValue 1015Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC) 1016 1017EnumValue 1018Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C) 1019 1020EnumValue 1021Enum(cpp_normalize_level) String(nfc) Value(normalized_C) 1022 1023Wobjc-root-class 1024ObjC ObjC++ Var(warn_objc_root_class) Warning Init(1) 1025Warn if a class interface has no superclass. Root classes may use an attribute 1026to suppress this warning. 1027 1028Wold-style-cast 1029C++ ObjC++ Var(warn_old_style_cast) Warning 1030Warn if a C-style cast is used in a program. 1031 1032Wold-style-declaration 1033C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra) 1034Warn for obsolescent usage in a declaration. 1035 1036Wold-style-definition 1037C ObjC Var(warn_old_style_definition) Init(-1) Warning 1038Warn if an old-style parameter definition is used. 1039 1040Wopenmp-simd 1041C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall) 1042Warn if a simd directive is overridden by the vectorizer cost model. 1043 1044Woverlength-strings 1045C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic) 1046Warn if a string is longer than the maximum portable length specified by the standard. 1047 1048Woverloaded-virtual 1049C++ ObjC++ Var(warn_overloaded_virtual) Warning 1050Warn about overloaded virtual function names. 1051 1052Woverride-init 1053C ObjC Var(warn_override_init) Warning EnabledBy(Wextra) 1054Warn about overriding initializers without side effects. 1055 1056Woverride-init-side-effects 1057C ObjC Var(warn_override_init_side_effects) Init(1) Warning 1058Warn about overriding initializers with side effects. 1059 1060Wpacked-bitfield-compat 1061C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning 1062Warn about packed bit-fields whose offset changed in GCC 4.4. 1063 1064Wparentheses 1065C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1066Warn about possibly missing parentheses. 1067 1068Wpedantic 1069C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning 1070; Documented in common.opt 1071 1072Wpessimizing-move 1073C++ ObjC++ Var(warn_pessimizing_move) Warning LangEnabledBy(C++ ObjC++, Wall) 1074Warn about calling std::move on a local object in a return statement preventing copy elision. 1075 1076Wpmf-conversions 1077C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning 1078Warn when converting the type of pointers to member functions. 1079 1080Wpointer-arith 1081C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic) 1082Warn about function pointer arithmetic. 1083 1084Wpointer-sign 1085C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic) 1086Warn when a pointer differs in signedness in an assignment. 1087 1088Wpointer-compare 1089C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning 1090Warn when a pointer is compared with a zero character constant. 1091 1092Wpointer-to-int-cast 1093C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning 1094Warn when a pointer is cast to an integer of a different size. 1095 1096Wpragmas 1097C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning 1098Warn about misuses of pragmas. 1099 1100Wprio-ctor-dtor 1101C ObjC C++ ObjC++ Var(warn_prio_ctor_dtor) Init(1) Warning 1102Warn if constructor or destructors with priorities from 0 to 100 are used. 1103 1104Wproperty-assign-default 1105ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning 1106Warn if a property for an Objective-C object has no assign semantics specified. 1107 1108Wprotocol 1109ObjC ObjC++ Var(warn_protocol) Init(1) Warning 1110Warn if inherited methods are unimplemented. 1111 1112Wplacement-new 1113C++ Warning Alias(Wplacement-new=, 1, 0) 1114Warn for placement new expressions with undefined behavior. 1115 1116Wplacement-new= 1117C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2) 1118Warn for placement new expressions with undefined behavior. 1119 1120Wredundant-decls 1121C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning 1122Warn about multiple declarations of the same object. 1123 1124Wredundant-move 1125C++ ObjC++ Var(warn_redundant_move) Warning LangEnabledBy(C++ ObjC++,Wextra) 1126Warn about redundant calls to std::move. 1127 1128Wregister 1129C++ ObjC++ Var(warn_register) Warning 1130Warn about uses of register storage specifier. 1131 1132Wreorder 1133C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall) 1134Warn when the compiler reorders code. 1135 1136Wreturn-type 1137C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1) 1138Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++). 1139 1140Wscalar-storage-order 1141C ObjC C++ ObjC++ Var(warn_scalar_storage_order) Init(1) Warning 1142Warn on suspicious constructs involving reverse scalar storage order. 1143 1144Wselector 1145ObjC ObjC++ Var(warn_selector) Warning 1146Warn if a selector has multiple methods. 1147 1148Wsequence-point 1149C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1150Warn about possible violations of sequence point rules. 1151 1152Wshadow-ivar 1153ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning 1154Warn if a local declaration hides an instance variable. 1155 1156Wshift-overflow 1157C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0) 1158Warn if left shift of a signed value overflows. 1159 1160Wshift-overflow= 1161C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2) 1162Warn if left shift of a signed value overflows. 1163 1164Wshift-count-negative 1165C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning 1166Warn if shift count is negative. 1167 1168Wshift-count-overflow 1169C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning 1170Warn if shift count >= width of type. 1171 1172Wshift-negative-value 1173C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning 1174Warn if left shifting a negative value. 1175 1176Warith-conversion 1177C ObjC C++ ObjC++ Var(warn_arith_conv) Warning 1178Warn if conversion of the result of arithmetic might change the value even though converting the operands cannot. 1179 1180Wsign-compare 1181C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall) 1182Warn about signed-unsigned comparisons. 1183 1184Wsign-compare 1185C ObjC C++ ObjC++ EnabledBy(Wextra) 1186; 1187 1188Wsign-conversion 1189C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion) 1190Warn for implicit type conversions between signed and unsigned integers. 1191 1192Wsign-promo 1193C++ ObjC++ Var(warn_sign_promo) Warning 1194Warn when overload promotes from unsigned to signed. 1195 1196Wstrict-null-sentinel 1197C++ ObjC++ Warning Var(warn_strict_null_sentinel) 1198Warn about uncasted NULL used as sentinel. 1199 1200Wstrict-prototypes 1201C ObjC Var(warn_strict_prototypes) Warning 1202Warn about unprototyped function declarations. 1203 1204Wstrict-aliasing= 1205C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3) 1206; 1207 1208Wstrict-overflow= 1209C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5) 1210; 1211 1212Wstrict-selector-match 1213ObjC ObjC++ Var(warn_strict_selector_match) Warning 1214Warn if type signatures of candidate methods do not match exactly. 1215 1216Wsync-nand 1217C C++ Var(warn_sync_nand) Init(1) Warning 1218Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used. 1219 1220Wsynth 1221C++ ObjC++ Var(warn_synth) Warning 1222Deprecated. This switch has no effect. 1223 1224Wsystem-headers 1225C ObjC C++ ObjC++ Warning 1226; Documented in common.opt 1227 1228Wtautological-compare 1229C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1230Warn if a comparison always evaluates to true or false. 1231 1232Wterminate 1233C++ ObjC++ Warning Var(warn_terminate) Init(1) 1234Warn if a throw expression will always result in a call to terminate(). 1235 1236Wtraditional 1237C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning 1238Warn about features not present in traditional C. 1239 1240Wtraditional-conversion 1241C ObjC Var(warn_traditional_conversion) Warning 1242Warn of prototypes causing type conversions different from what would happen in the absence of prototype. 1243 1244Wtrigraphs 1245C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1246Warn if trigraphs are encountered that might affect the meaning of the program. 1247 1248Wundeclared-selector 1249ObjC ObjC++ Var(warn_undeclared_selector) Warning 1250Warn about @selector()s without previously declared methods. 1251 1252Wundef 1253C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning 1254Warn if an undefined macro is used in an #if directive. 1255 1256Wuninitialized 1257C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall) 1258; 1259 1260Wmaybe-uninitialized 1261C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall) 1262; 1263 1264Wunknown-pragmas 1265C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) 1266Warn about unrecognized pragmas. 1267 1268Wunsuffixed-float-constants 1269C ObjC Var(warn_unsuffixed_float_constants) Warning 1270Warn about unsuffixed float constants. 1271 1272Wunused 1273C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall) 1274; documented in common.opt 1275 1276Wunused-local-typedefs 1277C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused) 1278Warn when typedefs locally defined in a function are not used. 1279 1280Wunused-macros 1281C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning 1282Warn about macros defined in the main file that are not used. 1283 1284Wunused-result 1285C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning 1286Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value. 1287 1288Wunused-variable 1289C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused) 1290; documented in common.opt 1291 1292Wunused-const-variable 1293C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0) 1294Warn when a const variable is unused. 1295 1296Wunused-const-variable= 1297C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2) 1298Warn when a const variable is unused. 1299 1300Wvariadic-macros 1301C ObjC C++ ObjC++ CPP(warn_variadic_macros) CppReason(CPP_W_VARIADIC_MACROS) Var(cpp_warn_variadic_macros) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic || Wtraditional) 1302Warn about using variadic macros. 1303 1304Wvarargs 1305C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1) 1306Warn about questionable usage of the macros used to retrieve variable arguments. 1307 1308Wvexing-parse 1309C++ ObjC++ Warning Var(warn_vexing_parse) Init(1) 1310Warn about the most vexing parse syntactic ambiguity. 1311 1312Wvla 1313C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning 1314Warn if a variable length array is used. 1315 1316Wvla-larger-than= 1317C ObjC C++ LTO ObjC++ Var(warn_vla_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX) 1318-Wvla-larger-than=<number> Warn on unbounded uses of variable-length 1319arrays, and on bounded uses of variable-length arrays whose bound can be 1320larger than <number> bytes. 1321 1322Wno-vla-larger-than 1323C ObjC C++ LTO ObjC++ Alias(Wvla-larger-than=,18446744073709551615EiB,none) Warning 1324Disable Wvla-larger-than= warning. Equivalent to Wvla-larger-than=<SIZE_MAX> or larger. 1325 1326Wvla-parameter 1327C ObjC C++ ObjC++ Var(warn_vla_parameter) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1328Warn about mismatched declarations of VLA parameters. 1329 1330Wvolatile 1331C++ ObjC++ Var(warn_volatile) Warning 1332Warn about deprecated uses of volatile qualifier. 1333 1334Wvolatile-register-var 1335C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) 1336Warn when a register variable is declared volatile. 1337 1338Wvirtual-inheritance 1339C++ ObjC++ Var(warn_virtual_inheritance) Warning 1340Warn on direct virtual inheritance. 1341 1342Wvirtual-move-assign 1343C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1) 1344Warn if a virtual base has a non-trivial move assignment operator. 1345 1346Wwrite-strings 1347C ObjC C++ ObjC++ Var(warn_write_strings) Warning 1348In 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. 1349 1350Wzero-as-null-pointer-constant 1351C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning 1352Warn when a literal '0' is used as null pointer. 1353 1354Wuseless-cast 1355C++ ObjC++ Var(warn_useless_cast) Warning 1356Warn about useless casts. 1357 1358Wsubobject-linkage 1359C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1) 1360Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage. 1361 1362Wduplicate-decl-specifier 1363C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall) 1364Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier. 1365 1366Wrestrict 1367C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall) 1368Warn when an argument passed to a restrict-qualified parameter aliases with 1369another argument. 1370 1371ansi 1372C ObjC C++ ObjC++ 1373A synonym for -std=c89 (for C) or -std=c++98 (for C++). 1374 1375d 1376C ObjC C++ ObjC++ Joined 1377; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD? 1378 1379fabi-compat-version= 1380C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1) 1381The version of the C++ ABI used for -Wabi warnings and link compatibility aliases. 1382 1383faccess-control 1384C++ ObjC++ Var(flag_access_control) Init(1) 1385Enforce class member access control semantics. 1386 1387fada-spec-parent= 1388C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent) 1389-fada-spec-parent=unit Dump Ada specs as child units of given parent. 1390 1391faligned-new 1392C++ ObjC++ Alias(faligned-new=,1,0) 1393Support C++17 allocation of over-aligned types. 1394 1395faligned-new= 1396C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1) 1397-faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N. 1398 1399fall-virtual 1400C++ ObjC++ WarnRemoved 1401 1402fallow-parameterless-variadic-functions 1403C ObjC Var(flag_allow_parameterless_variadic_functions) 1404Allow variadic functions without named parameter. 1405 1406falt-external-templates 1407C++ ObjC++ WarnRemoved 1408No longer supported. 1409 1410fasm 1411C ObjC C++ ObjC++ Var(flag_no_asm, 0) 1412Recognize the \"asm\" keyword. 1413 1414; Define extra predefined macros for use in libgcc. 1415fbuilding-libgcc 1416C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc) 1417 1418fbuiltin 1419C ObjC C++ ObjC++ Var(flag_no_builtin, 0) 1420Recognize built-in functions. 1421 1422fbuiltin- 1423C ObjC C++ ObjC++ Joined 1424 1425fcanonical-system-headers 1426C ObjC C++ ObjC++ 1427Where shorter, use canonicalized paths to systems headers. 1428 1429fchar8_t 1430C++ ObjC++ Var(flag_char8_t) Init(-1) 1431Enable the char8_t fundamental type and use it as the type for UTF-8 string 1432and character literals. 1433 1434fcheck-pointer-bounds 1435C ObjC C++ ObjC++ LTO WarnRemoved 1436Removed in GCC 9. This switch has no effect. 1437 1438fchkp-check-incomplete-type 1439C ObjC C++ ObjC++ LTO WarnRemoved 1440Removed in GCC 9. This switch has no effect. 1441 1442fchkp-zero-input-bounds-for-main 1443C ObjC C++ ObjC++ LTO WarnRemoved 1444Removed in GCC 9. This switch has no effect. 1445 1446fchkp-first-field-has-own-bounds 1447C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative 1448Removed in GCC 9. This switch has no effect. 1449 1450fchkp-narrow-bounds 1451C ObjC C++ ObjC++ LTO WarnRemoved 1452Removed in GCC 9. This switch has no effect. 1453 1454fchkp-narrow-to-innermost-array 1455C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative 1456Removed in GCC 9. This switch has no effect. 1457 1458fchkp-flexible-struct-trailing-arrays 1459C ObjC C++ ObjC++ LTO WarnRemoved 1460Removed in GCC 9. This switch has no effect. 1461 1462fchkp-optimize 1463C ObjC C++ ObjC++ LTO WarnRemoved 1464 1465fchkp-use-fast-string-functions 1466C ObjC C++ ObjC++ LTO WarnRemoved 1467Removed in GCC 9. This switch has no effect. 1468 1469fchkp-use-nochk-string-functions 1470C ObjC C++ ObjC++ LTO WarnRemoved 1471Removed in GCC 9. This switch has no effect. 1472 1473fchkp-use-static-bounds 1474C ObjC C++ ObjC++ LTO WarnRemoved 1475Removed in GCC 9. This switch has no effect. 1476 1477fchkp-use-static-const-bounds 1478C ObjC C++ ObjC++ LTO WarnRemoved 1479Removed in GCC 9. This switch has no effect. 1480 1481fchkp-treat-zero-dynamic-size-as-infinite 1482C ObjC C++ ObjC++ LTO WarnRemoved 1483Removed in GCC 9. This switch has no effect. 1484 1485fchkp-check-read 1486C ObjC C++ ObjC++ LTO WarnRemoved 1487Removed in GCC 9. This switch has no effect. 1488 1489fchkp-check-write 1490C ObjC C++ ObjC++ LTO WarnRemoved 1491Removed in GCC 9. This switch has no effect. 1492 1493fchkp-store-bounds 1494C ObjC C++ ObjC++ LTO WarnRemoved 1495Removed in GCC 9. This switch has no effect. 1496 1497fchkp-instrument-calls 1498C ObjC C++ ObjC++ LTO WarnRemoved 1499Removed in GCC 9. This switch has no effect. 1500 1501fchkp-instrument-marked-only 1502C ObjC C++ ObjC++ LTO WarnRemoved 1503Removed in GCC 9. This switch has no effect. 1504 1505fchkp-use-wrappers 1506C ObjC C++ ObjC++ LTO WarnRemoved 1507Removed in GCC 9. This switch has no effect. 1508 1509static-libmpx 1510Driver WarnRemoved 1511Removed in GCC 9. This switch has no effect. 1512 1513static-libmpxwrappers 1514Driver WarnRemoved 1515Removed in GCC 9. This switch has no effect. 1516 1517fcilkplus 1518C ObjC C++ ObjC++ LTO Undocumented Ignore 1519Removed in GCC 8. This switch has no effect. 1520 1521fconcepts 1522C++ ObjC++ Var(flag_concepts) 1523Enable support for C++ concepts. 1524 1525fconcepts-ts 1526C++ ObjC++ Var(flag_concepts_ts) Init(0) 1527Enable certain features present in the Concepts TS. 1528 1529fconcepts-diagnostics-depth= 1530C++ ObjC++ Joined RejectNegative UInteger Var(concepts_diagnostics_max_depth) Init(1) 1531Specify maximum error replay depth during recursive diagnosis of a constraint satisfaction failure. 1532 1533fcond-mismatch 1534C ObjC C++ ObjC++ 1535Allow the arguments of the '?' operator to have different types. 1536 1537fconserve-space 1538C++ ObjC++ Ignore 1539Does nothing. Preserved for backward compatibility. 1540 1541fconstant-string-class= 1542ObjC ObjC++ Joined MissingArgError(no class name specified with %qs) 1543-fconst-string-class=<name> Use class <name> for constant strings. 1544 1545fconstexpr-depth= 1546C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512) 1547-fconstexpr-depth=<number> Specify maximum constexpr recursion depth. 1548 1549fconstexpr-cache-depth= 1550C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_cache_depth) Init(8) 1551-fconstexpr-cache-depth=<number> Specify maximum constexpr recursion cache depth. 1552 1553fconstexpr-loop-limit= 1554C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144) 1555-fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count. 1556 1557fconstexpr-ops-limit= 1558C++ ObjC++ Joined RejectNegative Host_Wide_Int Var(constexpr_ops_limit) Init(33554432) 1559-fconstexpr-ops-limit=<number> Specify maximum number of constexpr operations during a single constexpr evaluation. 1560 1561fcoroutines 1562C++ LTO Var(flag_coroutines) 1563Enable C++ coroutines (experimental). 1564 1565fdebug-cpp 1566C ObjC C++ ObjC++ 1567Emit debug annotations during preprocessing. 1568 1569fdeduce-init-list 1570C++ ObjC++ Ignore 1571Does nothing. Preserved for backward compatibility. 1572 1573fdeclone-ctor-dtor 1574C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1) 1575Factor complex constructors and destructors to favor space over speed. 1576 1577fdefault-inline 1578C++ ObjC++ Ignore 1579Does nothing. Preserved for backward compatibility. 1580 1581fdiagnostics-show-template-tree 1582C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0) 1583Print hierarchical comparisons when template types are mismatched. 1584 1585fdirectives-only 1586C ObjC C++ ObjC++ 1587Preprocess directives only. 1588 1589fdollars-in-identifiers 1590C ObjC C++ ObjC++ 1591Permit '$' as an identifier character. 1592 1593fmacro-prefix-map= 1594C ObjC C++ ObjC++ Joined RejectNegative 1595-fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE(). 1596 1597fdump-ada-spec 1598C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec) 1599Write all declarations as Ada code transitively. 1600 1601fdump-ada-spec-slim 1602C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim) 1603Write all declarations as Ada code for the given file only. 1604 1605felide-constructors 1606C++ ObjC++ Var(flag_elide_constructors) Init(1) 1607 1608felide-type 1609C++ ObjC++ Var(flag_elide_type) Init(1) 1610Do not elide common elements in template comparisons. 1611 1612fenforce-eh-specs 1613C++ ObjC++ Var(flag_enforce_eh_specs) Init(1) 1614Generate code to check exception specifications. 1615 1616fenum-int-equiv 1617C++ ObjC++ WarnRemoved 1618 1619fexec-charset= 1620C ObjC C++ ObjC++ Joined RejectNegative 1621-fexec-charset=<cset> Convert all strings and character constants to character set <cset>. 1622 1623fextended-identifiers 1624C ObjC C++ ObjC++ 1625Permit universal character names (\\u and \\U) in identifiers. 1626 1627finput-charset= 1628C ObjC C++ ObjC++ Joined RejectNegative 1629-finput-charset=<cset> Specify the default character set for source files. 1630 1631fextern-tls-init 1632C++ ObjC++ Var(flag_extern_tls_init) Init(-1) 1633Support dynamic initialization of thread-local variables in a different translation unit. 1634 1635fexternal-templates 1636C++ ObjC++ WarnRemoved 1637 1638ffor-scope 1639C++ ObjC++ WarnRemoved 1640 1641ffreestanding 1642C ObjC C++ ObjC++ 1643Do not assume that standard C libraries and \"main\" exist. 1644 1645fgnu-keywords 1646C++ ObjC++ Var(flag_no_gnu_keywords, 0) 1647Recognize GNU-defined keywords. 1648 1649fgnu-runtime 1650ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME) 1651Generate code for GNU runtime environment. 1652 1653fgnu89-inline 1654C ObjC Var(flag_gnu89_inline) Init(-1) 1655Use traditional GNU semantics for inline functions. 1656 1657fguiding-decls 1658C++ ObjC++ WarnRemoved 1659 1660fhandle-exceptions 1661C++ ObjC++ Optimization Alias(fexceptions) Warn({%<-fhandle-exceptions%> has been renamed %<-fexceptions%> (and is now on by default)}) 1662 1663fhonor-std 1664C++ ObjC++ WarnRemoved 1665 1666fhosted 1667C ObjC 1668Assume normal C execution environment. 1669 1670fhuge-objects 1671C++ ObjC++ WarnRemoved 1672No longer supported. 1673 1674fimplement-inlines 1675C++ ObjC++ Var(flag_implement_inlines) Init(1) 1676Export functions even if they can be inlined. 1677 1678fimplicit-inline-templates 1679C++ ObjC++ Var(flag_implicit_inline_templates) Init(1) 1680Emit implicit instantiations of inline templates. 1681 1682fimplicit-templates 1683C++ ObjC++ Var(flag_implicit_templates) Init(1) 1684Emit implicit instantiations of templates. 1685 1686fnew-inheriting-ctors 1687C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1) 1688Implement C++17 inheriting constructor semantics. 1689 1690ffriend-injection 1691C++ ObjC++ WarnRemoved 1692 1693fkeep-inline-dllexport 1694C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES) 1695Don't emit dllexported inline functions unless needed. 1696 1697flabels-ok 1698C++ ObjC++ WarnRemoved 1699 1700flax-vector-conversions 1701C ObjC C++ ObjC++ Var(flag_lax_vector_conversions) 1702Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types. 1703 1704fmodules-ts 1705C++ ObjC++ Var(flag_modules) Integer Init(0) 1706Enable C++ modules-ts (experimental). 1707 1708fno-modules 1709C++ ObjC++ Undocumented RejectNegative Var(flag_modules,0) Integer 1710;; undocumented 1711 1712fmodule-header 1713C++ ObjC RejectNegative Var(flag_header_unit,0) Integer 1714Enable C++ header module (experimental). 1715 1716fmodule-header= 1717C++ ObjC++ Joined RejectNegative Undocumented 1718 1719fmodule-implicit-inline 1720C++ ObjC++ Var(flag_module_implicit_inline,0) Integer 1721Member functions defined within their class are inline in module purview. 1722 1723fmodule-only 1724C++ ObjC RejectNegative Var(flag_module_only) Integer 1725Only emit Compiled Module Interface. 1726 1727fmodule-mapper= 1728C++ ObjC++ Joined RejectNegative MissingArgError(missing mapper) 1729Mapper for module to CMI files. 1730 1731fmodule-lazy 1732C++ ObjC++ Var(flag_module_lazy) Init(1) 1733Enable lazy module importing. 1734 1735fmodule-version-ignore 1736C++ ObjC Var(flag_module_version_ignore) Integer 1737; undocumented, Very dangerous, but occasionally useful 1738 1739Winvalid-imported-macros 1740C++ ObjC++ Var(warn_imported_macros) Warning 1741Warn about macros that have conflicting header units definitions. 1742 1743flang-info-include-translate 1744C++ Var(note_include_translate_yes) 1745Note #include directives translated to import declarations. 1746 1747flang-info-include-translate-not 1748C++ Var(note_include_translate_no) 1749Note #include directives not translated to import declarations, and not known to be textual. 1750 1751flang-info-include-translate= 1752C++ Joined RejectNegative MissingArgError(missing header name) 1753Note a #include translation of a specific header. 1754 1755flang-info-module-cmi 1756C++ Var(note_module_cmi_yes) 1757Note Compiled Module Interface pathnames. 1758 1759flang-info-module-cmi= 1760C++ Joined RejectNegative MissingArgError(missing module name) 1761Note Compiled Module Interface pathname of a specific module or header-unit. 1762 1763fmax-include-depth= 1764C ObjC C++ ObjC++ Joined RejectNegative UInteger 1765fmax-include-depth=<number> Set the maximum depth of the nested #include. 1766 1767fms-extensions 1768C ObjC C++ ObjC++ Var(flag_ms_extensions) 1769Don't warn about uses of Microsoft extensions. 1770 1771fmudflap 1772C ObjC C++ ObjC++ WarnRemoved 1773 1774fmudflapth 1775C ObjC C++ ObjC++ WarnRemoved 1776 1777fmudflapir 1778C ObjC C++ ObjC++ WarnRemoved 1779 1780fname-mangling-version- 1781C++ ObjC++ Joined WarnRemoved 1782 1783fnew-abi 1784C++ ObjC++ WarnRemoved 1785 1786fnew-ttp-matching 1787C++ ObjC++ Var(flag_new_ttp) 1788Implement resolution of DR 150 for matching of template template arguments. 1789 1790fnext-runtime 1791ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime) 1792Generate code for NeXT (Apple Mac OS X) runtime environment. 1793 1794fnil-receivers 1795ObjC ObjC++ Var(flag_nil_receivers) Init(1) 1796Assume that receivers of Objective-C messages may be nil. 1797 1798flocal-ivars 1799ObjC ObjC++ Var(flag_local_ivars) Init(1) 1800Allow access to instance variables as if they were local declarations within instance method implementations. 1801 1802fivar-visibility= 1803ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED) 1804-fvisibility=[private|protected|public|package] Set the default symbol visibility. 1805 1806Enum 1807Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs) 1808 1809EnumValue 1810Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE) 1811 1812EnumValue 1813Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED) 1814 1815EnumValue 1816Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC) 1817 1818EnumValue 1819Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE) 1820 1821fnonansi-builtins 1822C++ ObjC++ Var(flag_no_nonansi_builtin, 0) 1823 1824fnonnull-objects 1825C++ ObjC++ WarnRemoved 1826 1827fnothrow-opt 1828C++ ObjC++ Optimization Var(flag_nothrow_opt) 1829Treat a throw() exception specification as noexcept to improve code size. 1830 1831fobjc-abi-version= 1832ObjC ObjC++ LTO Joined RejectNegative UInteger Var(flag_objc_abi) 1833Specify which ABI to use for Objective-C family code and meta-data generation. 1834 1835; Generate special '- .cxx_construct' and '- .cxx_destruct' methods 1836; to initialize any non-POD ivars in Objective-C++ classes. 1837fobjc-call-cxx-cdtors 1838ObjC++ Var(flag_objc_call_cxx_cdtors) 1839Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed. 1840 1841fobjc-direct-dispatch 1842ObjC ObjC++ Var(flag_objc_direct_dispatch) 1843Allow fast jumps to the message dispatcher. 1844 1845; Nonzero means that we will allow new ObjC exception syntax (@throw, 1846; @try, etc.) in source code. 1847fobjc-exceptions 1848ObjC ObjC++ Var(flag_objc_exceptions) 1849Enable Objective-C exception and synchronization syntax. 1850 1851fobjc-gc 1852ObjC ObjC++ LTO Var(flag_objc_gc) 1853Enable garbage collection (GC) in Objective-C/Objective-C++ programs. 1854 1855fobjc-nilcheck 1856ObjC ObjC++ Var(flag_objc_nilcheck,1) 1857Enable inline checks for nil receivers with the NeXT runtime and ABI version 2. 1858 1859; Nonzero means that we generate NeXT setjmp based exceptions. 1860fobjc-sjlj-exceptions 1861ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1) 1862Enable Objective-C setjmp exception handling runtime. 1863 1864fobjc-std=objc1 1865ObjC ObjC++ Var(flag_objc1_only) 1866Conform to the Objective-C 1.0 language as implemented in GCC 4.0. 1867 1868fopenacc 1869C ObjC C++ ObjC++ LTO Var(flag_openacc) 1870Enable OpenACC. 1871 1872fopenacc-dim= 1873C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims) 1874Specify default OpenACC compute dimensions. 1875 1876fopenmp 1877C ObjC C++ ObjC++ LTO Var(flag_openmp) 1878Enable OpenMP (implies -frecursive in Fortran). 1879 1880fopenmp-simd 1881C ObjC C++ ObjC++ Var(flag_openmp_simd) 1882Enable OpenMP's SIMD directives. 1883 1884foperator-names 1885C++ ObjC++ 1886Recognize C++ keywords like \"compl\" and \"xor\". 1887 1888foptional-diags 1889C++ ObjC++ Ignore 1890Does nothing. Preserved for backward compatibility. 1891 1892fpch-deps 1893C ObjC C++ ObjC++ 1894 1895fpch-preprocess 1896C ObjC C++ ObjC++ 1897Look for and use PCH files even when preprocessing. 1898 1899fpermissive 1900C++ ObjC++ Var(flag_permissive) 1901Downgrade conformance errors to warnings. 1902 1903fplan9-extensions 1904C ObjC Var(flag_plan9_extensions) 1905Enable Plan 9 language extensions. 1906 1907fpreprocessed 1908C ObjC C++ ObjC++ 1909Treat the input file as already preprocessed. 1910 1911ftrack-macro-expansion 1912C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger 1913; converted into ftrack-macro-expansion= 1914 1915ftrack-macro-expansion= 1916C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger 1917-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages. 1918 1919fpretty-templates 1920C++ ObjC++ Var(flag_pretty_templates) Init(1) 1921Do not pretty-print template specializations as the template signature followed by the arguments. 1922 1923fprintf-return-value 1924C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1) 1925Treat known sprintf return values as constants. 1926 1927freplace-objc-classes 1928ObjC ObjC++ LTO Var(flag_replace_objc_classes) 1929Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime. 1930 1931frepo 1932C++ ObjC++ WarnRemoved 1933Removed in GCC 10. This switch has no effect. 1934 1935frtti 1936C++ ObjC++ Optimization Var(flag_rtti) Init(1) 1937Generate run time type descriptor information. 1938 1939fshort-enums 1940C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums) 1941Use the narrowest integer type possible for enumeration types. 1942 1943fshort-wchar 1944C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar) 1945Force the underlying type for \"wchar_t\" to be \"unsigned short\". 1946 1947fsigned-bitfields 1948C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1) 1949When \"signed\" or \"unsigned\" is not given make the bitfield signed. 1950 1951fsigned-char 1952C ObjC C++ ObjC++ LTO Var(flag_signed_char) 1953Make \"char\" signed by default. 1954 1955fsized-deallocation 1956C++ ObjC++ Var(flag_sized_deallocation) Init(-1) 1957Enable C++14 sized deallocation support. 1958 1959fsquangle 1960C++ ObjC++ WarnRemoved 1961 1962fsso-struct= 1963C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE) 1964-fsso-struct=[big-endian|little-endian|native] Set the default scalar storage order. 1965 1966Enum 1967Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs) 1968 1969EnumValue 1970Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN) 1971 1972EnumValue 1973Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN) 1974 1975EnumValue 1976Enum(sso_struct) String(native) Value(SSO_NATIVE) 1977 1978fstats 1979C++ ObjC++ Var(flag_detailed_statistics) 1980Display statistics accumulated during compilation. 1981 1982fstrict-enums 1983C++ ObjC++ Optimization Var(flag_strict_enums) 1984Assume that values of enumeration type are always within the minimum range of that type. 1985 1986fstrict-prototype 1987C++ ObjC++ WarnRemoved 1988 1989fstrong-eval-order 1990C++ ObjC++ Common Alias(fstrong-eval-order=, all, none) 1991Follow the C++17 evaluation order requirements for assignment expressions, 1992shift, member function calls, etc. 1993 1994fstrong-eval-order= 1995C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1) 1996Follow the C++17 evaluation order requirements for assignment expressions, 1997shift, member function calls, etc. 1998 1999Enum 2000Name(strong_eval_order) Type(int) 2001 2002EnumValue 2003Enum(strong_eval_order) String(none) Value(0) 2004 2005EnumValue 2006Enum(strong_eval_order) String(some) Value(1) 2007 2008EnumValue 2009Enum(strong_eval_order) String(all) Value(2) 2010 2011ftemplate-backtrace-limit= 2012C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10) 2013Set the maximum number of template instantiation notes for a single warning or error. 2014 2015ftemplate-depth- 2016C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=) 2017 2018ftemplate-depth= 2019C++ ObjC++ Joined RejectNegative UInteger 2020-ftemplate-depth=<number> Specify maximum template instantiation depth. 2021 2022fthis-is-variable 2023C++ ObjC++ WarnRemoved 2024 2025fthreadsafe-statics 2026C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1) 2027-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics. 2028 2029funsigned-bitfields 2030C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0) 2031When \"signed\" or \"unsigned\" is not given make the bitfield unsigned. 2032 2033funsigned-char 2034C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0) 2035Make \"char\" unsigned by default. 2036 2037fuse-cxa-atexit 2038C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT) 2039Use __cxa_atexit to register destructors. 2040 2041fuse-cxa-get-exception-ptr 2042C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2) 2043Use __cxa_get_exception_ptr in exception handling. 2044 2045fvisibility-inlines-hidden 2046C++ ObjC++ 2047Marks all inlined functions and methods as having hidden visibility. 2048 2049fvisibility-ms-compat 2050C++ ObjC++ Var(flag_visibility_ms_compat) 2051Changes visibility to match Microsoft Visual Studio by default. 2052 2053fvtable-gc 2054C++ ObjC++ WarnRemoved 2055No longer supported. 2056 2057fvtable-thunks 2058C++ ObjC++ WarnRemoved 2059No longer supported. 2060 2061fweak 2062C++ ObjC++ Var(flag_weak) Init(1) 2063Emit common-like symbols as weak symbols. 2064 2065fwide-exec-charset= 2066C ObjC C++ ObjC++ Joined RejectNegative 2067-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>. 2068 2069fworking-directory 2070C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1) 2071Generate a #line directive pointing at the current working directory. 2072 2073fxref 2074C++ ObjC++ WarnRemoved 2075No longer supported. 2076 2077fzero-link 2078ObjC ObjC++ Var(flag_zero_link) 2079Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode. 2080 2081gen-decls 2082ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative 2083Dump declarations to a .decl file. 2084 2085femit-struct-debug-baseonly 2086C ObjC C++ ObjC++ 2087-femit-struct-debug-baseonly Aggressive reduced debug info for structs. 2088 2089femit-struct-debug-reduced 2090C ObjC C++ ObjC++ 2091-femit-struct-debug-reduced Conservative reduced debug info for structs. 2092 2093femit-struct-debug-detailed= 2094C ObjC C++ ObjC++ Joined 2095-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs. 2096 2097fext-numeric-literals 2098C++ ObjC++ Var(flag_ext_numeric_literals) Init(1) 2099Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding 2100number literal rather than a user-defined number literal. 2101 2102idirafter 2103C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 2104-idirafter <dir> Add <dir> to the end of the system include path. 2105 2106imacros 2107C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) 2108-imacros <file> Accept definition of macros in <file>. 2109 2110imultilib 2111C ObjC C++ ObjC++ Joined Separate 2112-imultilib <dir> Set <dir> to be the multilib include subdirectory. 2113 2114include 2115C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) 2116-include <file> Include the contents of <file> before other files. 2117 2118iprefix 2119C ObjC C++ ObjC++ Joined Separate 2120-iprefix <path> Specify <path> as a prefix for next two options. 2121 2122isysroot 2123C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 2124-isysroot <dir> Set <dir> to be the system root directory. 2125 2126isystem 2127C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 2128-isystem <dir> Add <dir> to the start of the system include path. 2129 2130iquote 2131C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs) 2132-iquote <dir> Add <dir> to the end of the quote include path. 2133 2134iwithprefix 2135C ObjC C++ ObjC++ Joined Separate 2136-iwithprefix <dir> Add <dir> to the end of the system include path. 2137 2138iwithprefixbefore 2139C ObjC C++ ObjC++ Joined Separate 2140-iwithprefixbefore <dir> Add <dir> to the end of the main include path. 2141 2142lang-asm 2143C Undocumented RejectDriver 2144 2145no-integrated-cpp 2146Driver 2147 2148nostdinc 2149C ObjC C++ ObjC++ 2150Do not search standard system include directories (those specified with -isystem will still be used). 2151 2152nostdinc++ 2153C++ ObjC++ 2154Do not search standard system include directories for C++. 2155 2156o 2157C ObjC C++ ObjC++ Joined Separate 2158; Documented in common.opt 2159 2160pedantic 2161C ObjC C++ ObjC++ Alias(Wpedantic) 2162; Documented in common.opt 2163 2164print-objc-runtime-info 2165ObjC ObjC++ 2166Generate C header of platform-specific features. 2167 2168remap 2169C ObjC C++ ObjC++ 2170Remap file names when including files. 2171 2172std=c++98 2173C++ ObjC++ 2174Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum. 2175 2176std=c++03 2177C++ ObjC++ Alias(std=c++98) 2178Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum. 2179 2180std=c++11 2181C++ ObjC++ 2182Conform to the ISO 2011 C++ standard. 2183 2184std=c++0x 2185C++ ObjC++ Alias(std=c++11) Undocumented 2186Deprecated in favor of -std=c++11. 2187 2188std=c++1y 2189C++ ObjC++ Alias(std=c++14) Undocumented 2190Deprecated in favor of -std=c++14. 2191 2192std=c++14 2193C++ ObjC++ 2194Conform to the ISO 2014 C++ standard. 2195 2196std=c++1z 2197C++ ObjC++ Alias(std=c++17) Undocumented 2198Deprecated in favor of -std=c++17. 2199 2200std=c++17 2201C++ ObjC++ 2202Conform to the ISO 2017 C++ standard. 2203 2204std=c++2a 2205C++ ObjC++ Alias(std=c++20) Undocumented 2206Conform to the ISO 2020 C++ standard (experimental and incomplete support). 2207 2208std=c++20 2209C++ ObjC++ 2210Conform to the ISO 2020 C++ standard (experimental and incomplete support). 2211 2212std=c++2b 2213C++ ObjC++ Alias(std=c++23) 2214Conform to the ISO 2023 C++ draft standard (experimental and incomplete support). 2215 2216std=c++23 2217C++ ObjC++ Undocumented 2218Conform to the ISO 2023 C++ draft standard (experimental and incomplete support). 2219 2220std=c11 2221C ObjC 2222Conform to the ISO 2011 C standard. 2223 2224std=c1x 2225C ObjC Alias(std=c11) 2226Deprecated in favor of -std=c11. 2227 2228std=c17 2229C ObjC 2230Conform to the ISO 2017 C standard (published in 2018). 2231 2232std=c18 2233C ObjC Alias(std=c17) 2234Conform to the ISO 2017 C standard (published in 2018). 2235 2236std=c2x 2237C ObjC 2238Conform to the ISO 202X C standard draft (experimental and incomplete support). 2239 2240std=c89 2241C ObjC Alias(std=c90) 2242Conform to the ISO 1990 C standard. 2243 2244std=c90 2245C ObjC 2246Conform to the ISO 1990 C standard. 2247 2248std=c99 2249C ObjC 2250Conform to the ISO 1999 C standard. 2251 2252std=c9x 2253C ObjC Alias(std=c99) 2254Deprecated in favor of -std=c99. 2255 2256std=gnu++98 2257C++ ObjC++ 2258Conform to the ISO 1998 C++ standard revised by the 2003 technical 2259corrigendum with GNU extensions. 2260 2261std=gnu++03 2262C++ ObjC++ Alias(std=gnu++98) 2263Conform to the ISO 1998 C++ standard revised by the 2003 technical 2264corrigendum with GNU extensions. 2265 2266std=gnu++11 2267C++ ObjC++ 2268Conform to the ISO 2011 C++ standard with GNU extensions. 2269 2270std=gnu++0x 2271C++ ObjC++ Alias(std=gnu++11) Undocumented 2272Deprecated in favor of -std=gnu++11. 2273 2274std=gnu++1y 2275C++ ObjC++ Alias(std=gnu++14) Undocumented 2276Deprecated in favor of -std=gnu++14. 2277 2278std=gnu++14 2279C++ ObjC++ 2280Conform to the ISO 2014 C++ standard with GNU extensions. 2281 2282std=gnu++1z 2283C++ ObjC++ Alias(std=gnu++17) Undocumented 2284Deprecated in favor of -std=gnu++17. 2285 2286std=gnu++17 2287C++ ObjC++ 2288Conform to the ISO 2017 C++ standard with GNU extensions. 2289 2290std=gnu++2a 2291C++ ObjC++ Alias(std=gnu++20) Undocumented 2292Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support). 2293 2294std=gnu++20 2295C++ ObjC++ 2296Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support). 2297 2298std=gnu++2b 2299C++ ObjC++ Alias(std=gnu++23) 2300Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support). 2301 2302std=gnu++23 2303C++ ObjC++ Undocumented 2304Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support). 2305 2306std=gnu11 2307C ObjC 2308Conform to the ISO 2011 C standard with GNU extensions. 2309 2310std=gnu1x 2311C ObjC Alias(std=gnu11) 2312Deprecated in favor of -std=gnu11. 2313 2314std=gnu17 2315C ObjC 2316Conform to the ISO 2017 C standard (published in 2018) with GNU extensions. 2317 2318std=gnu18 2319C ObjC Alias(std=gnu17) 2320Conform to the ISO 2017 C standard (published in 2018) with GNU extensions. 2321 2322std=gnu2x 2323C ObjC 2324Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support). 2325 2326std=gnu89 2327C ObjC Alias(std=gnu90) 2328Conform to the ISO 1990 C standard with GNU extensions. 2329 2330std=gnu90 2331C ObjC 2332Conform to the ISO 1990 C standard with GNU extensions. 2333 2334std=gnu99 2335C ObjC 2336Conform to the ISO 1999 C standard with GNU extensions. 2337 2338std=gnu9x 2339C ObjC Alias(std=gnu99) 2340Deprecated in favor of -std=gnu99. 2341 2342std=iso9899:1990 2343C ObjC Alias(std=c90) 2344Conform to the ISO 1990 C standard. 2345 2346std=iso9899:199409 2347C ObjC 2348Conform to the ISO 1990 C standard as amended in 1994. 2349 2350std=iso9899:1999 2351C ObjC Alias(std=c99) 2352Conform to the ISO 1999 C standard. 2353 2354std=iso9899:199x 2355C ObjC Alias(std=c99) 2356Deprecated in favor of -std=iso9899:1999. 2357 2358std=iso9899:2011 2359C ObjC Alias(std=c11) 2360Conform to the ISO 2011 C standard. 2361 2362std=iso9899:2017 2363C ObjC Alias(std=c17) 2364Conform to the ISO 2017 C standard (published in 2018). 2365 2366std=iso9899:2018 2367C ObjC Alias(std=c17) 2368Conform to the ISO 2017 C standard (published in 2018). 2369 2370stdlib= 2371Driver C++ ObjC++ Common Condition(ENABLE_STDLIB_OPTION) Var(flag_stdlib_kind) Joined Enum(stdlib_kind) RejectNegative Init(1) 2372-stdlib=[libstdc++|libc++] The standard library to be used for C++ headers 2373and runtime. 2374 2375Enum 2376Name(stdlib_kind) Type(int) 2377 2378EnumValue 2379Enum(stdlib_kind) String(libstdc++) Value(1) 2380 2381EnumValue 2382Enum(stdlib_kind) String(libc++) Value(2) 2383 2384traditional 2385Driver 2386 2387traditional-cpp 2388C ObjC C++ ObjC++ 2389Enable traditional preprocessing. 2390 2391trigraphs 2392C ObjC C++ ObjC++ 2393-trigraphs Support ISO C trigraphs. 2394 2395undef 2396C ObjC C++ ObjC++ Var(flag_undef) 2397Do not predefine system-specific and GCC-specific macros. 2398 2399v 2400C ObjC C++ ObjC++ 2401; Documented in common.opt 2402 2403w 2404C ObjC C++ ObjC++ 2405; Documented in common.opt 2406 2407; This comment is to ensure we retain the blank line above. 2408