1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2014 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 ObjC ObjC++ Var(warn_assign_intercept) Warning
284 Warn whenever an Objective-C assignment is being intercepted by the garbage collector
287 C ObjC Var(warn_bad_function_cast) Warning
288 Warn about casting functions to incompatible types
291 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
292 Warn about boolean expression compared with an integer value different from true/false
294 Wbuiltin-macro-redefined
295 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
296 Warn when a built-in preprocessor macro is undefined or redefined
299 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
300 Warn about features not present in ISO C90, but present in ISO C99
303 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
304 Warn about features not present in ISO C99, but present in ISO C11
307 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
308 Warn about C constructs that are not in the common subset of C and C++
311 C++ ObjC++ Var(warn_cxx0x_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
312 Deprecated in favor of -Wc++11-compat
315 C++ ObjC++ Warning Alias(Wc++0x-compat)
316 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
319 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
320 Warn about casts which discard qualifiers
323 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
324 Warn about subscripts whose type is \"char\"
327 C ObjC C++ ObjC++ Var(warn_chkp) Warning EnabledBy(Wall)
328 Warn about memory access errors found by Pointer Bounds Checker
331 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
332 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
335 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
336 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
339 C ObjC C++ ObjC++ Warning Alias(Wcomment)
340 Synonym for -Wcomment
342 Wconditionally-supported
343 C++ ObjC++ Var(warn_conditionally_supported) Warning
344 Warn for conditionally-supported constructs
347 C ObjC C++ ObjC++ Var(warn_conversion) Warning
348 Warn for implicit type conversions that may change a value
351 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
352 Warn for converting NULL from/to a non-pointer type
355 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
356 ; Documented in common.opt
359 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
360 Warn when all constructors and destructors are private
363 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
364 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
366 Wdeclaration-after-statement
367 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
368 Warn when a declaration is found after a statement
371 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
372 Warn when deleting a pointer to incomplete type
374 Wdelete-non-virtual-dtor
375 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall)
376 Warn about deleting polymorphic objects with non-virtual destructors
378 Wdelete-non-virtual-dtor
379 LangEnabledBy(C++ ObjC++,Weffc++)
383 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
384 Warn if a deprecated compiler feature, class, method, or field is used
387 C ObjC Var(warn_designated_init) Init(1) Warning
388 Warn about positional initialization of structs requiring designated initializers
390 Wdiscarded-qualifiers
391 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
392 Warn if type qualifiers on pointers are discarded
395 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
396 Warn about compile-time integer division by zero
399 C++ ObjC++ Var(warn_ecpp) Warning
400 Warn about violations of Effective C++ style rules
403 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
404 Warn about an empty body in an if or else statement
407 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)
408 Warn about stray tokens after #elif and #endif
411 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall)
412 Warn about comparison of different enum types
415 LangEnabledBy(C ObjC,Wc++-compat)
420 ; Documented in common.opt
422 Werror-implicit-function-declaration
423 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
424 This switch is deprecated; use -Werror=implicit-function-declaration instead
427 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
428 Warn for implicit type conversions that cause loss of floating point precision
431 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
432 Warn if testing floating point numbers for equality
435 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
436 Warn about printf/scanf/strftime/strfmon format string anomalies
439 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
440 Warn about format strings that contain NUL bytes
443 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
444 Warn if passing too many arguments to a function for its format string
447 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
448 Warn about format strings that are not literals
451 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
452 Warn about possible security problems with format functions
455 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
456 Warn about sign differences with format functions
459 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
460 Warn about strftime formats yielding 2-digit years
463 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
464 Warn about zero-length formats
467 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
468 Warn about printf/scanf/strftime/strfmon format string anomalies
471 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
472 Warn whenever type qualifiers are ignored.
474 Wincompatible-pointer-types
475 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
476 Warn when there is a conversion between pointers that have incompatible types
479 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
480 Warn about variables which are initialized to themselves
483 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
484 Warn about implicit declarations
487 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
488 Warn about implicit conversions from \"float\" to \"double\"
490 Wimplicit-function-declaration
491 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
492 Warn about implicit function declarations
495 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
496 Warn when a declaration does not specify a type
499 C ObjC C++ ObjC++ Undocumented Ignore
501 Winherited-variadic-ctor
502 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
503 Warn about C++11 inheriting constructors when the base has a variadic constructor
506 C ObjC Var(warn_int_conversion) Init(1) Warning
507 Warn about incompatible integer to pointer and pointer to integer conversions
510 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
511 Warn when there is a cast to a pointer from an integer of a different size
514 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
515 Warn about invalid uses of the \"offsetof\" macro
518 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
519 Warn about PCH files that are found but not used
522 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
523 Warn when a jump misses a variable initialization
526 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
527 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
530 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
531 Warn when a logical operator is suspiciously always evaluating to true or false
533 Wlogical-not-parentheses
534 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
535 Warn when logical not is used on the left hand side operand of a comparison
538 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)
539 Do not warn about using \"long long\" when -pedantic
542 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
543 Warn about suspicious declarations of \"main\"
546 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
549 Wmemset-transposed-args
550 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
551 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
554 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
555 Warn about possibly missing braces around initializers
557 Wmissing-declarations
558 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
559 Warn about global functions without previous declarations
561 Wmissing-field-initializers
562 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
563 Warn about missing fields in struct initializers
565 Wsizeof-pointer-memaccess
566 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
567 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
569 Wsizeof-array-argument
570 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
571 Warn when sizeof is applied on a parameter declared as an array
573 Wsuggest-attribute=format
574 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
575 Warn about functions which might be candidates for format attributes
578 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
579 Warn about enumerated switches, with no default, missing a case
582 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
583 Warn about enumerated switches missing a \"default:\" statement
586 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
587 Warn about all enumerated switches missing a specific case
590 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
591 Warn about switches with boolean controlling expression
593 Wmissing-format-attribute
594 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
597 Wmissing-include-dirs
598 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
599 Warn about user-specified include directories that do not exist
601 Wmissing-parameter-type
602 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
603 Warn about function parameters declared without a type specifier in K&R-style functions
606 C ObjC Var(warn_missing_prototypes) Warning
607 Warn about global functions without prototypes
610 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
613 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
614 Warn about use of multi-character character constants
617 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall)
618 Warn about narrowing conversions within { } that are ill-formed in C++11
621 C ObjC C++ ObjC++ LangEnabledBy(C++ ObjC++,Wc++0x-compat)
625 C ObjC Var(warn_nested_externs) Warning
626 Warn about \"extern\" declarations not at file scope
629 C++ ObjC++ Var(warn_noexcept) Warning
630 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
633 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
634 Warn when non-templatized friend functions are declared within a template
637 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
638 Warn about non-virtual destructors
641 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
642 Warn about NULL being passed to argument slots marked as requiring non-NULL
645 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
649 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
653 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)
654 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
656 ; Required for these enum values.
661 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
664 Enum(cpp_normalize_level) String(none) Value(normalized_none)
667 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
670 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
673 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
676 C++ ObjC++ Var(warn_old_style_cast) Warning
677 Warn if a C-style cast is used in a program
679 Wold-style-declaration
680 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
681 Warn for obsolescent usage in a declaration
683 Wold-style-definition
684 C ObjC Var(warn_old_style_definition) Warning
685 Warn if an old-style parameter definition is used
688 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
689 Warn if a simd directive is overridden by the vectorizer cost model
692 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
693 Warn if a string is longer than the maximum portable length specified by the standard
696 C++ ObjC++ Var(warn_overloaded_virtual) Warning
697 Warn about overloaded virtual function names
700 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
701 Warn about overriding initializers without side effects
703 Wpacked-bitfield-compat
704 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
705 Warn about packed bit-fields whose offset changed in GCC 4.4
708 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
709 Warn about possibly missing parentheses
712 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
713 ; Documented in common.opt
716 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
717 Warn when converting the type of pointers to member functions
720 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
721 Warn about function pointer arithmetic
724 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall)
725 Warn when a pointer differs in signedness in an assignment
728 C ObjC LangEnabledBy(C ObjC,Wpedantic)
732 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
733 Warn when a pointer is cast to an integer of a different size
736 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
737 Warn about misuses of pragmas
739 Wproperty-assign-default
740 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
741 Warn if a property for an Objective-C object has no assign semantics specified
744 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
745 Warn if inherited methods are unimplemented
748 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
749 Warn about multiple declarations of the same object
752 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
753 Warn when the compiler reorders code
756 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
757 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
759 Wscalar-storage-order
760 C ObjC C++ ObjC++ Init(1) Warning
761 Warn on suspicious constructs involving reverse scalar storage order
764 ObjC ObjC++ Var(warn_selector) Warning
765 Warn if a selector has multiple methods
768 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
769 Warn if a local declaration hides an instance variable
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 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
777 Warn about signed-unsigned comparisons
780 C ObjC C++ ObjC++ EnabledBy(Wextra)
784 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
785 Warn for implicit type conversions between signed and unsigned integers
788 C++ ObjC++ Var(warn_sign_promo) Warning
789 Warn when overload promotes from unsigned to signed
791 Wstrict-null-sentinel
792 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
793 Warn about uncasted NULL used as sentinel
796 C ObjC Var(warn_strict_prototypes) Warning
797 Warn about unprototyped function declarations
800 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
804 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
807 Wstrict-selector-match
808 ObjC ObjC++ Var(warn_strict_selector_match) Warning
809 Warn if type signatures of candidate methods do not match exactly
812 C C++ Var(warn_sync_nand) Init(1) Warning
813 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
816 C++ ObjC++ Var(warn_synth) Warning
817 Deprecated. This switch has no effect
820 C ObjC C++ ObjC++ Warning
821 ; Documented in common.opt
824 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
825 Warn about features not present in traditional C
827 Wtraditional-conversion
828 C ObjC Var(warn_traditional_conversion) Warning
829 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
832 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
833 Warn if trigraphs are encountered that might affect the meaning of the program
836 ObjC ObjC++ Var(warn_undeclared_selector) Warning
837 Warn about @selector()s without previously declared methods
840 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
841 Warn if an undefined macro is used in an #if directive
844 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
848 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
852 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
853 Warn about unrecognized pragmas
855 Wunsuffixed-float-constants
856 C ObjC Var(warn_unsuffixed_float_constants) Warning
857 Warn about unsuffixed float constants
860 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
861 ; documented in common.opt
863 Wunused-local-typedefs
864 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
865 Warn when typedefs locally defined in a function are not used
868 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
869 Warn about macros defined in the main file that are not used
872 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
873 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
876 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)
877 Warn about using variadic macros
880 LangEnabledBy(C ObjC C++ ObjC++,Wtraditional)
884 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
885 Warn about questionable usage of the macros used to retrieve variable arguments
888 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
889 Warn if a variable length array is used
891 Wvolatile-register-var
892 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
893 Warn when a register variable is declared volatile
896 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
897 Warn if a virtual base has a non-trivial move assignment operator
900 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
901 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.
903 Wzero-as-null-pointer-constant
904 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
905 Warn when a literal '0' is used as null pointer
908 C++ ObjC++ Var(warn_useless_cast) Warning
909 Warn about useless casts
913 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
916 C ObjC C++ ObjC++ Joined
917 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
920 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
921 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
924 C++ ObjC++ Var(flag_access_control) Init(1)
925 Enforce class member access control semantics
928 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
929 -fada-spec-parent=unit Dump Ada specs as child units of given parent
932 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
934 fallow-parameterless-variadic-functions
935 C ObjC Var(flag_allow_parameterless_variadic_functions)
936 Allow variadic functions without named parameter
938 falt-external-templates
939 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
943 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
944 Recognize the \"asm\" keyword
946 ; Define extra predefined macros for use in libgcc.
948 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
951 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
952 Recognize built-in functions
955 C ObjC C++ ObjC++ Joined
957 fcanonical-system-headers
959 Where shorter, use canonicalized paths to systems headers.
961 fcheck-pointer-bounds
962 Common Report Var(flag_check_pointer_bounds)
963 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
964 control instrumentation. Currently available for C, C++ and ObjC.
966 fchkp-check-incomplete-type
967 C ObjC C++ ObjC++ Report Var(flag_chkp_incomplete_type) Init(1)
968 Generate pointer bounds checks for variables with incomplete type
970 fchkp-zero-input-bounds-for-main
971 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
972 Use zero bounds for all incoming arguments in 'main' function. It helps when
973 instrumented binaries are used with legacy libs.
975 fchkp-first-field-has-own-bounds
976 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
977 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
978 field in the structure. By default pointer to the first field has the same
979 bounds as pointer to the whole structure.
982 C ObjC C++ ObjC++ Report Var(flag_chkp_narrow_bounds) Init(1)
983 Control how Pointer Bounds Checker handle pointers to object fields. When
984 narrowing is on, field bounds are used. Otherwise full object bounds are used.
986 fchkp-narrow-to-innermost-array
987 C ObjC C++ ObjC++ RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
988 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
989 nested static arryas access. By default outermost array is used.
992 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
993 Allow Pointer Bounds Checker optimizations. By default allowed
994 on optimization levels >0.
996 fchkp-use-fast-string-functions
997 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
998 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1000 fchkp-use-nochk-string-functions
1001 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1002 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1004 fchkp-use-static-bounds
1005 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_bounds) Init(1)
1006 Use statically initialized variable for vars bounds instead of
1007 generating them each time it is required.
1009 fchkp-use-static-const-bounds
1010 C ObjC C++ ObjC++ Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1011 Use statically initialized variable for constant bounds instead of
1012 generating them each time it is required.
1014 fchkp-treat-zero-dynamic-size-as-infinite
1015 C ObjC C++ ObjC++ Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1016 With this option zero size obtained dynamically for objects with
1017 incomplete type will be treated as infinite.
1020 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1021 Generate checks for all read accesses to memory.
1024 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1025 Generate checks for all write accesses to memory.
1028 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1029 Generate bounds stores for pointer writes.
1031 fchkp-instrument-calls
1032 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1033 Generate bounds passing for calls.
1035 fchkp-instrument-marked-only
1036 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1037 Instrument only functions marked with bnd_instrument attribute.
1040 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1045 Allow the arguments of the '?' operator to have different types
1048 C++ ObjC++ Var(flag_conserve_space)
1049 Does nothing. Preserved for backward compatibility.
1051 fconstant-string-class=
1052 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1053 -fconst-string-class=<name> Use class <name> for constant strings
1056 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1057 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth
1061 Emit debug annotations during preprocessing
1064 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1065 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1068 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1069 Factor complex constructors and destructors to favor space over speed
1073 Does nothing. Preserved for backward compatibility.
1077 Preprocess directives only.
1079 fdollars-in-identifiers
1081 Permit '$' as an identifier character
1084 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1085 Write all declarations as Ada code transitively
1088 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1089 Write all declarations as Ada code for the given file only
1092 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1095 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1096 Generate code to check exception specifications
1099 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1102 C ObjC C++ ObjC++ Joined RejectNegative
1103 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
1105 fextended-identifiers
1107 Permit universal character names (\\u and \\U) in identifiers
1110 C ObjC C++ ObjC++ Joined RejectNegative
1111 -finput-charset=<cset> Specify the default character set for source files
1114 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1115 Support dynamic initialization of thread-local variables in a different translation unit
1118 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1121 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1122 Scope of for-init-statement variables is local to the loop
1126 Do not assume that standard C libraries and \"main\" exist
1129 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1130 Recognize GNU-defined keywords
1133 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1134 Generate code for GNU runtime environment
1137 C ObjC Var(flag_gnu89_inline) Init(-1)
1138 Use traditional GNU semantics for inline functions
1141 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1144 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1147 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1151 Assume normal C execution environment
1154 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1158 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1159 Export functions even if they can be inlined
1161 fimplicit-inline-templates
1162 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1163 Emit implicit instantiations of inline templates
1166 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1167 Emit implicit instantiations of templates
1170 C++ ObjC++ Var(flag_friend_injection)
1171 Inject friend functions into enclosing namespace
1173 fkeep-inline-dllexport
1174 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1175 Don't emit dllexported inline functions unless needed
1178 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1180 flax-vector-conversions
1181 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1182 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1185 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1186 Don't warn about uses of Microsoft extensions
1189 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1192 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1195 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1197 fname-mangling-version-
1198 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1201 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1204 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1205 Generate code for NeXT (Apple Mac OS X) runtime environment
1208 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1209 Assume that receivers of Objective-C messages may be nil
1212 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1213 Allow access to instance variables as if they were local declarations within instance method implementations.
1216 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1217 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1220 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1223 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1226 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1229 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1232 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1235 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1238 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1241 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1242 Treat a throw() exception specification as noexcept to improve code size
1245 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1246 Specify which ABI to use for Objective-C family code and meta-data generation.
1248 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1249 ; to initialize any non-POD ivars in Objective-C++ classes.
1250 fobjc-call-cxx-cdtors
1251 ObjC++ Var(flag_objc_call_cxx_cdtors)
1252 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1254 fobjc-direct-dispatch
1255 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1256 Allow fast jumps to the message dispatcher
1258 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1259 ; @try, etc.) in source code.
1261 ObjC ObjC++ Var(flag_objc_exceptions)
1262 Enable Objective-C exception and synchronization syntax
1265 ObjC ObjC++ LTO Var(flag_objc_gc)
1266 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1269 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1270 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1272 ; Nonzero means that we generate NeXT setjmp based exceptions.
1273 fobjc-sjlj-exceptions
1274 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1275 Enable Objective-C setjmp exception handling runtime
1278 ObjC ObjC++ Var(flag_objc1_only)
1279 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1282 C ObjC C++ ObjC++ Var(flag_openmp)
1283 Enable OpenMP (implies -frecursive in Fortran)
1286 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1287 Enable OpenMP's SIMD directives
1291 Recognize C++ keywords like \"compl\" and \"xor\"
1295 Does nothing. Preserved for backward compatibility.
1302 Look for and use PCH files even when preprocessing
1305 C++ ObjC++ Var(flag_permissive)
1306 Downgrade conformance errors to warnings
1309 C ObjC Var(flag_plan9_extensions)
1310 Enable Plan 9 language extensions
1314 Treat the input file as already preprocessed
1316 ftrack-macro-expansion
1317 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1318 ; converted into ftrack-macro-expansion=
1320 ftrack-macro-expansion=
1321 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1322 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages
1325 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1326 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1328 freplace-objc-classes
1329 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1330 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1334 Enable automatic template instantiation
1337 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1338 Generate run time type descriptor information
1341 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1342 Use the same size for double as for float
1345 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1346 Use the narrowest integer type possible for enumeration types
1349 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1350 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1353 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1354 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1357 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1358 Make \"char\" signed by default
1361 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1364 C++ ObjC++ Var(flag_detailed_statistics)
1365 Display statistics accumulated during compilation
1368 C++ ObjC++ Optimization Var(flag_strict_enums)
1369 Assume that values of enumeration type are always within the minimum range of that type
1372 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1375 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1376 -ftabstop=<number> Distance between tab stops for column reporting
1378 ftemplate-backtrace-limit=
1379 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1380 Set the maximum number of template instantiation notes for a single warning or error
1383 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1386 C++ ObjC++ Joined RejectNegative UInteger
1387 -ftemplate-depth=<number> Specify maximum template instantiation depth
1390 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1393 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1394 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1397 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1398 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1401 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1402 Make \"char\" unsigned by default
1405 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1406 Use __cxa_atexit to register destructors
1408 fuse-cxa-get-exception-ptr
1409 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1410 Use __cxa_get_exception_ptr in exception handling
1412 fvisibility-inlines-hidden
1414 Marks all inlined functions and methods as having hidden visibility
1416 fvisibility-ms-compat
1417 C++ ObjC++ Var(flag_visibility_ms_compat)
1418 Changes visibility to match Microsoft Visual Studio by default
1421 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1425 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1429 C++ ObjC++ Var(flag_weak) Init(1)
1430 Emit common-like symbols as weak symbols
1433 C ObjC C++ ObjC++ Joined RejectNegative
1434 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
1437 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1438 Generate a #line directive pointing at the current working directory
1441 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1445 ObjC ObjC++ Var(flag_zero_link)
1446 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1449 ObjC ObjC++ Var(flag_gen_declaration)
1450 Dump declarations to a .decl file
1452 femit-struct-debug-baseonly
1454 -femit-struct-debug-baseonly Aggressive reduced debug info for structs
1456 femit-struct-debug-reduced
1458 -femit-struct-debug-reduced Conservative reduced debug info for structs
1460 femit-struct-debug-detailed=
1461 C ObjC C++ ObjC++ Joined
1462 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1464 fext-numeric-literals
1466 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1467 number literal rather than a user-defined number literal.
1470 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1471 -idirafter <dir> Add <dir> to the end of the system include path
1474 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1475 -imacros <file> Accept definition of macros in <file>
1478 C ObjC C++ ObjC++ Joined Separate
1479 -imultilib <dir> Set <dir> to be the multilib include subdirectory
1482 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1483 -include <file> Include the contents of <file> before other files
1486 C ObjC C++ ObjC++ Joined Separate
1487 -iprefix <path> Specify <path> as a prefix for next two options
1490 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1491 -isysroot <dir> Set <dir> to be the system root directory
1494 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1495 -isystem <dir> Add <dir> to the start of the system include path
1498 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1499 -iquote <dir> Add <dir> to the end of the quote include path
1502 C ObjC C++ ObjC++ Joined Separate
1503 -iwithprefix <dir> Add <dir> to the end of the system include path
1506 C ObjC C++ ObjC++ Joined Separate
1507 -iwithprefixbefore <dir> Add <dir> to the end of the main include path
1510 C Undocumented RejectDriver
1517 Do not search standard system include directories (those specified with -isystem will still be used)
1521 Do not search standard system include directories for C++
1524 C ObjC C++ ObjC++ Joined Separate
1525 ; Documented in common.opt
1528 C ObjC C++ ObjC++ Alias(Wpedantic)
1529 ; Documented in common.opt
1531 print-objc-runtime-info
1533 Generate C header of platform-specific features
1537 Remap file names when including files
1541 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1544 C++ ObjC++ Alias(std=c++98)
1545 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1549 Conform to the ISO 2011 C++ standard
1552 C++ ObjC++ Alias(std=c++11) Undocumented
1553 Deprecated in favor of -std=c++11
1556 C++ ObjC++ Alias(std=c++14) Undocumented
1557 Deprecated in favor of -std=c++14
1560 C++ ObjC++ Undocumented
1561 Conform to the ISO 2014 C++ standard (experimental and incomplete support)
1565 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1568 C++ ObjC++ Alias(std=c++1z) Undocumented
1572 Conform to the ISO 2011 C standard (experimental and incomplete support)
1575 C ObjC Alias(std=c11)
1576 Deprecated in favor of -std=c11
1579 C ObjC Alias(std=c90)
1580 Conform to the ISO 1990 C standard
1584 Conform to the ISO 1990 C standard
1588 Conform to the ISO 1999 C standard
1591 C ObjC Alias(std=c99)
1592 Deprecated in favor of -std=c99
1596 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1597 corrigendum with GNU extensions
1600 C++ ObjC++ Alias(std=gnu++98)
1601 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1602 corrigendum with GNU extensions
1606 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1609 C++ ObjC++ Alias(std=gnu++11)
1610 Deprecated in favor of -std=gnu++11
1613 C++ ObjC++ Alias(std=gnu++14) Undocumented
1617 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1621 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1624 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1628 Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1631 C ObjC Alias(std=gnu11)
1632 Deprecated in favor of -std=gnu11
1635 C ObjC Alias(std=gnu90)
1636 Conform to the ISO 1990 C standard with GNU extensions
1640 Conform to the ISO 1990 C standard with GNU extensions
1644 Conform to the ISO 1999 C standard with GNU extensions
1647 C ObjC Alias(std=gnu99)
1648 Deprecated in favor of -std=gnu99
1651 C ObjC Alias(std=c90)
1652 Conform to the ISO 1990 C standard
1656 Conform to the ISO 1990 C standard as amended in 1994
1659 C ObjC Alias(std=c99)
1660 Conform to the ISO 1999 C standard
1663 C ObjC Alias(std=c99)
1664 Deprecated in favor of -std=iso9899:1999
1667 C ObjC Alias(std=c11)
1668 Conform to the ISO 2011 C standard (experimental and incomplete support)
1675 Enable traditional preprocessing
1679 -trigraphs Support ISO C trigraphs
1682 C ObjC C++ ObjC++ Var(flag_undef)
1683 Do not predefine system-specific and GCC-specific macros
1687 ; Documented in common.opt
1691 ; Documented in common.opt
1693 ; This comment is to ensure we retain the blank line above.