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