1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2017 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 C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
276 Warn about suspicious uses of memory addresses.
279 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
282 Enum(warn_aligned_new_level) String(none) Value(0)
285 Enum(warn_aligned_new_level) String(global) Value(1)
288 Enum(warn_aligned_new_level) String(all) Value(2)
291 C++ ObjC++ Alias(Waligned-new=,global,none)
292 Warn about 'new' of type with extended alignment without -faligned-new.
295 C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
296 -Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
299 C ObjC C++ ObjC++ Warning
300 Enable most warning messages.
303 C ObjC C++ ObjC++ Var(warn_alloca) Warning
304 Warn on any use of alloca.
306 Walloc-size-larger-than=
307 C ObjC C++ ObjC++ Var(warn_alloc_size_limit) Warning Joined LangEnabledBy(C ObjC C++ ObjC++,Wall)
308 -Walloc-size-larger-than=<bytes> Warn for calls to allocation functions that
309 attempt to allocate objects larger than the specified number of bytes.
312 C ObjC C++ ObjC++ Var(warn_alloc_zero) Warning
313 -Walloc-zero Warn for calls to allocation functions that specify zero bytes.
316 C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative UInteger
317 -Walloca-larger-than=<number> Warn on unbounded uses of
318 alloca, and on bounded uses of alloca whose bound can be larger than
322 LangEnabledBy(C ObjC C++ ObjC++,Wall)
326 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
330 ObjC ObjC++ Var(warn_assign_intercept) Warning
331 Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
334 C ObjC Var(warn_bad_function_cast) Warning
335 Warn about casting functions to incompatible types.
338 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
339 Warn about boolean expression compared with an integer value different from true/false.
342 C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
343 Warn about certain operations on boolean expressions.
346 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
347 Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
349 Wbuiltin-declaration-mismatch
350 C ObjC C++ ObjC++ Var(warn_builtin_declaraion_mismatch) Init(1) Warning
351 Warn when a built-in function is declared with the wrong signature.
353 Wbuiltin-macro-redefined
354 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
355 Warn when a built-in preprocessor macro is undefined or redefined.
358 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
359 Warn about features not present in ISO C90, but present in ISO C99.
362 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
363 Warn about features not present in ISO C99, but present in ISO C11.
366 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
367 Warn about C constructs that are not in the common subset of C and C++.
370 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
373 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
374 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
377 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
378 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
381 C++ ObjC++ Warning Alias(Wc++17-compat) Undocumented
384 C++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
385 Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
388 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
389 Warn about casts which discard qualifiers.
392 C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
393 Warn about catch handlers of non-reference type.
396 C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0)
397 Warn about catch handlers of non-reference type.
400 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
401 Warn about subscripts whose type is \"char\".
404 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
405 Warn about memory access errors found by Pointer Bounds Checker.
408 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
409 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
412 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
413 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
416 C ObjC C++ ObjC++ Warning Alias(Wcomment)
417 Synonym for -Wcomment.
419 Wconditionally-supported
420 C++ ObjC++ Var(warn_conditionally_supported) Warning
421 Warn for conditionally-supported constructs.
424 C ObjC C++ ObjC++ Var(warn_conversion) Warning
425 Warn for implicit type conversions that may change a value.
428 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
429 Warn for converting NULL from/to a non-pointer type.
432 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
433 ; Documented in common.opt
436 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
437 Warn when all constructors and destructors are private.
440 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
441 Warn about dangling else.
444 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
445 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
447 Wdeclaration-after-statement
448 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
449 Warn when a declaration is found after a statement.
452 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
453 Warn when deleting a pointer to incomplete type.
455 Wdelete-non-virtual-dtor
456 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
457 Warn about deleting polymorphic objects with non-virtual destructors.
460 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
461 Warn if a deprecated compiler feature, class, method, or field is used.
464 C ObjC Var(warn_designated_init) Init(1) Warning
465 Warn about positional initialization of structs requiring designated initializers.
467 Wdiscarded-array-qualifiers
468 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
469 Warn if qualifiers on arrays which are pointer targets are discarded.
471 Wdiscarded-qualifiers
472 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
473 Warn if type qualifiers on pointers are discarded.
476 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
477 Warn about compile-time integer division by zero.
480 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
481 Warn about duplicated branches in if-else statements.
484 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
485 Warn about duplicated conditions in an if-else-if chain.
488 C++ ObjC++ Var(warn_ecpp) Warning
489 Warn about violations of Effective C++ style rules.
492 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
493 Warn about an empty body in an if or else statement.
496 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)
497 Warn about stray tokens after #else and #endif.
500 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
501 Warn about comparison of different enum types.
505 ; Documented in common.opt
507 Werror-implicit-function-declaration
508 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
509 This switch is deprecated; use -Werror=implicit-function-declaration instead.
512 C ObjC C++ ObjC++ Warning
516 C++ ObjC++ Var(warn_extra_semi) Warning
517 Warn about semicolon after in-class function definition.
520 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
521 Warn for implicit type conversions that cause loss of floating point precision.
524 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
525 Warn if testing floating point numbers for equality.
528 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
529 Warn about printf/scanf/strftime/strfmon format string anomalies.
532 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
533 Warn about format strings that contain NUL bytes.
536 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
537 Warn if passing too many arguments to a function for its format string.
540 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
541 Warn about format strings that are not literals.
544 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
545 Warn about function calls with format strings that write past the end
546 of the destination region. Same as -Wformat-overflow=1.
549 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
550 Warn about possible security problems with format functions.
553 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
554 Warn about sign differences with format functions.
557 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
558 Warn about calls to snprintf and similar functions that truncate output.
559 Same as -Wformat-truncation=1.
562 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
563 Warn about strftime formats yielding 2-digit years.
566 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
567 Warn about zero-length formats.
570 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
571 Warn about printf/scanf/strftime/strfmon format string anomalies.
574 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
575 Warn about function calls with format strings that write past the end
576 of the destination region.
579 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
580 Warn about calls to snprintf and similar functions that truncate output.
583 C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
584 Warn when the field in a struct is not aligned.
587 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
588 Warn whenever type qualifiers are ignored.
591 C C++ Var(warn_ignored_attributes) Init(1) Warning
592 Warn whenever attributes are ignored.
594 Wincompatible-pointer-types
595 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
596 Warn when there is a conversion between pointers that have incompatible types.
599 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
600 Warn about variables which are initialized to themselves.
603 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
604 Warn about implicit declarations.
606 Wimplicit-fallthrough=
607 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
611 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
612 Warn about implicit conversions from \"float\" to \"double\".
614 Wexpansion-to-defined
615 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)
616 Warn if \"defined\" is used outside #if.
618 Wimplicit-function-declaration
619 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
620 Warn about implicit function declarations.
623 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
624 Warn when a declaration does not specify a type.
627 C ObjC C++ ObjC++ Undocumented Ignore
629 Winherited-variadic-ctor
630 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
631 Warn about C++11 inheriting constructors when the base has a variadic constructor.
634 C ObjC Var(warn_int_conversion) Init(1) Warning
635 Warn about incompatible integer to pointer and pointer to integer conversions.
638 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
639 Warn for suspicious integer expressions in boolean context.
642 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
643 Warn when there is a cast to a pointer from an integer of a different size.
646 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
647 Warn about invalid uses of the \"offsetof\" macro.
650 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
651 Warn about PCH files that are found but not used.
654 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
655 Warn when a jump misses a variable initialization.
658 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
659 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
662 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
663 Warn when a logical operator is suspiciously always evaluating to true or false.
665 Wlogical-not-parentheses
666 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
667 Warn when logical not is used on the left hand side operand of a comparison.
670 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)
671 Do not warn about using \"long long\" when -pedantic.
674 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
675 Warn about suspicious declarations of \"main\".
678 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
681 Wmemset-transposed-args
682 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
683 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
686 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
687 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
689 Wmisleading-indentation
690 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
691 Warn when the indentation of the code does not reflect the block structure.
694 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
695 Warn about possibly missing braces around initializers.
697 Wmissing-declarations
698 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
699 Warn about global functions without previous declarations.
701 Wmissing-field-initializers
702 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
703 Warn about missing fields in struct initializers.
705 Wmultistatement-macros
706 C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
707 Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
709 Wmultiple-inheritance
710 C++ ObjC++ Var(warn_multiple_inheritance) Warning
711 Warn on direct multiple inheritance.
714 C++ ObjC++ Var(warn_namespaces) Warning
715 Warn on namespace definition.
718 C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
719 Warn when fields in a struct with the packed attribute are misaligned.
722 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
723 Warn about missing sized deallocation functions.
726 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
727 Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
729 Wsizeof-pointer-memaccess
730 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
731 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
733 Wsizeof-array-argument
734 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
735 Warn when sizeof is applied on a parameter declared as an array.
738 C ObjC C++ ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
739 Warn about buffer overflow in string manipulation functions like memcpy
743 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall, 2, 0) IntegerRange(0, 4)
744 Under the control of Object Size type, warn about buffer overflow in string
745 manipulation functions like memcpy and strcpy.
748 C ObjC C++ ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ ObjC++, Wall)
749 Warn about truncation in string manipulation functions like strncat and strncpy.
751 Wsuggest-attribute=format
752 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
753 Warn about functions which might be candidates for format attributes.
756 C++ ObjC++ Var(warn_override) Warning
757 Suggest that the override keyword be used when the declaration of a virtual
758 function overrides another.
761 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
762 Warn about enumerated switches, with no default, missing a case.
765 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
766 Warn about enumerated switches missing a \"default:\" statement.
769 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
770 Warn about all enumerated switches missing a specific case.
773 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
774 Warn about switches with boolean controlling expression.
777 C++ ObjC++ Var(warn_templates) Warning
778 Warn on primary template declaration.
780 Wmissing-format-attribute
781 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
784 Wmissing-include-dirs
785 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
786 Warn about user-specified include directories that do not exist.
788 Wmissing-parameter-type
789 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
790 Warn about function parameters declared without a type specifier in K&R-style functions.
793 C ObjC Var(warn_missing_prototypes) Warning
794 Warn about global functions without prototypes.
797 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
800 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
801 Warn about use of multi-character character constants.
804 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
805 Warn about narrowing conversions within { } that are ill-formed in C++11.
808 C ObjC Var(warn_nested_externs) Warning
809 Warn about \"extern\" declarations not at file scope.
812 C++ ObjC++ Var(warn_noexcept) Warning
813 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
816 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
817 Warn if C++17 noexcept function type will change the mangled name of a symbol.
820 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
821 Warn when non-templatized friend functions are declared within a template.
824 C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
825 Warn for unsafe raw memory writes to objects of class types.
828 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
829 Warn about non-virtual destructors.
832 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
833 Warn about NULL being passed to argument slots marked as requiring non-NULL.
836 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
840 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
844 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
848 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)
849 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
851 ; Required for these enum values.
856 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
859 Enum(cpp_normalize_level) String(none) Value(normalized_none)
862 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
865 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
868 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
871 C++ ObjC++ Var(warn_old_style_cast) Warning
872 Warn if a C-style cast is used in a program.
874 Wold-style-declaration
875 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
876 Warn for obsolescent usage in a declaration.
878 Wold-style-definition
879 C ObjC Var(warn_old_style_definition) Warning
880 Warn if an old-style parameter definition is used.
883 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
884 Warn if a simd directive is overridden by the vectorizer cost model.
887 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
888 Warn if a string is longer than the maximum portable length specified by the standard.
891 C++ ObjC++ Var(warn_overloaded_virtual) Warning
892 Warn about overloaded virtual function names.
895 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
896 Warn about overriding initializers without side effects.
898 Woverride-init-side-effects
899 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
900 Warn about overriding initializers with side effects.
902 Wpacked-bitfield-compat
903 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
904 Warn about packed bit-fields whose offset changed in GCC 4.4.
907 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
908 Warn about possibly missing parentheses.
911 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
912 ; Documented in common.opt
915 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
916 Warn when converting the type of pointers to member functions.
919 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
920 Warn about function pointer arithmetic.
923 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
924 Warn when a pointer differs in signedness in an assignment.
927 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
928 Warn when a pointer is compared with a zero character constant.
931 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
932 Warn when a pointer is cast to an integer of a different size.
935 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
936 Warn about misuses of pragmas.
938 Wproperty-assign-default
939 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
940 Warn if a property for an Objective-C object has no assign semantics specified.
943 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
944 Warn if inherited methods are unimplemented.
947 C++ Warning Alias(Wplacement-new=, 1, 0)
948 Warn for placement new expressions with undefined behavior.
951 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
952 Warn for placement new expressions with undefined behavior.
955 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
956 Warn about multiple declarations of the same object.
959 C++ ObjC++ Var(warn_register) Warning
960 Warn about uses of register storage specifier.
963 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
964 Warn when the compiler reorders code.
967 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
968 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
970 Wscalar-storage-order
971 C ObjC C++ ObjC++ Init(1) Warning
972 Warn on suspicious constructs involving reverse scalar storage order.
975 ObjC ObjC++ Var(warn_selector) Warning
976 Warn if a selector has multiple methods.
979 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
980 Warn about possible violations of sequence point rules.
983 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
984 Warn if a local declaration hides an instance variable.
987 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
988 Warn if left shift of a signed value overflows.
991 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
992 Warn if left shift of a signed value overflows.
994 Wshift-count-negative
995 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
996 Warn if shift count is negative.
998 Wshift-count-overflow
999 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
1000 Warn if shift count >= width of type.
1002 Wshift-negative-value
1003 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
1004 Warn if left shifting a negative value.
1007 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
1008 Warn about signed-unsigned comparisons.
1011 C ObjC C++ ObjC++ EnabledBy(Wextra)
1015 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
1016 Warn for implicit type conversions between signed and unsigned integers.
1019 C++ ObjC++ Var(warn_sign_promo) Warning
1020 Warn when overload promotes from unsigned to signed.
1022 Wstrict-null-sentinel
1023 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
1024 Warn about uncasted NULL used as sentinel.
1027 C ObjC Var(warn_strict_prototypes) Warning
1028 Warn about unprototyped function declarations.
1031 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
1035 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
1038 Wstrict-selector-match
1039 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1040 Warn if type signatures of candidate methods do not match exactly.
1043 C C++ Var(warn_sync_nand) Init(1) Warning
1044 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1047 C++ ObjC++ Var(warn_synth) Warning
1048 Deprecated. This switch has no effect.
1051 C ObjC C++ ObjC++ Warning
1052 ; Documented in common.opt
1054 Wtautological-compare
1055 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1056 Warn if a comparison always evaluates to true or false.
1059 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1060 Warn if a throw expression will always result in a call to terminate().
1063 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1064 Warn about features not present in traditional C.
1066 Wtraditional-conversion
1067 C ObjC Var(warn_traditional_conversion) Warning
1068 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1071 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1072 Warn if trigraphs are encountered that might affect the meaning of the program.
1074 Wundeclared-selector
1075 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1076 Warn about @selector()s without previously declared methods.
1079 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1080 Warn if an undefined macro is used in an #if directive.
1083 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1086 Wmaybe-uninitialized
1087 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1091 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1092 Warn about unrecognized pragmas.
1094 Wunsuffixed-float-constants
1095 C ObjC Var(warn_unsuffixed_float_constants) Warning
1096 Warn about unsuffixed float constants.
1099 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1100 ; documented in common.opt
1102 Wunused-local-typedefs
1103 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1104 Warn when typedefs locally defined in a function are not used.
1107 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1108 Warn about macros defined in the main file that are not used.
1111 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1112 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1115 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1116 ; documented in common.opt
1118 Wunused-const-variable
1119 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1120 Warn when a const variable is unused.
1122 Wunused-const-variable=
1123 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
1124 Warn when a const variable is unused.
1127 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)
1128 Warn about using variadic macros.
1131 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1132 Warn about questionable usage of the macros used to retrieve variable arguments.
1135 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1136 Warn if a variable length array is used.
1139 C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1140 -Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and
1141 on bounded uses of variable-length arrays whose bound can be
1142 larger than <number> bytes.
1144 Wvolatile-register-var
1145 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1146 Warn when a register variable is declared volatile.
1148 Wvirtual-inheritance
1149 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1150 Warn on direct virtual inheritance.
1152 Wvirtual-move-assign
1153 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1154 Warn if a virtual base has a non-trivial move assignment operator.
1157 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1158 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.
1160 Wzero-as-null-pointer-constant
1161 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1162 Warn when a literal '0' is used as null pointer.
1165 C++ ObjC++ Var(warn_useless_cast) Warning
1166 Warn about useless casts.
1169 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1170 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.
1172 Wduplicate-decl-specifier
1173 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1174 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1177 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1178 Warn when an argument passed to a restrict-qualified parameter aliases with
1183 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1186 C ObjC C++ ObjC++ Joined
1187 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
1189 fabi-compat-version=
1190 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1191 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1194 C++ ObjC++ Var(flag_access_control) Init(1)
1195 Enforce class member access control semantics.
1198 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1199 -fada-spec-parent=unit Dump Ada specs as child units of given parent.
1202 C++ ObjC++ Alias(faligned-new=,1,0)
1203 Support C++17 allocation of over-aligned types.
1206 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1207 -faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1210 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1212 fallow-parameterless-variadic-functions
1213 C ObjC Var(flag_allow_parameterless_variadic_functions)
1214 Allow variadic functions without named parameter.
1216 falt-external-templates
1217 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1218 No longer supported.
1221 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1222 Recognize the \"asm\" keyword.
1224 ; Define extra predefined macros for use in libgcc.
1226 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1229 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1230 Recognize built-in functions.
1233 C ObjC C++ ObjC++ Joined
1235 fcanonical-system-headers
1237 Where shorter, use canonicalized paths to systems headers.
1239 fcheck-pointer-bounds
1240 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1241 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1242 control instrumentation. Currently available for C, C++ and ObjC.
1244 fchkp-check-incomplete-type
1245 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1246 Generate pointer bounds checks for variables with incomplete type.
1248 fchkp-zero-input-bounds-for-main
1249 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1250 Use zero bounds for all incoming arguments in 'main' function. It helps when
1251 instrumented binaries are used with legacy libs.
1253 fchkp-first-field-has-own-bounds
1254 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1255 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1256 field in the structure. By default pointer to the first field has the same
1257 bounds as pointer to the whole structure.
1260 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1261 Control how Pointer Bounds Checker handle pointers to object fields. When
1262 narrowing is on, field bounds are used. Otherwise full object bounds are used.
1264 fchkp-narrow-to-innermost-array
1265 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1266 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1267 nested static arrays access. By default outermost array is used.
1269 fchkp-flexible-struct-trailing-arrays
1270 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
1271 Forces Pointer Bounds Checker to treat all trailing arrays in structures as
1272 possibly flexible. By default only arrays fields with zero length or that are
1273 marked with attribute bnd_variable_size are treated as flexible.
1276 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1277 Allow Pointer Bounds Checker optimizations. By default allowed
1278 on optimization levels >0.
1280 fchkp-use-fast-string-functions
1281 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1282 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1284 fchkp-use-nochk-string-functions
1285 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1286 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1288 fchkp-use-static-bounds
1289 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1290 Use statically initialized variable for vars bounds instead of
1291 generating them each time it is required.
1293 fchkp-use-static-const-bounds
1294 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1295 Use statically initialized variable for constant bounds instead of
1296 generating them each time it is required.
1298 fchkp-treat-zero-dynamic-size-as-infinite
1299 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1300 With this option zero size obtained dynamically for objects with
1301 incomplete type will be treated as infinite.
1304 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1305 Generate checks for all read accesses to memory.
1308 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1309 Generate checks for all write accesses to memory.
1312 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1313 Generate bounds stores for pointer writes.
1315 fchkp-instrument-calls
1316 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1317 Generate bounds passing for calls.
1319 fchkp-instrument-marked-only
1320 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1321 Instrument only functions marked with bnd_instrument attribute.
1324 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1325 Transform instrumented builtin calls into calls to wrappers.
1330 static-libmpxwrappers
1334 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1338 C++ ObjC++ Var(flag_concepts)
1339 Enable support for C++ concepts.
1343 Allow the arguments of the '?' operator to have different types.
1346 C++ ObjC++ Var(flag_conserve_space)
1347 Does nothing. Preserved for backward compatibility.
1349 fconstant-string-class=
1350 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1351 -fconst-string-class=<name> Use class <name> for constant strings.
1354 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1355 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
1357 fconstexpr-loop-limit=
1358 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1359 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1363 Emit debug annotations during preprocessing.
1366 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1367 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1370 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1371 Factor complex constructors and destructors to favor space over speed.
1375 Does nothing. Preserved for backward compatibility.
1377 fdiagnostics-show-template-tree
1378 C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
1379 Print hierarchical comparisons when template types are mismatched.
1383 Preprocess directives only.
1385 fdollars-in-identifiers
1387 Permit '$' as an identifier character.
1390 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1391 Write all declarations as Ada code transitively.
1394 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1395 Write all declarations as Ada code for the given file only.
1398 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1401 C++ ObjC++ Var(flag_elide_type) Init(1)
1402 -fno-elide-type Do not elide common elements in template comparisons.
1405 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1406 Generate code to check exception specifications.
1409 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1412 C ObjC C++ ObjC++ Joined RejectNegative
1413 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
1415 fextended-identifiers
1417 Permit universal character names (\\u and \\U) in identifiers.
1420 C ObjC C++ ObjC++ Joined RejectNegative
1421 -finput-charset=<cset> Specify the default character set for source files.
1424 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1425 Support dynamic initialization of thread-local variables in a different translation unit.
1428 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1431 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1432 Scope of for-init-statement variables is local to the loop.
1436 Do not assume that standard C libraries and \"main\" exist.
1439 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1440 Recognize GNU-defined keywords.
1443 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1444 Generate code for GNU runtime environment.
1447 C ObjC Var(flag_gnu89_inline) Init(-1)
1448 Use traditional GNU semantics for inline functions.
1451 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1454 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1457 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1461 Assume normal C execution environment.
1464 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1465 No longer supported.
1468 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1469 Export functions even if they can be inlined.
1471 fimplicit-inline-templates
1472 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1473 Emit implicit instantiations of inline templates.
1476 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1477 Emit implicit instantiations of templates.
1479 fnew-inheriting-ctors
1480 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1481 Implement C++17 inheriting constructor semantics.
1484 C++ ObjC++ Var(flag_friend_injection)
1485 Inject friend functions into enclosing namespace.
1487 fkeep-inline-dllexport
1488 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1489 Don't emit dllexported inline functions unless needed.
1492 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1494 flax-vector-conversions
1495 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1496 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1499 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1500 Don't warn about uses of Microsoft extensions.
1503 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1506 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1509 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1511 fname-mangling-version-
1512 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1515 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1518 C++ ObjC++ Var(flag_new_ttp)
1519 Implement resolution of DR 150 for matching of template template arguments.
1522 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1523 Generate code for NeXT (Apple Mac OS X) runtime environment.
1526 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1527 Assume that receivers of Objective-C messages may be nil.
1530 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1531 Allow access to instance variables as if they were local declarations within instance method implementations.
1534 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1535 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1538 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1541 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1544 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1547 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1550 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1553 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1556 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1559 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1560 Treat a throw() exception specification as noexcept to improve code size.
1563 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1564 Specify which ABI to use for Objective-C family code and meta-data generation.
1566 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1567 ; to initialize any non-POD ivars in Objective-C++ classes.
1568 fobjc-call-cxx-cdtors
1569 ObjC++ Var(flag_objc_call_cxx_cdtors)
1570 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1572 fobjc-direct-dispatch
1573 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1574 Allow fast jumps to the message dispatcher.
1576 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1577 ; @try, etc.) in source code.
1579 ObjC ObjC++ Var(flag_objc_exceptions)
1580 Enable Objective-C exception and synchronization syntax.
1583 ObjC ObjC++ LTO Var(flag_objc_gc)
1584 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1587 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1588 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1590 ; Nonzero means that we generate NeXT setjmp based exceptions.
1591 fobjc-sjlj-exceptions
1592 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1593 Enable Objective-C setjmp exception handling runtime.
1596 ObjC ObjC++ Var(flag_objc1_only)
1597 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1600 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1604 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1605 Specify default OpenACC compute dimensions.
1608 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1609 Enable OpenMP (implies -frecursive in Fortran).
1612 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1613 Enable OpenMP's SIMD directives.
1617 Recognize C++ keywords like \"compl\" and \"xor\".
1621 Does nothing. Preserved for backward compatibility.
1628 Look for and use PCH files even when preprocessing.
1631 C++ ObjC++ Var(flag_permissive)
1632 Downgrade conformance errors to warnings.
1635 C ObjC Var(flag_plan9_extensions)
1636 Enable Plan 9 language extensions.
1640 Treat the input file as already preprocessed.
1642 ftrack-macro-expansion
1643 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1644 ; converted into ftrack-macro-expansion=
1646 ftrack-macro-expansion=
1647 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1648 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
1651 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1652 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1654 fprintf-return-value
1655 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1656 Treat known sprintf return values as constants.
1658 freplace-objc-classes
1659 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1660 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1664 Enable automatic template instantiation.
1667 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1668 Generate run time type descriptor information.
1671 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1672 Use the narrowest integer type possible for enumeration types.
1675 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1676 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1679 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1680 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1683 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1684 Make \"char\" signed by default.
1687 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1688 Enable C++14 sized deallocation support.
1691 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1694 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1695 -fsso-struct=[big-endian|little-endian|native] Set the default scalar storage order.
1698 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1701 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1704 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1707 Enum(sso_struct) String(native) Value(SSO_NATIVE)
1710 C++ ObjC++ Var(flag_detailed_statistics)
1711 Display statistics accumulated during compilation.
1714 C++ ObjC++ Optimization Var(flag_strict_enums)
1715 Assume that values of enumeration type are always within the minimum range of that type.
1718 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1721 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1722 Follow the C++17 evaluation order requirements for assignment expressions,
1723 shift, member function calls, etc.
1726 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
1727 Follow the C++17 evaluation order requirements for assignment expressions,
1728 shift, member function calls, etc.
1731 Name(strong_eval_order) Type(int)
1734 Enum(strong_eval_order) String(none) Value(0)
1737 Enum(strong_eval_order) String(some) Value(1)
1740 Enum(strong_eval_order) String(all) Value(2)
1743 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1744 -ftabstop=<number> Distance between tab stops for column reporting.
1746 ftemplate-backtrace-limit=
1747 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1748 Set the maximum number of template instantiation notes for a single warning or error.
1751 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1754 C++ ObjC++ Joined RejectNegative UInteger
1755 -ftemplate-depth=<number> Specify maximum template instantiation depth.
1758 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1761 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1762 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1765 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1766 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1769 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1770 Make \"char\" unsigned by default.
1773 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1774 Use __cxa_atexit to register destructors.
1776 fuse-cxa-get-exception-ptr
1777 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1778 Use __cxa_get_exception_ptr in exception handling.
1780 fvisibility-inlines-hidden
1782 Marks all inlined functions and methods as having hidden visibility.
1784 fvisibility-ms-compat
1785 C++ ObjC++ Var(flag_visibility_ms_compat)
1786 Changes visibility to match Microsoft Visual Studio by default.
1789 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1790 No longer supported.
1793 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1794 No longer supported.
1797 C++ ObjC++ Var(flag_weak) Init(1)
1798 Emit common-like symbols as weak symbols.
1801 C ObjC C++ ObjC++ Joined RejectNegative
1802 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
1805 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1806 Generate a #line directive pointing at the current working directory.
1809 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1810 No longer supported.
1813 ObjC ObjC++ Var(flag_zero_link)
1814 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1817 ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
1818 Dump declarations to a .decl file.
1820 femit-struct-debug-baseonly
1822 -femit-struct-debug-baseonly Aggressive reduced debug info for structs.
1824 femit-struct-debug-reduced
1826 -femit-struct-debug-reduced Conservative reduced debug info for structs.
1828 femit-struct-debug-detailed=
1829 C ObjC C++ ObjC++ Joined
1830 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
1832 fext-numeric-literals
1833 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
1834 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1835 number literal rather than a user-defined number literal.
1838 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1839 -idirafter <dir> Add <dir> to the end of the system include path.
1842 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1843 -imacros <file> Accept definition of macros in <file>.
1846 C ObjC C++ ObjC++ Joined Separate
1847 -imultilib <dir> Set <dir> to be the multilib include subdirectory.
1850 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1851 -include <file> Include the contents of <file> before other files.
1854 C ObjC C++ ObjC++ Joined Separate
1855 -iprefix <path> Specify <path> as a prefix for next two options.
1858 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1859 -isysroot <dir> Set <dir> to be the system root directory.
1862 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1863 -isystem <dir> Add <dir> to the start of the system include path.
1866 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1867 -iquote <dir> Add <dir> to the end of the quote include path.
1870 C ObjC C++ ObjC++ Joined Separate
1871 -iwithprefix <dir> Add <dir> to the end of the system include path.
1874 C ObjC C++ ObjC++ Joined Separate
1875 -iwithprefixbefore <dir> Add <dir> to the end of the main include path.
1878 C Undocumented RejectDriver
1885 Do not search standard system include directories (those specified with -isystem will still be used).
1889 Do not search standard system include directories for C++.
1892 C ObjC C++ ObjC++ Joined Separate
1893 ; Documented in common.opt
1896 C ObjC C++ ObjC++ Alias(Wpedantic)
1897 ; Documented in common.opt
1899 print-objc-runtime-info
1901 Generate C header of platform-specific features.
1905 Remap file names when including files.
1909 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1912 C++ ObjC++ Alias(std=c++98)
1913 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1917 Conform to the ISO 2011 C++ standard.
1920 C++ ObjC++ Alias(std=c++11) Undocumented
1921 Deprecated in favor of -std=c++11.
1924 C++ ObjC++ Alias(std=c++14) Undocumented
1925 Deprecated in favor of -std=c++14.
1929 Conform to the ISO 2014 C++ standard.
1932 C++ ObjC++ Alias(std=c++17) Undocumented
1933 Deprecated in favor of -std=c++17.
1937 Conform to the ISO 2017 C++ standard.
1941 Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete support).
1945 Conform to the ISO 2011 C standard.
1948 C ObjC Alias(std=c11)
1949 Deprecated in favor of -std=c11.
1953 Conform to the ISO 2017 C standard (expected to be published in 2018).
1956 C ObjC Alias(std=c17)
1957 Conform to the ISO 2017 C standard (expected to be published in 2018).
1960 C ObjC Alias(std=c90)
1961 Conform to the ISO 1990 C standard.
1965 Conform to the ISO 1990 C standard.
1969 Conform to the ISO 1999 C standard.
1972 C ObjC Alias(std=c99)
1973 Deprecated in favor of -std=c99.
1977 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1978 corrigendum with GNU extensions.
1981 C++ ObjC++ Alias(std=gnu++98)
1982 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1983 corrigendum with GNU extensions.
1987 Conform to the ISO 2011 C++ standard with GNU extensions.
1990 C++ ObjC++ Alias(std=gnu++11) Undocumented
1991 Deprecated in favor of -std=gnu++11.
1994 C++ ObjC++ Alias(std=gnu++14) Undocumented
1995 Deprecated in favor of -std=gnu++14.
1999 Conform to the ISO 2014 C++ standard with GNU extensions.
2002 C++ ObjC++ Alias(std=gnu++17) Undocumented
2003 Deprecated in favor of -std=gnu++17.
2007 Conform to the ISO 2017 C++ standard with GNU extensions.
2011 Conform to the ISO 2020(?) C++ draft standard with GNU extensions (experimental and incomplete support).
2015 Conform to the ISO 2011 C standard with GNU extensions.
2018 C ObjC Alias(std=gnu11)
2019 Deprecated in favor of -std=gnu11.
2023 Conform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
2026 C ObjC Alias(std=gnu17)
2027 Conform to the ISO 2017 C standard (expected to be published in 2018) with GNU extensions.
2030 C ObjC Alias(std=gnu90)
2031 Conform to the ISO 1990 C standard with GNU extensions.
2035 Conform to the ISO 1990 C standard with GNU extensions.
2039 Conform to the ISO 1999 C standard with GNU extensions.
2042 C ObjC Alias(std=gnu99)
2043 Deprecated in favor of -std=gnu99.
2046 C ObjC Alias(std=c90)
2047 Conform to the ISO 1990 C standard.
2051 Conform to the ISO 1990 C standard as amended in 1994.
2054 C ObjC Alias(std=c99)
2055 Conform to the ISO 1999 C standard.
2058 C ObjC Alias(std=c99)
2059 Deprecated in favor of -std=iso9899:1999.
2062 C ObjC Alias(std=c11)
2063 Conform to the ISO 2011 C standard.
2066 C ObjC Alias(std=c17)
2067 Conform to the ISO 2017 C standard (expected to be published in 2018).
2070 C ObjC Alias(std=c17)
2071 Conform to the ISO 2017 C standard (expected to be published in 2018).
2078 Enable traditional preprocessing.
2082 -trigraphs Support ISO C trigraphs.
2085 C ObjC C++ ObjC++ Var(flag_undef)
2086 Do not predefine system-specific and GCC-specific macros.
2090 ; Documented in common.opt
2094 ; Documented in common.opt
2096 ; This comment is to ensure we retain the blank line above.