1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2019 Free Software Foundation, Inc.
4 ; This file is part of GCC.
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
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
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/>.
20 ; See the GCC internals manual for a description of this file's format.
22 ; Please try to keep this file in ASCII collating order.
37 C ObjC C++ ObjC++ Warning Alias(Wall)
40 C ObjC C++ ObjC++ Alias(ansi)
43 C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
46 C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
49 C ObjC C++ ObjC++ Alias(C)
52 C ObjC C++ ObjC++ Alias(CC)
55 C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
58 C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
61 C ObjC C++ ObjC++ Alias(M)
64 C ObjC C++ ObjC++ Separate Alias(d)
67 C ObjC C++ ObjC++ Joined Alias(d)
70 C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
73 C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
76 C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
79 C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
82 C ObjC C++ ObjC++ Alias(I, -)
85 C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
88 C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
90 -include-directory-after
91 C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
93 -include-directory-after=
94 C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
97 C ObjC C++ ObjC++ Separate Alias(iprefix)
100 C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
103 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
105 -include-with-prefix=
106 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
108 -include-with-prefix-after
109 C ObjC C++ ObjC++ Separate Alias(iwithprefix)
111 -include-with-prefix-after=
112 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
114 -include-with-prefix-before
115 C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
117 -include-with-prefix-before=
118 C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
121 Driver Alias(no-integrated-cpp)
124 C ObjC C++ ObjC++ Alias(P)
126 -no-standard-includes
127 C ObjC C++ ObjC++ Alias(nostdinc)
130 C ObjC C++ ObjC++ Alias(w)
133 C ObjC C++ ObjC++ Separate Alias(o)
136 C ObjC C++ ObjC++ Joined Alias(o)
139 C ObjC C++ ObjC++ Joined Separate
142 C ObjC C++ ObjC++ Alias(pedantic)
145 C ObjC C++ ObjC++ Undocumented Alias(E)
147 -print-missing-file-dependencies
148 C ObjC C++ ObjC++ Alias(MG)
151 C ObjC C++ ObjC++ Alias(H)
154 Driver Alias(traditional)
157 C ObjC C++ ObjC++ Alias(traditional-cpp)
160 C ObjC C++ ObjC++ Alias(trigraphs)
163 C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
166 C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
169 C ObjC C++ ObjC++ Alias(MM)
172 Common C ObjC C++ ObjC++ Alias(v)
175 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
177 -write-user-dependencies
178 C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
181 C 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>.
186 Do not discard comments.
190 Do not discard comments in macro expansions.
193 C 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.
197 C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
200 Driver 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.
204 C Var(flag_gimple) Init(0)
205 Enable parsing GIMPLE.
209 Print the name of header files as they are used.
212 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
213 -I <dir> Add <dir> to the end of the main include path.
217 Generate make dependencies.
220 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
221 Generate make dependencies and compile.
224 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
225 -MF <file> Write dependency output to the given file.
229 Treat missing header files as generated files.
233 Like -M but ignore system header files.
236 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
237 Like -MD but ignore system header files.
241 Generate phony targets for all headers.
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MQ <target> Add a MAKE-quoted target.
248 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
249 -MT <target> Add an unquoted target.
253 Do not generate #line directives.
256 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
257 -U<macro> Undefine <macro>.
260 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
261 Warn about things that will change when compiling with an ABI-compliant compiler.
264 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
265 Warn about things that change between the current -fabi-version and the specified version.
268 C++ ObjC++ Var(warn_abi_tag) Warning
269 Warn if a subobject has an abi_tag attribute that the complete object type does not have.
272 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
275 C ObjC Var(warn_absolute_value) Warning EnabledBy(Wextra)
276 Warn on suspicious calls of standard functions computing absolute values.
279 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
280 Warn about suspicious uses of memory addresses.
283 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
286 Enum(warn_aligned_new_level) String(none) Value(0)
289 Enum(warn_aligned_new_level) String(global) Value(1)
292 Enum(warn_aligned_new_level) String(all) Value(2)
295 C++ ObjC++ Alias(Waligned-new=,global,none)
296 Warn about 'new' of type with extended alignment without -faligned-new.
299 C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
300 -Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
303 C ObjC C++ ObjC++ Warning
304 Enable most warning messages.
307 C ObjC C++ ObjC++ Var(warn_alloca) Warning
308 Warn on any use of alloca.
310 Walloc-size-larger-than=
311 C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX)
312 -Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that
313 attempt to allocate objects larger than the specified number of bytes.
315 Wno-alloc-size-larger-than
316 C ObjC C++ LTO ObjC++ Alias(Walloc-size-larger-than=,18446744073709551615EiB,none) Warning
317 -Wno-alloc-size-larger-than Disable Walloc-size-larger-than= warning. Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger.
320 C ObjC C++ ObjC++ Var(warn_alloc_zero) Warning
321 -Walloc-zero Warn for calls to allocation functions that specify zero bytes.
324 C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
325 -Walloca-larger-than=<number> Warn on unbounded uses of
326 alloca, and on bounded uses of alloca whose bound can be larger than
329 Wno-alloca-larger-than
330 C ObjC C++ LTO ObjC++ Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning
331 -Wno-alloca-larger-than Disable Walloca-larger-than= warning. Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.
334 LangEnabledBy(C ObjC C++ LTO ObjC++)
338 LangEnabledBy(C ObjC C++ LTO ObjC++,Wall,1,0)
342 C ObjC C++ ObjC++ Var(warn_zero_length_bounds) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
343 Warn about accesses to interior zero-length array members.
346 ObjC ObjC++ Var(warn_assign_intercept) Warning
347 Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
350 C ObjC Var(warn_bad_function_cast) Warning
351 Warn about casting functions to incompatible types.
354 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
355 Warn about boolean expression compared with an integer value different from true/false.
358 C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
359 Warn about certain operations on boolean expressions.
362 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
363 Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
365 Wbuiltin-declaration-mismatch
366 C ObjC C++ ObjC++ Var(warn_builtin_declaraion_mismatch) Init(1) Warning
367 Warn when a built-in function is declared with the wrong signature.
369 Wbuiltin-macro-redefined
370 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
371 Warn when a built-in preprocessor macro is undefined or redefined.
374 C ObjC CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT) Var(warn_c11_c2x_compat) Init(-1) Warning
375 Warn about features not present in ISO C11, but present in ISO C2X.
378 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
379 Warn about features not present in ISO C90, but present in ISO C99.
382 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
383 Warn about features not present in ISO C99, but present in ISO C11.
386 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
387 Warn about C constructs that are not in the common subset of C and C++.
390 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
393 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
394 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
397 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
398 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
401 C++ ObjC++ Warning Alias(Wc++17-compat) Undocumented
404 C++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
405 Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
408 C++ ObjC++ Warning Alias(Wc++20-compat) Undocumented
411 C++ ObjC++ Var(warn_cxx20_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
412 Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020.
415 C ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra)
416 Warn about casts between incompatible function types.
419 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
420 Warn about casts which discard qualifiers.
423 C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
424 Warn about catch handlers of non-reference type.
427 C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0) IntegerRange(0, 3)
428 Warn about catch handlers of non-reference type.
431 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
432 Warn about subscripts whose type is \"char\".
435 C ObjC C++ ObjC++ Warning WarnRemoved
436 Removed in GCC 9. This switch has no effect.
439 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
440 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
443 C++ ObjC++ Var(warn_comma_subscript) Warning
444 Warn about uses of a comma operator within a subscripting expression.
447 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
448 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
451 C ObjC C++ ObjC++ Warning Alias(Wcomment)
452 Synonym for -Wcomment.
454 Wconditionally-supported
455 C++ ObjC++ Var(warn_conditionally_supported) Warning
456 Warn for conditionally-supported constructs.
459 C ObjC C++ ObjC++ Var(warn_conversion) Warning
460 Warn for implicit type conversions that may change a value.
463 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
464 Warn for converting NULL from/to a non-pointer type.
467 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
468 ; Documented in common.opt
471 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
472 Warn when all constructors and destructors are private.
475 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
476 Warn about dangling else.
479 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
480 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
482 Wdeclaration-after-statement
483 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
484 Warn when a declaration is found after a statement.
487 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
488 Warn when deleting a pointer to incomplete type.
490 Wdelete-non-virtual-dtor
491 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
492 Warn about deleting polymorphic objects with non-virtual destructors.
495 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED)
496 ; Documented in common.opt
499 C++ ObjC++ Var(warn_deprecated_copy) Warning LangEnabledBy(C++ ObjC++, Wextra)
500 Mark implicitly-declared copy operations as deprecated if the class has a
501 user-provided copy operation.
503 Wdeprecated-copy-dtor
504 C++ ObjC++ Var(warn_deprecated_copy, 2) Warning
505 Mark implicitly-declared copy operations as deprecated if the class has a
506 user-provided copy operation or destructor.
509 C ObjC Var(warn_designated_init) Init(1) Warning
510 Warn about positional initialization of structs requiring designated initializers.
512 Wdiscarded-array-qualifiers
513 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
514 Warn if qualifiers on arrays which are pointer targets are discarded.
516 Wdiscarded-qualifiers
517 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
518 Warn if type qualifiers on pointers are discarded.
521 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
522 Warn about compile-time integer division by zero.
525 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
526 Warn about duplicated branches in if-else statements.
529 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
530 Warn about duplicated conditions in an if-else-if chain.
533 C++ ObjC++ Var(warn_ecpp) Warning
534 Warn about violations of Effective C++ style rules.
537 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
538 Warn about an empty body in an if or else statement.
541 C 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)
542 Warn about stray tokens after #else and #endif.
545 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
546 Warn about comparison of different enum types.
549 C ObjC Var(warn_enum_conversion) Init(0) Warning LangEnabledBy(C ObjC,Wextra)
550 Warn about implicit conversion of enum types.
554 ; Documented in common.opt
556 Werror-implicit-function-declaration
557 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
558 This switch is deprecated; use -Werror=implicit-function-declaration instead.
561 C ObjC C++ ObjC++ Warning
565 C++ ObjC++ Var(warn_extra_semi) Warning
566 Warn about semicolon after in-class function definition.
569 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
570 Warn for implicit type conversions that cause loss of floating point precision.
573 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
574 Warn if testing floating point numbers for equality.
577 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
578 Warn about printf/scanf/strftime/strfmon format string anomalies.
581 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
582 Warn about format strings that contain NUL bytes.
585 C ObjC C++ ObjC++ Var(warn_format_diag) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
586 Warn about GCC format strings with strings unsuitable for diagnostics.
589 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
590 Warn if passing too many arguments to a function for its format string.
593 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
594 Warn about format strings that are not literals.
597 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
598 Warn about function calls with format strings that write past the end
599 of the destination region. Same as -Wformat-overflow=1.
602 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
603 Warn about possible security problems with format functions.
606 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
607 Warn about sign differences with format functions.
610 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
611 Warn about calls to snprintf and similar functions that truncate output.
612 Same as -Wformat-truncation=1.
615 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
616 Warn about strftime formats yielding 2-digit years.
619 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
620 Warn about zero-length formats.
623 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
624 Warn about printf/scanf/strftime/strfmon format string anomalies.
627 C 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)
628 Warn about function calls with format strings that write past the end
629 of the destination region.
632 C 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)
633 Warn about calls to snprintf and similar functions that truncate output.
636 C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
637 Warn when the field in a struct is not aligned.
640 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
641 Warn whenever type qualifiers are ignored.
644 C C++ Var(warn_ignored_attributes) Init(1) Warning
645 Warn whenever attributes are ignored.
648 C++ ObjC++ Var(warn_inaccessible_base) Init(1) Warning
649 Warn when a base is inaccessible in derived due to ambiguity.
651 Wincompatible-pointer-types
652 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
653 Warn when there is a conversion between pointers that have incompatible types.
655 Waddress-of-packed-member
656 C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning
657 Warn when the address of packed member of struct or union is taken.
660 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
661 Warn about variables which are initialized to themselves.
664 C++ ObjC++ Var(warn_init_list) Warning Init(1)
665 Warn about uses of std::initializer_list that can result in dangling pointers.
668 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
669 Warn about implicit declarations.
671 Wimplicit-fallthrough=
672 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
676 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
677 Warn about implicit conversions from \"float\" to \"double\".
679 Wexpansion-to-defined
680 C 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)
681 Warn if \"defined\" is used outside #if.
683 Wimplicit-function-declaration
684 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
685 Warn about implicit function declarations.
688 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
689 Warn when a declaration does not specify a type.
692 C ObjC C++ ObjC++ Undocumented Ignore
694 Winherited-variadic-ctor
695 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
696 Warn about C++11 inheriting constructors when the base has a variadic constructor.
699 C ObjC Var(warn_int_conversion) Init(1) Warning
700 Warn about incompatible integer to pointer and pointer to integer conversions.
703 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
704 Warn for suspicious integer expressions in boolean context.
707 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
708 Warn when there is a cast to a pointer from an integer of a different size.
711 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
712 Warn about invalid uses of the \"offsetof\" macro.
715 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
716 Warn about PCH files that are found but not used.
719 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
720 Warn when a jump misses a variable initialization.
723 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
724 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
727 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
728 Warn when a logical operator is suspiciously always evaluating to true or false.
730 Wlogical-not-parentheses
731 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
732 Warn when logical not is used on the left hand side operand of a comparison.
735 C 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)
736 Do not warn about using \"long long\" when -pedantic.
739 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
740 Warn about suspicious declarations of \"main\".
743 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
746 Wmemset-transposed-args
747 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
748 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
751 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
752 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
754 Wmisleading-indentation
755 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
756 Warn when the indentation of the code does not reflect the block structure.
759 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
760 Warn about possibly missing braces around initializers.
762 Wmissing-declarations
763 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
764 Warn about global functions without previous declarations.
766 Wmissing-field-initializers
767 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
768 Warn about missing fields in struct initializers.
770 Wmultistatement-macros
771 C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
772 Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
774 Wmultiple-inheritance
775 C++ ObjC++ Var(warn_multiple_inheritance) Warning
776 Warn on direct multiple inheritance.
779 C++ ObjC++ Var(warn_namespaces) Warning
780 Warn on namespace definition.
783 C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
784 Warn when fields in a struct with the packed attribute are misaligned.
787 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
788 Warn about missing sized deallocation functions.
791 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
792 Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
794 Wsizeof-pointer-memaccess
795 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
796 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
798 Wsizeof-array-argument
799 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
800 Warn when sizeof is applied on a parameter declared as an array.
803 C ObjC C++ LTO ObjC++ Warning Var(warn_string_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra)
804 Warn about calls to strcmp and strncmp used in equality expressions that
805 are necessarily true or false due to the length of one and size of the other
809 C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
810 Warn about buffer overflow in string manipulation functions like memcpy
814 C 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)
815 Under the control of Object Size type, warn about buffer overflow in string
816 manipulation functions like memcpy and strcpy.
819 C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
820 Warn about truncation in string manipulation functions like strncat and strncpy.
822 Wsuggest-attribute=format
823 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
824 Warn about functions which might be candidates for format attributes.
827 C++ ObjC++ Var(warn_override) Warning
828 Suggest that the override keyword be used when the declaration of a virtual
829 function overrides another.
832 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
833 Warn about enumerated switches, with no default, missing a case.
836 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
837 Warn about enumerated switches missing a \"default:\" statement.
840 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
841 Warn about all enumerated switches missing a specific case.
844 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
845 Warn about switches with boolean controlling expression.
847 Wswitch-outside-range
848 C ObjC C++ ObjC++ Var(warn_switch_outside_range) Warning Init(1)
849 Warn about switch values that are outside of the switch's type range.
852 C++ ObjC++ Var(warn_templates) Warning
853 Warn on primary template declaration.
856 C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
857 Warn about declarations of entities that may be missing attributes
858 that related entities have been declared with.
860 Wmissing-format-attribute
861 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
864 Wmissing-include-dirs
865 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
866 Warn about user-specified include directories that do not exist.
868 Wmissing-parameter-type
869 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
870 Warn about function parameters declared without a type specifier in K&R-style functions.
873 C ObjC Var(warn_missing_prototypes) Warning
874 Warn about global functions without prototypes.
877 C ObjC C++ ObjC++ WarnRemoved
880 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
881 Warn about use of multi-character character constants.
884 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
885 Warn about narrowing conversions within { } that are ill-formed in C++11.
888 C ObjC Var(warn_nested_externs) Warning
889 Warn about \"extern\" declarations not at file scope.
892 C++ ObjC++ Var(warn_noexcept) Warning
893 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
896 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
897 Warn if C++17 noexcept function type will change the mangled name of a symbol.
900 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
901 Warn when non-templatized friend functions are declared within a template.
904 C++ ObjC++ Var(warn_class_conversion) Init(1) Warning
905 Warn when a conversion function will never be called due to the type it converts to.
908 C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
909 Warn for unsafe raw memory writes to objects of class types.
912 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
913 Warn about non-virtual destructors.
916 C ObjC C++ LTO ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=,warn_format >= 1,0)
917 Warn about NULL being passed to argument slots marked as requiring non-NULL.
920 C ObjC C++ LTO ObjC++ LangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
924 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
928 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
932 C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) CppReason(CPP_W_NORMALIZE) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level)
933 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
935 ; Required for these enum values.
940 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
943 Enum(cpp_normalize_level) String(none) Value(normalized_none)
946 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
949 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
952 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
955 C++ ObjC++ Var(warn_old_style_cast) Warning
956 Warn if a C-style cast is used in a program.
958 Wold-style-declaration
959 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
960 Warn for obsolescent usage in a declaration.
962 Wold-style-definition
963 C ObjC Var(warn_old_style_definition) Init(-1) Warning
964 Warn if an old-style parameter definition is used.
967 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
968 Warn if a simd directive is overridden by the vectorizer cost model.
971 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
972 Warn if a string is longer than the maximum portable length specified by the standard.
975 C++ ObjC++ Var(warn_overloaded_virtual) Warning
976 Warn about overloaded virtual function names.
979 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
980 Warn about overriding initializers without side effects.
982 Woverride-init-side-effects
983 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
984 Warn about overriding initializers with side effects.
986 Wpacked-bitfield-compat
987 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
988 Warn about packed bit-fields whose offset changed in GCC 4.4.
991 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
992 Warn about possibly missing parentheses.
995 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
996 ; Documented in common.opt
999 C++ ObjC++ Var(warn_pessimizing_move) Warning LangEnabledBy(C++ ObjC++, Wall)
1000 Warn about calling std::move on a local object in a return statement preventing copy elision.
1003 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
1004 Warn when converting the type of pointers to member functions.
1007 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
1008 Warn about function pointer arithmetic.
1011 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
1012 Warn when a pointer differs in signedness in an assignment.
1015 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
1016 Warn when a pointer is compared with a zero character constant.
1018 Wpointer-to-int-cast
1019 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
1020 Warn when a pointer is cast to an integer of a different size.
1023 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
1024 Warn about misuses of pragmas.
1027 C ObjC C++ ObjC++ Var(warn_prio_ctor_dtor) Init(1) Warning
1028 Warn if constructor or destructors with priorities from 0 to 100 are used.
1030 Wproperty-assign-default
1031 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
1032 Warn if a property for an Objective-C object has no assign semantics specified.
1035 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
1036 Warn if inherited methods are unimplemented.
1039 C++ Warning Alias(Wplacement-new=, 1, 0)
1040 Warn for placement new expressions with undefined behavior.
1043 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
1044 Warn for placement new expressions with undefined behavior.
1047 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
1048 Warn about multiple declarations of the same object.
1051 C++ ObjC++ Var(warn_redundant_move) Warning LangEnabledBy(C++ ObjC++,Wextra)
1052 Warn about redundant calls to std::move.
1055 C++ ObjC++ Var(warn_register) Warning
1056 Warn about uses of register storage specifier.
1059 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
1060 Warn when the compiler reorders code.
1063 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
1064 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
1066 Wscalar-storage-order
1067 C ObjC C++ ObjC++ Init(1) Warning
1068 Warn on suspicious constructs involving reverse scalar storage order.
1071 ObjC ObjC++ Var(warn_selector) Warning
1072 Warn if a selector has multiple methods.
1075 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1076 Warn about possible violations of sequence point rules.
1079 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
1080 Warn if a local declaration hides an instance variable.
1083 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
1084 Warn if left shift of a signed value overflows.
1087 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
1088 Warn if left shift of a signed value overflows.
1090 Wshift-count-negative
1091 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
1092 Warn if shift count is negative.
1094 Wshift-count-overflow
1095 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
1096 Warn if shift count >= width of type.
1098 Wshift-negative-value
1099 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
1100 Warn if left shifting a negative value.
1103 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
1104 Warn about signed-unsigned comparisons.
1107 C ObjC C++ ObjC++ EnabledBy(Wextra)
1111 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
1112 Warn for implicit type conversions between signed and unsigned integers.
1115 C++ ObjC++ Var(warn_sign_promo) Warning
1116 Warn when overload promotes from unsigned to signed.
1118 Wstrict-null-sentinel
1119 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
1120 Warn about uncasted NULL used as sentinel.
1123 C ObjC Var(warn_strict_prototypes) Warning
1124 Warn about unprototyped function declarations.
1127 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
1131 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
1134 Wstrict-selector-match
1135 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1136 Warn if type signatures of candidate methods do not match exactly.
1139 C C++ Var(warn_sync_nand) Init(1) Warning
1140 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1143 C++ ObjC++ Var(warn_synth) Warning
1144 Deprecated. This switch has no effect.
1147 C ObjC C++ ObjC++ Warning
1148 ; Documented in common.opt
1150 Wtautological-compare
1151 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1152 Warn if a comparison always evaluates to true or false.
1155 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1156 Warn if a throw expression will always result in a call to terminate().
1159 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1160 Warn about features not present in traditional C.
1162 Wtraditional-conversion
1163 C ObjC Var(warn_traditional_conversion) Warning
1164 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1167 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1168 Warn if trigraphs are encountered that might affect the meaning of the program.
1170 Wundeclared-selector
1171 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1172 Warn about @selector()s without previously declared methods.
1175 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1176 Warn if an undefined macro is used in an #if directive.
1179 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1182 Wmaybe-uninitialized
1183 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1187 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1188 Warn about unrecognized pragmas.
1190 Wunsuffixed-float-constants
1191 C ObjC Var(warn_unsuffixed_float_constants) Warning
1192 Warn about unsuffixed float constants.
1195 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1196 ; documented in common.opt
1198 Wunused-local-typedefs
1199 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1200 Warn when typedefs locally defined in a function are not used.
1203 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1204 Warn about macros defined in the main file that are not used.
1207 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1208 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1211 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1212 ; documented in common.opt
1214 Wunused-const-variable
1215 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1216 Warn when a const variable is unused.
1218 Wunused-const-variable=
1219 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
1220 Warn when a const variable is unused.
1223 C 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)
1224 Warn about using variadic macros.
1227 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1228 Warn about questionable usage of the macros used to retrieve variable arguments.
1231 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1232 Warn if a variable length array is used.
1235 C ObjC C++ LTO ObjC++ Var(warn_vla_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
1236 -Wvla-larger-than=<number> Warn on unbounded uses of variable-length
1237 arrays, and on bounded uses of variable-length arrays whose bound can be
1238 larger than <number> bytes.
1242 C ObjC C++ LTO ObjC++ Alias(Wvla-larger-than=,18446744073709551615EiB,none) Warning
1243 -Wno-vla-larger-than Disable Wvla-larger-than= warning. Equivalent to Wvla-larger-than=<SIZE_MAX> or larger.
1246 C++ ObjC++ Var(warn_volatile) Warning
1247 Warn about deprecated uses of volatile qualifier.
1249 Wvolatile-register-var
1250 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1251 Warn when a register variable is declared volatile.
1253 Wvirtual-inheritance
1254 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1255 Warn on direct virtual inheritance.
1257 Wvirtual-move-assign
1258 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1259 Warn if a virtual base has a non-trivial move assignment operator.
1262 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1263 In 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.
1265 Wzero-as-null-pointer-constant
1266 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1267 Warn when a literal '0' is used as null pointer.
1270 C++ ObjC++ Var(warn_useless_cast) Warning
1271 Warn about useless casts.
1274 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1275 Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
1277 Wduplicate-decl-specifier
1278 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1279 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1282 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
1283 Warn when an argument passed to a restrict-qualified parameter aliases with
1288 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1291 C ObjC C++ ObjC++ Joined
1292 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
1294 fabi-compat-version=
1295 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1296 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1299 C++ ObjC++ Var(flag_access_control) Init(1)
1300 Enforce class member access control semantics.
1303 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1304 -fada-spec-parent=unit Dump Ada specs as child units of given parent.
1307 C++ ObjC++ Alias(faligned-new=,1,0)
1308 Support C++17 allocation of over-aligned types.
1311 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1312 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1315 C++ ObjC++ WarnRemoved
1317 fallow-parameterless-variadic-functions
1318 C ObjC Var(flag_allow_parameterless_variadic_functions)
1319 Allow variadic functions without named parameter.
1321 falt-external-templates
1322 C++ ObjC++ WarnRemoved
1323 No longer supported.
1326 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1327 Recognize the \"asm\" keyword.
1329 ; Define extra predefined macros for use in libgcc.
1331 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1334 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1335 Recognize built-in functions.
1338 C ObjC C++ ObjC++ Joined
1340 fcanonical-system-headers
1342 Where shorter, use canonicalized paths to systems headers.
1345 C++ ObjC++ Var(flag_char8_t) Init(-1)
1346 Enable the char8_t fundamental type and use it as the type for UTF-8 string
1347 and character literals.
1349 fcheck-pointer-bounds
1350 C ObjC C++ ObjC++ LTO WarnRemoved
1351 Removed in GCC 9. This switch has no effect.
1353 fchkp-check-incomplete-type
1354 C ObjC C++ ObjC++ LTO WarnRemoved
1355 Removed in GCC 9. This switch has no effect.
1357 fchkp-zero-input-bounds-for-main
1358 C ObjC C++ ObjC++ LTO WarnRemoved
1359 Removed in GCC 9. This switch has no effect.
1361 fchkp-first-field-has-own-bounds
1362 C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative
1363 Removed in GCC 9. This switch has no effect.
1366 C ObjC C++ ObjC++ LTO WarnRemoved
1367 Removed in GCC 9. This switch has no effect.
1369 fchkp-narrow-to-innermost-array
1370 C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative
1371 Removed in GCC 9. This switch has no effect.
1373 fchkp-flexible-struct-trailing-arrays
1374 C ObjC C++ ObjC++ LTO WarnRemoved
1375 Removed in GCC 9. This switch has no effect.
1378 C ObjC C++ ObjC++ LTO WarnRemoved
1380 fchkp-use-fast-string-functions
1381 C ObjC C++ ObjC++ LTO WarnRemoved
1382 Removed in GCC 9. This switch has no effect.
1384 fchkp-use-nochk-string-functions
1385 C ObjC C++ ObjC++ LTO WarnRemoved
1386 Removed in GCC 9. This switch has no effect.
1388 fchkp-use-static-bounds
1389 C ObjC C++ ObjC++ LTO WarnRemoved
1390 Removed in GCC 9. This switch has no effect.
1392 fchkp-use-static-const-bounds
1393 C ObjC C++ ObjC++ LTO WarnRemoved
1394 Removed in GCC 9. This switch has no effect.
1396 fchkp-treat-zero-dynamic-size-as-infinite
1397 C ObjC C++ ObjC++ LTO WarnRemoved
1398 Removed in GCC 9. This switch has no effect.
1401 C ObjC C++ ObjC++ LTO WarnRemoved
1402 Removed in GCC 9. This switch has no effect.
1405 C ObjC C++ ObjC++ LTO WarnRemoved
1406 Removed in GCC 9. This switch has no effect.
1409 C ObjC C++ ObjC++ LTO WarnRemoved
1410 Removed in GCC 9. This switch has no effect.
1412 fchkp-instrument-calls
1413 C ObjC C++ ObjC++ LTO WarnRemoved
1414 Removed in GCC 9. This switch has no effect.
1416 fchkp-instrument-marked-only
1417 C ObjC C++ ObjC++ LTO WarnRemoved
1418 Removed in GCC 9. This switch has no effect.
1421 C ObjC C++ ObjC++ LTO WarnRemoved
1422 Removed in GCC 9. This switch has no effect.
1426 Removed in GCC 9. This switch has no effect.
1428 static-libmpxwrappers
1430 Removed in GCC 9. This switch has no effect.
1433 C ObjC C++ ObjC++ LTO Undocumented Ignore
1434 Removed in GCC 8. This switch has no effect.
1437 C++ ObjC++ Var(flag_concepts)
1438 Enable support for C++ concepts.
1441 C++ ObjC++ Var(flag_concepts_ts) Init(0)
1442 Enable certain features present in the Concepts TS.
1446 Allow the arguments of the '?' operator to have different types.
1450 Does nothing. Preserved for backward compatibility.
1452 fconstant-string-class=
1453 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1454 -fconst-string-class=<name> Use class <name> for constant strings.
1457 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1458 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
1460 fconstexpr-cache-depth=
1461 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_cache_depth) Init(8)
1462 -fconstexpr-cache-depth=<number> Specify maximum constexpr recursion cache depth.
1464 fconstexpr-loop-limit=
1465 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1466 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1468 fconstexpr-ops-limit=
1469 C++ ObjC++ Joined RejectNegative Host_Wide_Int Var(constexpr_ops_limit) Init(33554432)
1470 -fconstexpr-ops-limit=<number> Specify maximum number of constexpr operations during a single constexpr evaluation.
1474 Emit debug annotations during preprocessing.
1478 Does nothing. Preserved for backward compatibility.
1481 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1482 Factor complex constructors and destructors to favor space over speed.
1486 Does nothing. Preserved for backward compatibility.
1488 fdiagnostics-show-template-tree
1489 C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
1490 Print hierarchical comparisons when template types are mismatched.
1494 Preprocess directives only.
1496 fdollars-in-identifiers
1498 Permit '$' as an identifier character.
1501 C ObjC C++ ObjC++ Joined RejectNegative
1502 -fmacro-prefix-map=<old>=<new> Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
1505 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1506 Write all declarations as Ada code transitively.
1509 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1510 Write all declarations as Ada code for the given file only.
1513 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1516 C++ ObjC++ Var(flag_elide_type) Init(1)
1517 -fno-elide-type Do not elide common elements in template comparisons.
1520 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1521 Generate code to check exception specifications.
1524 C++ ObjC++ WarnRemoved
1527 C ObjC C++ ObjC++ Joined RejectNegative
1528 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
1530 fextended-identifiers
1532 Permit universal character names (\\u and \\U) in identifiers.
1535 C ObjC C++ ObjC++ Joined RejectNegative
1536 -finput-charset=<cset> Specify the default character set for source files.
1539 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1540 Support dynamic initialization of thread-local variables in a different translation unit.
1543 C++ ObjC++ WarnRemoved
1546 C++ ObjC++ WarnRemoved
1550 Do not assume that standard C libraries and \"main\" exist.
1553 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1554 Recognize GNU-defined keywords.
1557 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1558 Generate code for GNU runtime environment.
1561 C ObjC Var(flag_gnu89_inline) Init(-1)
1562 Use traditional GNU semantics for inline functions.
1565 C++ ObjC++ WarnRemoved
1568 C++ ObjC++ Optimization Alias(fexceptions) Warn({%<-fhandle-exceptions%> has been renamed %<-fexceptions%> (and is now on by default)})
1571 C++ ObjC++ WarnRemoved
1575 Assume normal C execution environment.
1578 C++ ObjC++ WarnRemoved
1579 No longer supported.
1582 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1583 Export functions even if they can be inlined.
1585 fimplicit-inline-templates
1586 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1587 Emit implicit instantiations of inline templates.
1590 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1591 Emit implicit instantiations of templates.
1593 fnew-inheriting-ctors
1594 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1595 Implement C++17 inheriting constructor semantics.
1598 C++ ObjC++ WarnRemoved
1600 fkeep-inline-dllexport
1601 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1602 Don't emit dllexported inline functions unless needed.
1605 C++ ObjC++ WarnRemoved
1607 flax-vector-conversions
1608 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1609 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1612 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1613 fmax-include-depth=<number> Set the maximum depth of the nested #include.
1616 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1617 Don't warn about uses of Microsoft extensions.
1620 C ObjC C++ ObjC++ WarnRemoved
1623 C ObjC C++ ObjC++ WarnRemoved
1626 C ObjC C++ ObjC++ WarnRemoved
1628 fname-mangling-version-
1629 C++ ObjC++ Joined WarnRemoved
1632 C++ ObjC++ WarnRemoved
1635 C++ ObjC++ Var(flag_new_ttp)
1636 Implement resolution of DR 150 for matching of template template arguments.
1639 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1640 Generate code for NeXT (Apple Mac OS X) runtime environment.
1643 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1644 Assume that receivers of Objective-C messages may be nil.
1647 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1648 Allow access to instance variables as if they were local declarations within instance method implementations.
1651 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1652 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1655 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1658 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1661 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1664 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1667 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1670 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1673 C++ ObjC++ WarnRemoved
1676 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1677 Treat a throw() exception specification as noexcept to improve code size.
1680 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1681 Specify which ABI to use for Objective-C family code and meta-data generation.
1683 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1684 ; to initialize any non-POD ivars in Objective-C++ classes.
1685 fobjc-call-cxx-cdtors
1686 ObjC++ Var(flag_objc_call_cxx_cdtors)
1687 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1689 fobjc-direct-dispatch
1690 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1691 Allow fast jumps to the message dispatcher.
1693 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1694 ; @try, etc.) in source code.
1696 ObjC ObjC++ Var(flag_objc_exceptions)
1697 Enable Objective-C exception and synchronization syntax.
1700 ObjC ObjC++ LTO Var(flag_objc_gc)
1701 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1704 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1705 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1707 ; Nonzero means that we generate NeXT setjmp based exceptions.
1708 fobjc-sjlj-exceptions
1709 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1710 Enable Objective-C setjmp exception handling runtime.
1713 ObjC ObjC++ Var(flag_objc1_only)
1714 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1717 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1721 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1722 Specify default OpenACC compute dimensions.
1725 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1726 Enable OpenMP (implies -frecursive in Fortran).
1729 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1730 Enable OpenMP's SIMD directives.
1734 Recognize C++ keywords like \"compl\" and \"xor\".
1738 Does nothing. Preserved for backward compatibility.
1745 Look for and use PCH files even when preprocessing.
1748 C++ ObjC++ Var(flag_permissive)
1749 Downgrade conformance errors to warnings.
1752 C ObjC Var(flag_plan9_extensions)
1753 Enable Plan 9 language extensions.
1757 Treat the input file as already preprocessed.
1759 ftrack-macro-expansion
1760 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1761 ; converted into ftrack-macro-expansion=
1763 ftrack-macro-expansion=
1764 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1765 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
1768 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1769 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1771 fprintf-return-value
1772 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1773 Treat known sprintf return values as constants.
1775 freplace-objc-classes
1776 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1777 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1780 C++ ObjC++ WarnRemoved
1781 Removed in GCC 10. This switch has no effect.
1784 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1785 Generate run time type descriptor information.
1788 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1789 Use the narrowest integer type possible for enumeration types.
1792 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1793 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1796 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1797 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1800 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1801 Make \"char\" signed by default.
1804 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1805 Enable C++14 sized deallocation support.
1808 C++ ObjC++ WarnRemoved
1811 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1812 -fsso-struct=[big-endian|little-endian|native] Set the default scalar storage order.
1815 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1818 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1821 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1824 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1827 C++ ObjC++ Var(flag_detailed_statistics)
1828 Display statistics accumulated during compilation.
1831 C++ ObjC++ Optimization Var(flag_strict_enums)
1832 Assume that values of enumeration type are always within the minimum range of that type.
1835 C++ ObjC++ WarnRemoved
1838 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1839 Follow the C++17 evaluation order requirements for assignment expressions,
1840 shift, member function calls, etc.
1843 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1844 Follow the C++17 evaluation order requirements for assignment expressions,
1845 shift, member function calls, etc.
1848 Name(strong_eval_order) Type(int)
1851 Enum(strong_eval_order) String(none) Value(0)
1854 Enum(strong_eval_order) String(some) Value(1)
1857 Enum(strong_eval_order) String(all) Value(2)
1860 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1861 -ftabstop=<number> Distance between tab stops for column reporting.
1863 ftemplate-backtrace-limit=
1864 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1865 Set the maximum number of template instantiation notes for a single warning or error.
1868 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1871 C++ ObjC++ Joined RejectNegative UInteger
1872 -ftemplate-depth=<number> Specify maximum template instantiation depth.
1875 C++ ObjC++ WarnRemoved
1878 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1879 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1882 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1883 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1886 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1887 Make \"char\" unsigned by default.
1890 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1891 Use __cxa_atexit to register destructors.
1893 fuse-cxa-get-exception-ptr
1894 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1895 Use __cxa_get_exception_ptr in exception handling.
1897 fvisibility-inlines-hidden
1899 Marks all inlined functions and methods as having hidden visibility.
1901 fvisibility-ms-compat
1902 C++ ObjC++ Var(flag_visibility_ms_compat)
1903 Changes visibility to match Microsoft Visual Studio by default.
1906 C++ ObjC++ WarnRemoved
1907 No longer supported.
1910 C++ ObjC++ WarnRemoved
1911 No longer supported.
1914 C++ ObjC++ Var(flag_weak) Init(1)
1915 Emit common-like symbols as weak symbols.
1918 C ObjC C++ ObjC++ Joined RejectNegative
1919 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
1922 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1923 Generate a #line directive pointing at the current working directory.
1926 C++ ObjC++ WarnRemoved
1927 No longer supported.
1930 ObjC ObjC++ Var(flag_zero_link)
1931 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1934 ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
1935 Dump declarations to a .decl file.
1937 femit-struct-debug-baseonly
1939 -femit-struct-debug-baseonly Aggressive reduced debug info for structs.
1941 femit-struct-debug-reduced
1943 -femit-struct-debug-reduced Conservative reduced debug info for structs.
1945 femit-struct-debug-detailed=
1946 C ObjC C++ ObjC++ Joined
1947 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
1949 fext-numeric-literals
1950 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1951 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1952 number literal rather than a user-defined number literal.
1955 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1956 -idirafter <dir> Add <dir> to the end of the system include path.
1959 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1960 -imacros <file> Accept definition of macros in <file>.
1963 C ObjC C++ ObjC++ Joined Separate
1964 -imultilib <dir> Set <dir> to be the multilib include subdirectory.
1967 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1968 -include <file> Include the contents of <file> before other files.
1971 C ObjC C++ ObjC++ Joined Separate
1972 -iprefix <path> Specify <path> as a prefix for next two options.
1975 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1976 -isysroot <dir> Set <dir> to be the system root directory.
1979 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1980 -isystem <dir> Add <dir> to the start of the system include path.
1983 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1984 -iquote <dir> Add <dir> to the end of the quote include path.
1987 C ObjC C++ ObjC++ Joined Separate
1988 -iwithprefix <dir> Add <dir> to the end of the system include path.
1991 C ObjC C++ ObjC++ Joined Separate
1992 -iwithprefixbefore <dir> Add <dir> to the end of the main include path.
1995 C Undocumented RejectDriver
2002 Do not search standard system include directories (those specified with -isystem will still be used).
2006 Do not search standard system include directories for C++.
2009 C ObjC C++ ObjC++ Joined Separate
2010 ; Documented in common.opt
2013 C ObjC C++ ObjC++ Alias(Wpedantic)
2014 ; Documented in common.opt
2016 print-objc-runtime-info
2018 Generate C header of platform-specific features.
2022 Remap file names when including files.
2026 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
2029 C++ ObjC++ Alias(std=c++98)
2030 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
2034 Conform to the ISO 2011 C++ standard.
2037 C++ ObjC++ Alias(std=c++11) Undocumented
2038 Deprecated in favor of -std=c++11.
2041 C++ ObjC++ Alias(std=c++14) Undocumented
2042 Deprecated in favor of -std=c++14.
2046 Conform to the ISO 2014 C++ standard.
2049 C++ ObjC++ Alias(std=c++17) Undocumented
2050 Deprecated in favor of -std=c++17.
2054 Conform to the ISO 2017 C++ standard.
2058 Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
2062 Conform to the ISO 2011 C standard.
2065 C ObjC Alias(std=c11)
2066 Deprecated in favor of -std=c11.
2070 Conform to the ISO 2017 C standard (published in 2018).
2073 C ObjC Alias(std=c17)
2074 Conform to the ISO 2017 C standard (published in 2018).
2078 Conform to the ISO 202X C standard draft (experimental and incomplete support).
2081 C ObjC Alias(std=c90)
2082 Conform to the ISO 1990 C standard.
2086 Conform to the ISO 1990 C standard.
2090 Conform to the ISO 1999 C standard.
2093 C ObjC Alias(std=c99)
2094 Deprecated in favor of -std=c99.
2098 Conform to the ISO 1998 C++ standard revised by the 2003 technical
2099 corrigendum with GNU extensions.
2102 C++ ObjC++ Alias(std=gnu++98)
2103 Conform to the ISO 1998 C++ standard revised by the 2003 technical
2104 corrigendum with GNU extensions.
2108 Conform to the ISO 2011 C++ standard with GNU extensions.
2111 C++ ObjC++ Alias(std=gnu++11) Undocumented
2112 Deprecated in favor of -std=gnu++11.
2115 C++ ObjC++ Alias(std=gnu++14) Undocumented
2116 Deprecated in favor of -std=gnu++14.
2120 Conform to the ISO 2014 C++ standard with GNU extensions.
2123 C++ ObjC++ Alias(std=gnu++17) Undocumented
2124 Deprecated in favor of -std=gnu++17.
2128 Conform to the ISO 2017 C++ standard with GNU extensions.
2132 Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
2136 Conform to the ISO 2011 C standard with GNU extensions.
2139 C ObjC Alias(std=gnu11)
2140 Deprecated in favor of -std=gnu11.
2144 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
2147 C ObjC Alias(std=gnu17)
2148 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
2152 Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support).
2155 C ObjC Alias(std=gnu90)
2156 Conform to the ISO 1990 C standard with GNU extensions.
2160 Conform to the ISO 1990 C standard with GNU extensions.
2164 Conform to the ISO 1999 C standard with GNU extensions.
2167 C ObjC Alias(std=gnu99)
2168 Deprecated in favor of -std=gnu99.
2171 C ObjC Alias(std=c90)
2172 Conform to the ISO 1990 C standard.
2176 Conform to the ISO 1990 C standard as amended in 1994.
2179 C ObjC Alias(std=c99)
2180 Conform to the ISO 1999 C standard.
2183 C ObjC Alias(std=c99)
2184 Deprecated in favor of -std=iso9899:1999.
2187 C ObjC Alias(std=c11)
2188 Conform to the ISO 2011 C standard.
2191 C ObjC Alias(std=c17)
2192 Conform to the ISO 2017 C standard (published in 2018).
2195 C ObjC Alias(std=c17)
2196 Conform to the ISO 2017 C standard (published in 2018).
2203 Enable traditional preprocessing.
2207 -trigraphs Support ISO C trigraphs.
2210 C ObjC C++ ObjC++ Var(flag_undef)
2211 Do not predefine system-specific and GCC-specific macros.
2215 ; Documented in common.opt
2219 ; Documented in common.opt
2221 ; This comment is to ensure we retain the blank line above.