1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2015 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
205 Print the name of header files as they are used
208 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
209 -I <dir> Add <dir> to the end of the main include path
213 Generate make dependencies
216 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
217 Generate make dependencies and compile
220 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
221 -MF <file> Write dependency output to the given file
225 Treat missing header files as generated files
229 Like -M but ignore system header files
232 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
233 Like -MD but ignore system header files
237 Generate phony targets for all headers
240 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
241 -MQ <target> Add a MAKE-quoted target
244 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
245 -MT <target> Add an unquoted target
249 Do not generate #line directives
252 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
253 -U<macro> Undefine <macro>
256 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
257 Warn about things that will change when compiling with an ABI-compliant compiler
260 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
261 Warn about things that change between the current -fabi-version and the specified version
264 C++ ObjC++ Var(warn_abi_tag) Warning
265 Warn if a subobject has an abi_tag attribute that the complete object type does not have
268 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
271 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
272 Warn about suspicious uses of memory addresses
275 C ObjC C++ ObjC++ Warning
276 Enable most warning messages
279 LangEnabledBy(C ObjC C++ ObjC++,Wall)
283 LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
287 ObjC ObjC++ Var(warn_assign_intercept) Warning
288 Warn whenever an Objective-C assignment is being intercepted by the garbage collector
291 C ObjC Var(warn_bad_function_cast) Warning
292 Warn about casting functions to incompatible types
295 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
296 Warn about boolean expression compared with an integer value different from true/false
298 Wbuiltin-macro-redefined
299 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
300 Warn when a built-in preprocessor macro is undefined or redefined
303 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
304 Warn about features not present in ISO C90, but present in ISO C99
307 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
308 Warn about features not present in ISO C99, but present in ISO C11
311 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
312 Warn about C constructs that are not in the common subset of C and C++
315 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
318 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
319 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
322 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
323 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014
326 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
327 Warn about casts which discard qualifiers
330 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
331 Warn about subscripts whose type is \"char\"
334 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
335 Warn about memory access errors found by Pointer Bounds Checker
338 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
339 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
342 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
343 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
346 C ObjC C++ ObjC++ Warning Alias(Wcomment)
347 Synonym for -Wcomment
349 Wconditionally-supported
350 C++ ObjC++ Var(warn_conditionally_supported) Warning
351 Warn for conditionally-supported constructs
354 C ObjC C++ ObjC++ Var(warn_conversion) Warning
355 Warn for implicit type conversions that may change a value
358 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
359 Warn for converting NULL from/to a non-pointer type
362 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
363 ; Documented in common.opt
366 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
367 Warn when all constructors and destructors are private
370 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
371 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
373 Wdeclaration-after-statement
374 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
375 Warn when a declaration is found after a statement
378 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
379 Warn when deleting a pointer to incomplete type
381 Wdelete-non-virtual-dtor
382 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
383 Warn about deleting polymorphic objects with non-virtual destructors
386 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
387 Warn if a deprecated compiler feature, class, method, or field is used
390 C ObjC Var(warn_designated_init) Init(1) Warning
391 Warn about positional initialization of structs requiring designated initializers
393 Wdiscarded-array-qualifiers
394 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
395 Warn if qualifiers on arrays which are pointer targets are discarded
397 Wdiscarded-qualifiers
398 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
399 Warn if type qualifiers on pointers are discarded
402 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
403 Warn about compile-time integer division by zero
406 C++ ObjC++ Var(warn_ecpp) Warning
407 Warn about violations of Effective C++ style rules
410 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
411 Warn about an empty body in an if or else statement
414 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)
415 Warn about stray tokens after #elif and #endif
418 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
419 Warn about comparison of different enum types
423 ; Documented in common.opt
425 Werror-implicit-function-declaration
426 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
427 This switch is deprecated; use -Werror=implicit-function-declaration instead
430 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
431 Warn for implicit type conversions that cause loss of floating point precision
434 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
435 Warn if testing floating point numbers for equality
438 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
439 Warn about printf/scanf/strftime/strfmon format string anomalies
442 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
443 Warn about format strings that contain NUL bytes
446 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
447 Warn if passing too many arguments to a function for its format string
450 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
451 Warn about format strings that are not literals
454 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
455 Warn about possible security problems with format functions
458 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
459 Warn about sign differences with format functions
462 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
463 Warn about strftime formats yielding 2-digit years
466 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
467 Warn about zero-length formats
470 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
471 Warn about printf/scanf/strftime/strfmon format string anomalies
474 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
475 Warn whenever type qualifiers are ignored.
477 Wincompatible-pointer-types
478 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
479 Warn when there is a conversion between pointers that have incompatible types
482 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
483 Warn about variables which are initialized to themselves
486 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
487 Warn about implicit declarations
490 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
491 Warn about implicit conversions from \"float\" to \"double\"
493 Wimplicit-function-declaration
494 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
495 Warn about implicit function declarations
498 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
499 Warn when a declaration does not specify a type
502 C ObjC C++ ObjC++ Undocumented Ignore
504 Winherited-variadic-ctor
505 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
506 Warn about C++11 inheriting constructors when the base has a variadic constructor
509 C ObjC Var(warn_int_conversion) Init(1) Warning
510 Warn about incompatible integer to pointer and pointer to integer conversions
513 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
514 Warn when there is a cast to a pointer from an integer of a different size
517 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
518 Warn about invalid uses of the \"offsetof\" macro
521 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
522 Warn about PCH files that are found but not used
525 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
526 Warn when a jump misses a variable initialization
529 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
530 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
533 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
534 Warn when a logical operator is suspiciously always evaluating to true or false
536 Wlogical-not-parentheses
537 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
538 Warn when logical not is used on the left hand side operand of a comparison
541 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)
542 Do not warn about using \"long long\" when -pedantic
545 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
546 Warn about suspicious declarations of \"main\"
549 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
552 Wmemset-transposed-args
553 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
554 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
557 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
558 Warn about possibly missing braces around initializers
560 Wmissing-declarations
561 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
562 Warn about global functions without previous declarations
564 Wmissing-field-initializers
565 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
566 Warn about missing fields in struct initializers
569 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
570 Warn about missing sized deallocation functions
572 Wsizeof-pointer-memaccess
573 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
574 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
576 Wsizeof-array-argument
577 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
578 Warn when sizeof is applied on a parameter declared as an array
580 Wsuggest-attribute=format
581 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
582 Warn about functions which might be candidates for format attributes
585 C++ ObjC++ Var(warn_override) Warning
586 Suggest that the override keyword be used when the declaration of a virtual
587 function overrides another.
590 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
591 Warn about enumerated switches, with no default, missing a case
594 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
595 Warn about enumerated switches missing a \"default:\" statement
598 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
599 Warn about all enumerated switches missing a specific case
602 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
603 Warn about switches with boolean controlling expression
605 Wmissing-format-attribute
606 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
609 Wmissing-include-dirs
610 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
611 Warn about user-specified include directories that do not exist
613 Wmissing-parameter-type
614 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
615 Warn about function parameters declared without a type specifier in K&R-style functions
618 C ObjC Var(warn_missing_prototypes) Warning
619 Warn about global functions without prototypes
622 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
625 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
626 Warn about use of multi-character character constants
629 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
630 Warn about narrowing conversions within { } that are ill-formed in C++11
633 C ObjC Var(warn_nested_externs) Warning
634 Warn about \"extern\" declarations not at file scope
637 C++ ObjC++ Var(warn_noexcept) Warning
638 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
641 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
642 Warn when non-templatized friend functions are declared within a template
645 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
646 Warn about non-virtual destructors
649 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
650 Warn about NULL being passed to argument slots marked as requiring non-NULL
653 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
657 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
661 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)
662 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
664 ; Required for these enum values.
669 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
672 Enum(cpp_normalize_level) String(none) Value(normalized_none)
675 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
678 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
681 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
684 C++ ObjC++ Var(warn_old_style_cast) Warning
685 Warn if a C-style cast is used in a program
687 Wold-style-declaration
688 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
689 Warn for obsolescent usage in a declaration
691 Wold-style-definition
692 C ObjC Var(warn_old_style_definition) Warning
693 Warn if an old-style parameter definition is used
696 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
697 Warn if a simd directive is overridden by the vectorizer cost model
700 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
701 Warn if a string is longer than the maximum portable length specified by the standard
704 C++ ObjC++ Var(warn_overloaded_virtual) Warning
705 Warn about overloaded virtual function names
708 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
709 Warn about overriding initializers without side effects
711 Woverride-init-side-effects
712 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
713 Warn about overriding initializers with side effects
715 Wpacked-bitfield-compat
716 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
717 Warn about packed bit-fields whose offset changed in GCC 4.4
720 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
721 Warn about possibly missing parentheses
724 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
725 ; Documented in common.opt
728 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
729 Warn when converting the type of pointers to member functions
732 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
733 Warn about function pointer arithmetic
736 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
737 Warn when a pointer differs in signedness in an assignment
740 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
741 Warn when a pointer is cast to an integer of a different size
744 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
745 Warn about misuses of pragmas
747 Wproperty-assign-default
748 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
749 Warn if a property for an Objective-C object has no assign semantics specified
752 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
753 Warn if inherited methods are unimplemented
756 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
757 Warn about multiple declarations of the same object
760 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
761 Warn when the compiler reorders code
764 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
765 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
768 ObjC ObjC++ Var(warn_selector) Warning
769 Warn if a selector has multiple methods
772 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
773 Warn about possible violations of sequence point rules
776 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
777 Warn if a local declaration hides an instance variable
779 Wshift-count-negative
780 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
781 Warn if shift count is negative
783 Wshift-count-overflow
784 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
785 Warn if shift count >= width of type
787 Wshift-negative-value
788 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
789 Warn if left shifting a negative value
792 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
793 Warn about signed-unsigned comparisons
796 C ObjC C++ ObjC++ EnabledBy(Wextra)
800 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
801 Warn for implicit type conversions between signed and unsigned integers
804 C++ ObjC++ Var(warn_sign_promo) Warning
805 Warn when overload promotes from unsigned to signed
807 Wstrict-null-sentinel
808 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
809 Warn about uncasted NULL used as sentinel
812 C ObjC Var(warn_strict_prototypes) Warning
813 Warn about unprototyped function declarations
816 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
820 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
823 Wstrict-selector-match
824 ObjC ObjC++ Var(warn_strict_selector_match) Warning
825 Warn if type signatures of candidate methods do not match exactly
828 C C++ Var(warn_sync_nand) Init(1) Warning
829 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
832 C++ ObjC++ Var(warn_synth) Warning
833 Deprecated. This switch has no effect
836 C ObjC C++ ObjC++ Warning
837 ; Documented in common.opt
840 C++ ObjC++ Warning Var(warn_terminate) Init(1)
841 Warn if a throw expression will always result in a call to terminate()
844 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
845 Warn about features not present in traditional C
847 Wtraditional-conversion
848 C ObjC Var(warn_traditional_conversion) Warning
849 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
852 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
853 Warn if trigraphs are encountered that might affect the meaning of the program
856 ObjC ObjC++ Var(warn_undeclared_selector) Warning
857 Warn about @selector()s without previously declared methods
860 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
861 Warn if an undefined macro is used in an #if directive
864 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
868 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
872 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
873 Warn about unrecognized pragmas
875 Wunsuffixed-float-constants
876 C ObjC Var(warn_unsuffixed_float_constants) Warning
877 Warn about unsuffixed float constants
880 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
881 ; documented in common.opt
883 Wunused-local-typedefs
884 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
885 Warn when typedefs locally defined in a function are not used
888 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
889 Warn about macros defined in the main file that are not used
892 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
893 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
896 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)
897 Warn about using variadic macros
900 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
901 Warn about questionable usage of the macros used to retrieve variable arguments
904 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
905 Warn if a variable length array is used
907 Wvolatile-register-var
908 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
909 Warn when a register variable is declared volatile
912 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
913 Warn if a virtual base has a non-trivial move assignment operator
916 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
917 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.
919 Wzero-as-null-pointer-constant
920 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
921 Warn when a literal '0' is used as null pointer
924 C++ ObjC++ Var(warn_useless_cast) Warning
925 Warn about useless casts
929 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
932 C ObjC C++ ObjC++ Joined
933 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
936 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
937 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
940 C++ ObjC++ Var(flag_access_control) Init(1)
941 Enforce class member access control semantics
944 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
945 -fada-spec-parent=unit Dump Ada specs as child units of given parent
948 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
950 fallow-parameterless-variadic-functions
951 C ObjC Var(flag_allow_parameterless_variadic_functions)
952 Allow variadic functions without named parameter
954 falt-external-templates
955 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
959 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
960 Recognize the \"asm\" keyword
962 ; Define extra predefined macros for use in libgcc.
964 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
967 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
968 Recognize built-in functions
971 C ObjC C++ ObjC++ Joined
973 fcanonical-system-headers
975 Where shorter, use canonicalized paths to systems headers.
977 fcheck-pointer-bounds
978 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
979 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
980 control instrumentation. Currently available for C, C++ and ObjC.
982 fchkp-check-incomplete-type
983 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
984 Generate pointer bounds checks for variables with incomplete type
986 fchkp-zero-input-bounds-for-main
987 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
988 Use zero bounds for all incoming arguments in 'main' function. It helps when
989 instrumented binaries are used with legacy libs.
991 fchkp-first-field-has-own-bounds
992 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
993 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
994 field in the structure. By default pointer to the first field has the same
995 bounds as pointer to the whole structure.
998 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
999 Control how Pointer Bounds Checker handle pointers to object fields. When
1000 narrowing is on, field bounds are used. Otherwise full object bounds are used.
1002 fchkp-narrow-to-innermost-array
1003 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1004 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1005 nested static arryas access. By default outermost array is used.
1008 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1009 Allow Pointer Bounds Checker optimizations. By default allowed
1010 on optimization levels >0.
1012 fchkp-use-fast-string-functions
1013 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1014 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1016 fchkp-use-nochk-string-functions
1017 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1018 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1020 fchkp-use-static-bounds
1021 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1022 Use statically initialized variable for vars bounds instead of
1023 generating them each time it is required.
1025 fchkp-use-static-const-bounds
1026 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1027 Use statically initialized variable for constant bounds instead of
1028 generating them each time it is required.
1030 fchkp-treat-zero-dynamic-size-as-infinite
1031 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1032 With this option zero size obtained dynamically for objects with
1033 incomplete type will be treated as infinite.
1036 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1037 Generate checks for all read accesses to memory.
1040 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1041 Generate checks for all write accesses to memory.
1044 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1045 Generate bounds stores for pointer writes.
1047 fchkp-instrument-calls
1048 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1049 Generate bounds passing for calls.
1051 fchkp-instrument-marked-only
1052 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1053 Instrument only functions marked with bnd_instrument attribute.
1056 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1057 Transform instrumented builtin calls into calls to wrappers.
1062 static-libmpxwrappers
1066 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1071 Allow the arguments of the '?' operator to have different types
1074 C++ ObjC++ Var(flag_conserve_space)
1075 Does nothing. Preserved for backward compatibility.
1077 fconstant-string-class=
1078 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1079 -fconst-string-class=<name> Use class <name> for constant strings
1082 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1083 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth
1087 Emit debug annotations during preprocessing
1090 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1091 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1094 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1095 Factor complex constructors and destructors to favor space over speed
1099 Does nothing. Preserved for backward compatibility.
1103 Preprocess directives only.
1105 fdollars-in-identifiers
1107 Permit '$' as an identifier character
1110 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1111 Write all declarations as Ada code transitively
1114 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1115 Write all declarations as Ada code for the given file only
1118 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1121 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1122 Generate code to check exception specifications
1125 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1128 C ObjC C++ ObjC++ Joined RejectNegative
1129 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
1131 fextended-identifiers
1133 Permit universal character names (\\u and \\U) in identifiers
1136 C ObjC C++ ObjC++ Joined RejectNegative
1137 -finput-charset=<cset> Specify the default character set for source files
1140 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1141 Support dynamic initialization of thread-local variables in a different translation unit
1144 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1147 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1148 Scope of for-init-statement variables is local to the loop
1152 Do not assume that standard C libraries and \"main\" exist
1155 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1156 Recognize GNU-defined keywords
1159 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1160 Generate code for GNU runtime environment
1163 C ObjC Var(flag_gnu89_inline) Init(-1)
1164 Use traditional GNU semantics for inline functions
1167 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1170 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1173 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1177 Assume normal C execution environment
1180 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1184 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1185 Export functions even if they can be inlined
1187 fimplicit-inline-templates
1188 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1189 Emit implicit instantiations of inline templates
1192 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1193 Emit implicit instantiations of templates
1196 C++ ObjC++ Var(flag_friend_injection)
1197 Inject friend functions into enclosing namespace
1199 fkeep-inline-dllexport
1200 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1201 Don't emit dllexported inline functions unless needed
1204 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1206 flax-vector-conversions
1207 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1208 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1211 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1212 Don't warn about uses of Microsoft extensions
1215 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1218 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1221 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1223 fname-mangling-version-
1224 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1227 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1230 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1231 Generate code for NeXT (Apple Mac OS X) runtime environment
1234 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1235 Assume that receivers of Objective-C messages may be nil
1238 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1239 Allow access to instance variables as if they were local declarations within instance method implementations.
1242 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1243 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1246 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1249 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1252 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1255 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1258 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1261 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1264 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1267 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1268 Treat a throw() exception specification as noexcept to improve code size
1271 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1272 Specify which ABI to use for Objective-C family code and meta-data generation.
1274 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1275 ; to initialize any non-POD ivars in Objective-C++ classes.
1276 fobjc-call-cxx-cdtors
1277 ObjC++ Var(flag_objc_call_cxx_cdtors)
1278 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1280 fobjc-direct-dispatch
1281 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1282 Allow fast jumps to the message dispatcher
1284 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1285 ; @try, etc.) in source code.
1287 ObjC ObjC++ Var(flag_objc_exceptions)
1288 Enable Objective-C exception and synchronization syntax
1291 ObjC ObjC++ LTO Var(flag_objc_gc)
1292 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1295 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1296 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1298 ; Nonzero means that we generate NeXT setjmp based exceptions.
1299 fobjc-sjlj-exceptions
1300 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1301 Enable Objective-C setjmp exception handling runtime
1304 ObjC ObjC++ Var(flag_objc1_only)
1305 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1308 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1312 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1313 Enable OpenMP (implies -frecursive in Fortran)
1316 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1317 Enable OpenMP's SIMD directives
1321 Recognize C++ keywords like \"compl\" and \"xor\"
1325 Does nothing. Preserved for backward compatibility.
1332 Look for and use PCH files even when preprocessing
1335 C++ ObjC++ Var(flag_permissive)
1336 Downgrade conformance errors to warnings
1339 C ObjC Var(flag_plan9_extensions)
1340 Enable Plan 9 language extensions
1344 Treat the input file as already preprocessed
1346 ftrack-macro-expansion
1347 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1348 ; converted into ftrack-macro-expansion=
1350 ftrack-macro-expansion=
1351 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1352 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages
1355 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1356 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1358 freplace-objc-classes
1359 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1360 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1364 Enable automatic template instantiation
1367 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1368 Generate run time type descriptor information
1371 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1372 Use the same size for double as for float
1375 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1376 Use the narrowest integer type possible for enumeration types
1379 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1380 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1383 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1384 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1387 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1388 Make \"char\" signed by default
1391 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1392 Enable C++14 sized deallocation support
1395 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1398 C++ ObjC++ Var(flag_detailed_statistics)
1399 Display statistics accumulated during compilation
1402 C++ ObjC++ Optimization Var(flag_strict_enums)
1403 Assume that values of enumeration type are always within the minimum range of that type
1406 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1409 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1410 -ftabstop=<number> Distance between tab stops for column reporting
1412 ftemplate-backtrace-limit=
1413 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1414 Set the maximum number of template instantiation notes for a single warning or error
1417 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1420 C++ ObjC++ Joined RejectNegative UInteger
1421 -ftemplate-depth=<number> Specify maximum template instantiation depth
1424 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1427 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1428 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1431 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1432 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1435 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1436 Make \"char\" unsigned by default
1439 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1440 Use __cxa_atexit to register destructors
1442 fuse-cxa-get-exception-ptr
1443 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1444 Use __cxa_get_exception_ptr in exception handling
1446 fvisibility-inlines-hidden
1448 Marks all inlined functions and methods as having hidden visibility
1450 fvisibility-ms-compat
1451 C++ ObjC++ Var(flag_visibility_ms_compat)
1452 Changes visibility to match Microsoft Visual Studio by default
1455 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1459 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1463 C++ ObjC++ Var(flag_weak) Init(1)
1464 Emit common-like symbols as weak symbols
1467 C ObjC C++ ObjC++ Joined RejectNegative
1468 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
1471 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1472 Generate a #line directive pointing at the current working directory
1475 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1479 ObjC ObjC++ Var(flag_zero_link)
1480 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1483 ObjC ObjC++ Var(flag_gen_declaration)
1484 Dump declarations to a .decl file
1486 femit-struct-debug-baseonly
1488 -femit-struct-debug-baseonly Aggressive reduced debug info for structs
1490 femit-struct-debug-reduced
1492 -femit-struct-debug-reduced Conservative reduced debug info for structs
1494 femit-struct-debug-detailed=
1495 C ObjC C++ ObjC++ Joined
1496 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1498 fext-numeric-literals
1500 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1501 number literal rather than a user-defined number literal.
1504 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1505 -idirafter <dir> Add <dir> to the end of the system include path
1508 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1509 -imacros <file> Accept definition of macros in <file>
1512 C ObjC C++ ObjC++ Joined Separate
1513 -imultilib <dir> Set <dir> to be the multilib include subdirectory
1516 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1517 -include <file> Include the contents of <file> before other files
1520 C ObjC C++ ObjC++ Joined Separate
1521 -iprefix <path> Specify <path> as a prefix for next two options
1524 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1525 -isysroot <dir> Set <dir> to be the system root directory
1528 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1529 -isystem <dir> Add <dir> to the start of the system include path
1532 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1533 -iquote <dir> Add <dir> to the end of the quote include path
1536 C ObjC C++ ObjC++ Joined Separate
1537 -iwithprefix <dir> Add <dir> to the end of the system include path
1540 C ObjC C++ ObjC++ Joined Separate
1541 -iwithprefixbefore <dir> Add <dir> to the end of the main include path
1544 C Undocumented RejectDriver
1551 Do not search standard system include directories (those specified with -isystem will still be used)
1555 Do not search standard system include directories for C++
1558 C ObjC C++ ObjC++ Joined Separate
1559 ; Documented in common.opt
1562 C ObjC C++ ObjC++ Alias(Wpedantic)
1563 ; Documented in common.opt
1565 print-objc-runtime-info
1567 Generate C header of platform-specific features
1571 Remap file names when including files
1575 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1578 C++ ObjC++ Alias(std=c++98)
1579 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1583 Conform to the ISO 2011 C++ standard
1586 C++ ObjC++ Alias(std=c++11) Undocumented
1587 Deprecated in favor of -std=c++11
1590 C++ ObjC++ Alias(std=c++14) Undocumented
1591 Deprecated in favor of -std=c++14
1595 Conform to the ISO 2014 C++ standard
1599 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1602 C++ ObjC++ Alias(std=c++1z) Undocumented
1606 Conform to the ISO 2011 C standard (experimental and incomplete support)
1609 C ObjC Alias(std=c11)
1610 Deprecated in favor of -std=c11
1613 C ObjC Alias(std=c90)
1614 Conform to the ISO 1990 C standard
1618 Conform to the ISO 1990 C standard
1622 Conform to the ISO 1999 C standard
1625 C ObjC Alias(std=c99)
1626 Deprecated in favor of -std=c99
1630 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1631 corrigendum with GNU extensions
1634 C++ ObjC++ Alias(std=gnu++98)
1635 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1636 corrigendum with GNU extensions
1640 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1643 C++ ObjC++ Alias(std=gnu++11) Undocumented
1644 Deprecated in favor of -std=gnu++11
1647 C++ ObjC++ Alias(std=gnu++14) Undocumented
1648 Deprecated in favor of -std=gnu++14
1652 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1656 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1659 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1663 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1666 C ObjC Alias(std=gnu11)
1667 Deprecated in favor of -std=gnu11
1670 C ObjC Alias(std=gnu90)
1671 Conform to the ISO 1990 C standard with GNU extensions
1675 Conform to the ISO 1990 C standard with GNU extensions
1679 Conform to the ISO 1999 C standard with GNU extensions
1682 C ObjC Alias(std=gnu99)
1683 Deprecated in favor of -std=gnu99
1686 C ObjC Alias(std=c90)
1687 Conform to the ISO 1990 C standard
1691 Conform to the ISO 1990 C standard as amended in 1994
1694 C ObjC Alias(std=c99)
1695 Conform to the ISO 1999 C standard
1698 C ObjC Alias(std=c99)
1699 Deprecated in favor of -std=iso9899:1999
1702 C ObjC Alias(std=c11)
1703 Conform to the ISO 2011 C standard (experimental and incomplete support)
1710 Enable traditional preprocessing
1714 -trigraphs Support ISO C trigraphs
1717 C ObjC C++ ObjC++ Var(flag_undef)
1718 Do not predefine system-specific and GCC-specific macros
1722 ; Documented in common.opt
1726 ; Documented in common.opt
1728 ; This comment is to ensure we retain the blank line above.