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++ Var(warn_cxx0x_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
316 Deprecated in favor of -Wc++11-compat
319 C++ ObjC++ Warning Alias(Wc++0x-compat)
320 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
323 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
324 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014
327 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
328 Warn about casts which discard qualifiers
331 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
332 Warn about subscripts whose type is \"char\"
335 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
336 Warn about memory access errors found by Pointer Bounds Checker
339 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
340 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
343 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
344 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
347 C ObjC C++ ObjC++ Warning Alias(Wcomment)
348 Synonym for -Wcomment
350 Wconditionally-supported
351 C++ ObjC++ Var(warn_conditionally_supported) Warning
352 Warn for conditionally-supported constructs
355 C ObjC C++ ObjC++ Var(warn_conversion) Warning
356 Warn for implicit type conversions that may change a value
359 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
360 Warn for converting NULL from/to a non-pointer type
363 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
364 ; Documented in common.opt
367 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
368 Warn when all constructors and destructors are private
371 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
372 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
374 Wdeclaration-after-statement
375 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
376 Warn when a declaration is found after a statement
379 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
380 Warn when deleting a pointer to incomplete type
382 Wdelete-non-virtual-dtor
383 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
384 Warn about deleting polymorphic objects with non-virtual destructors
387 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
388 Warn if a deprecated compiler feature, class, method, or field is used
391 C ObjC Var(warn_designated_init) Init(1) Warning
392 Warn about positional initialization of structs requiring designated initializers
394 Wdiscarded-array-qualifiers
395 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
396 Warn if qualifiers on arrays which are pointer targets are discarded
398 Wdiscarded-qualifiers
399 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
400 Warn if type qualifiers on pointers are discarded
403 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
404 Warn about compile-time integer division by zero
407 C++ ObjC++ Var(warn_ecpp) Warning
408 Warn about violations of Effective C++ style rules
411 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
412 Warn about an empty body in an if or else statement
415 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)
416 Warn about stray tokens after #elif and #endif
419 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
420 Warn about comparison of different enum types
424 ; Documented in common.opt
426 Werror-implicit-function-declaration
427 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
428 This switch is deprecated; use -Werror=implicit-function-declaration instead
431 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
432 Warn for implicit type conversions that cause loss of floating point precision
435 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
436 Warn if testing floating point numbers for equality
439 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
440 Warn about printf/scanf/strftime/strfmon format string anomalies
443 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
444 Warn about format strings that contain NUL bytes
447 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
448 Warn if passing too many arguments to a function for its format string
451 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
452 Warn about format strings that are not literals
455 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
456 Warn about possible security problems with format functions
459 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
460 Warn about sign differences with format functions
463 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
464 Warn about strftime formats yielding 2-digit years
467 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
468 Warn about zero-length formats
471 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
472 Warn about printf/scanf/strftime/strfmon format string anomalies
475 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
476 Warn whenever type qualifiers are ignored.
478 Wincompatible-pointer-types
479 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
480 Warn when there is a conversion between pointers that have incompatible types
483 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
484 Warn about variables which are initialized to themselves
487 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
488 Warn about implicit declarations
491 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
492 Warn about implicit conversions from \"float\" to \"double\"
494 Wimplicit-function-declaration
495 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
496 Warn about implicit function declarations
499 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
500 Warn when a declaration does not specify a type
503 C ObjC C++ ObjC++ Undocumented Ignore
505 Winherited-variadic-ctor
506 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
507 Warn about C++11 inheriting constructors when the base has a variadic constructor
510 C ObjC Var(warn_int_conversion) Init(1) Warning
511 Warn about incompatible integer to pointer and pointer to integer conversions
514 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
515 Warn when there is a cast to a pointer from an integer of a different size
518 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
519 Warn about invalid uses of the \"offsetof\" macro
522 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
523 Warn about PCH files that are found but not used
526 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
527 Warn when a jump misses a variable initialization
530 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
531 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
534 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
535 Warn when a logical operator is suspiciously always evaluating to true or false
537 Wlogical-not-parentheses
538 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
539 Warn when logical not is used on the left hand side operand of a comparison
542 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)
543 Do not warn about using \"long long\" when -pedantic
546 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
547 Warn about suspicious declarations of \"main\"
550 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
553 Wmemset-transposed-args
554 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
555 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
558 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
559 Warn about possibly missing braces around initializers
561 Wmissing-declarations
562 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
563 Warn about global functions without previous declarations
565 Wmissing-field-initializers
566 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
567 Warn about missing fields in struct initializers
570 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
571 Warn about missing sized deallocation functions
573 Wsizeof-pointer-memaccess
574 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
575 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
577 Wsizeof-array-argument
578 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
579 Warn when sizeof is applied on a parameter declared as an array
581 Wsuggest-attribute=format
582 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
583 Warn about functions which might be candidates for format attributes
586 C++ ObjC++ Var(warn_override) Warning
587 Suggest that the override keyword be used when the declaration of a virtual
588 function overrides another.
591 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
592 Warn about enumerated switches, with no default, missing a case
595 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
596 Warn about enumerated switches missing a \"default:\" statement
599 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
600 Warn about all enumerated switches missing a specific case
603 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
604 Warn about switches with boolean controlling expression
606 Wmissing-format-attribute
607 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
610 Wmissing-include-dirs
611 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
612 Warn about user-specified include directories that do not exist
614 Wmissing-parameter-type
615 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
616 Warn about function parameters declared without a type specifier in K&R-style functions
619 C ObjC Var(warn_missing_prototypes) Warning
620 Warn about global functions without prototypes
623 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
626 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
627 Warn about use of multi-character character constants
630 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++0x-compat)
631 Warn about narrowing conversions within { } that are ill-formed in C++11
634 C ObjC Var(warn_nested_externs) Warning
635 Warn about \"extern\" declarations not at file scope
638 C++ ObjC++ Var(warn_noexcept) Warning
639 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
642 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
643 Warn when non-templatized friend functions are declared within a template
646 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
647 Warn about non-virtual destructors
650 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
651 Warn about NULL being passed to argument slots marked as requiring non-NULL
654 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
658 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
662 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)
663 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
665 ; Required for these enum values.
670 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
673 Enum(cpp_normalize_level) String(none) Value(normalized_none)
676 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
679 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
682 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
685 C++ ObjC++ Var(warn_old_style_cast) Warning
686 Warn if a C-style cast is used in a program
688 Wold-style-declaration
689 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
690 Warn for obsolescent usage in a declaration
692 Wold-style-definition
693 C ObjC Var(warn_old_style_definition) Warning
694 Warn if an old-style parameter definition is used
697 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
698 Warn if a simd directive is overridden by the vectorizer cost model
701 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
702 Warn if a string is longer than the maximum portable length specified by the standard
705 C++ ObjC++ Var(warn_overloaded_virtual) Warning
706 Warn about overloaded virtual function names
709 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
710 Warn about overriding initializers without side effects
712 Wpacked-bitfield-compat
713 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
714 Warn about packed bit-fields whose offset changed in GCC 4.4
717 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
718 Warn about possibly missing parentheses
721 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
722 ; Documented in common.opt
725 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
726 Warn when converting the type of pointers to member functions
729 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
730 Warn about function pointer arithmetic
733 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
734 Warn when a pointer differs in signedness in an assignment
737 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
738 Warn when a pointer is cast to an integer of a different size
741 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
742 Warn about misuses of pragmas
744 Wproperty-assign-default
745 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
746 Warn if a property for an Objective-C object has no assign semantics specified
749 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
750 Warn if inherited methods are unimplemented
753 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
754 Warn about multiple declarations of the same object
757 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
758 Warn when the compiler reorders code
761 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
762 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
764 Wscalar-storage-order
765 C ObjC C++ ObjC++ Init(1) Warning
766 Warn on suspicious constructs involving reverse scalar storage order
769 ObjC ObjC++ Var(warn_selector) Warning
770 Warn if a selector has multiple methods
773 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
774 Warn about possible violations of sequence point rules
777 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
778 Warn if a local declaration hides an instance variable
780 Wshift-count-negative
781 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
782 Warn if shift count is negative
784 Wshift-count-overflow
785 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
786 Warn if shift count >= width of type
789 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
790 Warn about signed-unsigned comparisons
793 C ObjC C++ ObjC++ EnabledBy(Wextra)
797 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
798 Warn for implicit type conversions between signed and unsigned integers
801 C++ ObjC++ Var(warn_sign_promo) Warning
802 Warn when overload promotes from unsigned to signed
804 Wstrict-null-sentinel
805 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
806 Warn about uncasted NULL used as sentinel
809 C ObjC Var(warn_strict_prototypes) Warning
810 Warn about unprototyped function declarations
813 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
817 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
820 Wstrict-selector-match
821 ObjC ObjC++ Var(warn_strict_selector_match) Warning
822 Warn if type signatures of candidate methods do not match exactly
825 C C++ Var(warn_sync_nand) Init(1) Warning
826 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
829 C++ ObjC++ Var(warn_synth) Warning
830 Deprecated. This switch has no effect
833 C ObjC C++ ObjC++ Warning
834 ; Documented in common.opt
837 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
838 Warn about features not present in traditional C
840 Wtraditional-conversion
841 C ObjC Var(warn_traditional_conversion) Warning
842 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
845 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
846 Warn if trigraphs are encountered that might affect the meaning of the program
849 ObjC ObjC++ Var(warn_undeclared_selector) Warning
850 Warn about @selector()s without previously declared methods
853 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
854 Warn if an undefined macro is used in an #if directive
857 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
861 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
865 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
866 Warn about unrecognized pragmas
868 Wunsuffixed-float-constants
869 C ObjC Var(warn_unsuffixed_float_constants) Warning
870 Warn about unsuffixed float constants
873 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
874 ; documented in common.opt
876 Wunused-local-typedefs
877 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
878 Warn when typedefs locally defined in a function are not used
881 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
882 Warn about macros defined in the main file that are not used
885 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
886 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
889 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)
890 Warn about using variadic macros
893 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
894 Warn about questionable usage of the macros used to retrieve variable arguments
897 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
898 Warn if a variable length array is used
900 Wvolatile-register-var
901 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
902 Warn when a register variable is declared volatile
905 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
906 Warn if a virtual base has a non-trivial move assignment operator
909 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
910 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.
912 Wzero-as-null-pointer-constant
913 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
914 Warn when a literal '0' is used as null pointer
917 C++ ObjC++ Var(warn_useless_cast) Warning
918 Warn about useless casts
922 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
925 C ObjC C++ ObjC++ Joined
926 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
929 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
930 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
933 C++ ObjC++ Var(flag_access_control) Init(1)
934 Enforce class member access control semantics
937 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
938 -fada-spec-parent=unit Dump Ada specs as child units of given parent
941 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
943 fallow-parameterless-variadic-functions
944 C ObjC Var(flag_allow_parameterless_variadic_functions)
945 Allow variadic functions without named parameter
947 falt-external-templates
948 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
952 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
953 Recognize the \"asm\" keyword
955 ; Define extra predefined macros for use in libgcc.
957 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
960 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
961 Recognize built-in functions
964 C ObjC C++ ObjC++ Joined
966 fcanonical-system-headers
968 Where shorter, use canonicalized paths to systems headers.
970 fcheck-pointer-bounds
971 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
972 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
973 control instrumentation. Currently available for C, C++ and ObjC.
975 fchkp-check-incomplete-type
976 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
977 Generate pointer bounds checks for variables with incomplete type
979 fchkp-zero-input-bounds-for-main
980 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
981 Use zero bounds for all incoming arguments in 'main' function. It helps when
982 instrumented binaries are used with legacy libs.
984 fchkp-first-field-has-own-bounds
985 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
986 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
987 field in the structure. By default pointer to the first field has the same
988 bounds as pointer to the whole structure.
991 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
992 Control how Pointer Bounds Checker handle pointers to object fields. When
993 narrowing is on, field bounds are used. Otherwise full object bounds are used.
995 fchkp-narrow-to-innermost-array
996 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
997 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
998 nested static arryas access. By default outermost array is used.
1001 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1002 Allow Pointer Bounds Checker optimizations. By default allowed
1003 on optimization levels >0.
1005 fchkp-use-fast-string-functions
1006 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1007 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1009 fchkp-use-nochk-string-functions
1010 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1011 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1013 fchkp-use-static-bounds
1014 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1015 Use statically initialized variable for vars bounds instead of
1016 generating them each time it is required.
1018 fchkp-use-static-const-bounds
1019 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1020 Use statically initialized variable for constant bounds instead of
1021 generating them each time it is required.
1023 fchkp-treat-zero-dynamic-size-as-infinite
1024 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1025 With this option zero size obtained dynamically for objects with
1026 incomplete type will be treated as infinite.
1029 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1030 Generate checks for all read accesses to memory.
1033 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1034 Generate checks for all write accesses to memory.
1037 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1038 Generate bounds stores for pointer writes.
1040 fchkp-instrument-calls
1041 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1042 Generate bounds passing for calls.
1044 fchkp-instrument-marked-only
1045 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1046 Instrument only functions marked with bnd_instrument attribute.
1049 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1050 Transform instrumented builtin calls into calls to wrappers.
1055 static-libmpxwrappers
1059 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1064 Allow the arguments of the '?' operator to have different types
1067 C++ ObjC++ Var(flag_conserve_space)
1068 Does nothing. Preserved for backward compatibility.
1070 fconstant-string-class=
1071 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1072 -fconst-string-class=<name> Use class <name> for constant strings
1075 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1076 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth
1080 Emit debug annotations during preprocessing
1083 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1084 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1087 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1088 Factor complex constructors and destructors to favor space over speed
1092 Does nothing. Preserved for backward compatibility.
1096 Preprocess directives only.
1098 fdollars-in-identifiers
1100 Permit '$' as an identifier character
1103 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1104 Write all declarations as Ada code transitively
1107 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1108 Write all declarations as Ada code for the given file only
1111 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1114 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1115 Generate code to check exception specifications
1118 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1121 C ObjC C++ ObjC++ Joined RejectNegative
1122 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
1124 fextended-identifiers
1126 Permit universal character names (\\u and \\U) in identifiers
1129 C ObjC C++ ObjC++ Joined RejectNegative
1130 -finput-charset=<cset> Specify the default character set for source files
1133 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1134 Support dynamic initialization of thread-local variables in a different translation unit
1137 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1140 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1141 Scope of for-init-statement variables is local to the loop
1145 Do not assume that standard C libraries and \"main\" exist
1148 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1149 Recognize GNU-defined keywords
1152 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1153 Generate code for GNU runtime environment
1156 C ObjC Var(flag_gnu89_inline) Init(-1)
1157 Use traditional GNU semantics for inline functions
1160 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1163 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1166 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1170 Assume normal C execution environment
1173 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1177 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1178 Export functions even if they can be inlined
1180 fimplicit-inline-templates
1181 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1182 Emit implicit instantiations of inline templates
1185 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1186 Emit implicit instantiations of templates
1189 C++ ObjC++ Var(flag_friend_injection)
1190 Inject friend functions into enclosing namespace
1192 fkeep-inline-dllexport
1193 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1194 Don't emit dllexported inline functions unless needed
1197 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1199 flax-vector-conversions
1200 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1201 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1204 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1205 Don't warn about uses of Microsoft extensions
1208 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1211 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1214 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1216 fname-mangling-version-
1217 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1220 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1223 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1224 Generate code for NeXT (Apple Mac OS X) runtime environment
1227 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1228 Assume that receivers of Objective-C messages may be nil
1231 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1232 Allow access to instance variables as if they were local declarations within instance method implementations.
1235 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1236 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1239 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1242 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1245 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1248 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1251 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1254 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1257 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1260 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1261 Treat a throw() exception specification as noexcept to improve code size
1264 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1265 Specify which ABI to use for Objective-C family code and meta-data generation.
1267 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1268 ; to initialize any non-POD ivars in Objective-C++ classes.
1269 fobjc-call-cxx-cdtors
1270 ObjC++ Var(flag_objc_call_cxx_cdtors)
1271 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1273 fobjc-direct-dispatch
1274 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1275 Allow fast jumps to the message dispatcher
1277 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1278 ; @try, etc.) in source code.
1280 ObjC ObjC++ Var(flag_objc_exceptions)
1281 Enable Objective-C exception and synchronization syntax
1284 ObjC ObjC++ LTO Var(flag_objc_gc)
1285 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1288 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1289 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1291 ; Nonzero means that we generate NeXT setjmp based exceptions.
1292 fobjc-sjlj-exceptions
1293 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1294 Enable Objective-C setjmp exception handling runtime
1297 ObjC ObjC++ Var(flag_objc1_only)
1298 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1301 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1305 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1306 Enable OpenMP (implies -frecursive in Fortran)
1309 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1310 Enable OpenMP's SIMD directives
1314 Recognize C++ keywords like \"compl\" and \"xor\"
1318 Does nothing. Preserved for backward compatibility.
1325 Look for and use PCH files even when preprocessing
1328 C++ ObjC++ Var(flag_permissive)
1329 Downgrade conformance errors to warnings
1332 C ObjC Var(flag_plan9_extensions)
1333 Enable Plan 9 language extensions
1337 Treat the input file as already preprocessed
1339 ftrack-macro-expansion
1340 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1341 ; converted into ftrack-macro-expansion=
1343 ftrack-macro-expansion=
1344 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1345 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages
1348 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1349 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1351 freplace-objc-classes
1352 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1353 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1357 Enable automatic template instantiation
1360 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1361 Generate run time type descriptor information
1364 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1365 Use the same size for double as for float
1368 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1369 Use the narrowest integer type possible for enumeration types
1372 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1373 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1376 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1377 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1380 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1381 Make \"char\" signed by default
1384 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1385 Enable C++14 sized deallocation support
1388 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1391 C++ ObjC++ Var(flag_detailed_statistics)
1392 Display statistics accumulated during compilation
1395 C++ ObjC++ Optimization Var(flag_strict_enums)
1396 Assume that values of enumeration type are always within the minimum range of that type
1399 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1402 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1403 -ftabstop=<number> Distance between tab stops for column reporting
1405 ftemplate-backtrace-limit=
1406 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1407 Set the maximum number of template instantiation notes for a single warning or error
1410 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1413 C++ ObjC++ Joined RejectNegative UInteger
1414 -ftemplate-depth=<number> Specify maximum template instantiation depth
1417 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1420 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1421 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1424 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1425 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1428 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1429 Make \"char\" unsigned by default
1432 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1433 Use __cxa_atexit to register destructors
1435 fuse-cxa-get-exception-ptr
1436 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1437 Use __cxa_get_exception_ptr in exception handling
1439 fvisibility-inlines-hidden
1441 Marks all inlined functions and methods as having hidden visibility
1443 fvisibility-ms-compat
1444 C++ ObjC++ Var(flag_visibility_ms_compat)
1445 Changes visibility to match Microsoft Visual Studio by default
1448 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1452 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1456 C++ ObjC++ Var(flag_weak) Init(1)
1457 Emit common-like symbols as weak symbols
1460 C ObjC C++ ObjC++ Joined RejectNegative
1461 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
1464 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1465 Generate a #line directive pointing at the current working directory
1468 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1472 ObjC ObjC++ Var(flag_zero_link)
1473 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1476 ObjC ObjC++ Var(flag_gen_declaration)
1477 Dump declarations to a .decl file
1479 femit-struct-debug-baseonly
1481 -femit-struct-debug-baseonly Aggressive reduced debug info for structs
1483 femit-struct-debug-reduced
1485 -femit-struct-debug-reduced Conservative reduced debug info for structs
1487 femit-struct-debug-detailed=
1488 C ObjC C++ ObjC++ Joined
1489 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1491 fext-numeric-literals
1493 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1494 number literal rather than a user-defined number literal.
1497 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1498 -idirafter <dir> Add <dir> to the end of the system include path
1501 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1502 -imacros <file> Accept definition of macros in <file>
1505 C ObjC C++ ObjC++ Joined Separate
1506 -imultilib <dir> Set <dir> to be the multilib include subdirectory
1509 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1510 -include <file> Include the contents of <file> before other files
1513 C ObjC C++ ObjC++ Joined Separate
1514 -iprefix <path> Specify <path> as a prefix for next two options
1517 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1518 -isysroot <dir> Set <dir> to be the system root directory
1521 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1522 -isystem <dir> Add <dir> to the start of the system include path
1525 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1526 -iquote <dir> Add <dir> to the end of the quote include path
1529 C ObjC C++ ObjC++ Joined Separate
1530 -iwithprefix <dir> Add <dir> to the end of the system include path
1533 C ObjC C++ ObjC++ Joined Separate
1534 -iwithprefixbefore <dir> Add <dir> to the end of the main include path
1537 C Undocumented RejectDriver
1544 Do not search standard system include directories (those specified with -isystem will still be used)
1548 Do not search standard system include directories for C++
1551 C ObjC C++ ObjC++ Joined Separate
1552 ; Documented in common.opt
1555 C ObjC C++ ObjC++ Alias(Wpedantic)
1556 ; Documented in common.opt
1558 print-objc-runtime-info
1560 Generate C header of platform-specific features
1564 Remap file names when including files
1568 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1571 C++ ObjC++ Alias(std=c++98)
1572 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1576 Conform to the ISO 2011 C++ standard
1579 C++ ObjC++ Alias(std=c++11) Undocumented
1580 Deprecated in favor of -std=c++11
1583 C++ ObjC++ Alias(std=c++14) Undocumented
1584 Deprecated in favor of -std=c++14
1587 C++ ObjC++ Undocumented
1588 Conform to the ISO 2014 C++ standard (experimental and incomplete support)
1592 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1595 C++ ObjC++ Alias(std=c++1z) Undocumented
1599 Conform to the ISO 2011 C standard (experimental and incomplete support)
1602 C ObjC Alias(std=c11)
1603 Deprecated in favor of -std=c11
1606 C ObjC Alias(std=c90)
1607 Conform to the ISO 1990 C standard
1611 Conform to the ISO 1990 C standard
1615 Conform to the ISO 1999 C standard
1618 C ObjC Alias(std=c99)
1619 Deprecated in favor of -std=c99
1623 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1624 corrigendum with GNU extensions
1627 C++ ObjC++ Alias(std=gnu++98)
1628 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1629 corrigendum with GNU extensions
1633 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1636 C++ ObjC++ Alias(std=gnu++11)
1637 Deprecated in favor of -std=gnu++11
1640 C++ ObjC++ Alias(std=gnu++14) Undocumented
1644 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1648 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1651 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1655 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1658 C ObjC Alias(std=gnu11)
1659 Deprecated in favor of -std=gnu11
1662 C ObjC Alias(std=gnu90)
1663 Conform to the ISO 1990 C standard with GNU extensions
1667 Conform to the ISO 1990 C standard with GNU extensions
1671 Conform to the ISO 1999 C standard with GNU extensions
1674 C ObjC Alias(std=gnu99)
1675 Deprecated in favor of -std=gnu99
1678 C ObjC Alias(std=c90)
1679 Conform to the ISO 1990 C standard
1683 Conform to the ISO 1990 C standard as amended in 1994
1686 C ObjC Alias(std=c99)
1687 Conform to the ISO 1999 C standard
1690 C ObjC Alias(std=c99)
1691 Deprecated in favor of -std=iso9899:1999
1694 C ObjC Alias(std=c11)
1695 Conform to the ISO 2011 C standard (experimental and incomplete support)
1702 Enable traditional preprocessing
1706 -trigraphs Support ISO C trigraphs
1709 C ObjC C++ ObjC++ Var(flag_undef)
1710 Do not predefine system-specific and GCC-specific macros
1714 ; Documented in common.opt
1718 ; Documented in common.opt
1720 ; This comment is to ensure we retain the blank line above.