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
299 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
300 Warn when __builtin_frame_address or __builtin_return_address is used unsafely
302 Wbuiltin-macro-redefined
303 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
304 Warn when a built-in preprocessor macro is undefined or redefined
307 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
308 Warn about features not present in ISO C90, but present in ISO C99
311 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
312 Warn about features not present in ISO C99, but present in ISO C11
315 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
316 Warn about C constructs that are not in the common subset of C and C++
319 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
322 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
323 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011
326 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
327 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014
330 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
331 Warn about casts which discard qualifiers
334 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
335 Warn about subscripts whose type is \"char\"
338 C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
339 Warn about memory access errors found by Pointer Bounds Checker
342 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
343 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
346 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
347 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
350 C ObjC C++ ObjC++ Warning Alias(Wcomment)
351 Synonym for -Wcomment
353 Wconditionally-supported
354 C++ ObjC++ Var(warn_conditionally_supported) Warning
355 Warn for conditionally-supported constructs
358 C ObjC C++ ObjC++ Var(warn_conversion) Warning
359 Warn for implicit type conversions that may change a value
362 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
363 Warn for converting NULL from/to a non-pointer type
366 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
367 ; Documented in common.opt
370 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
371 Warn when all constructors and destructors are private
374 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
375 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage
377 Wdeclaration-after-statement
378 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
379 Warn when a declaration is found after a statement
382 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
383 Warn when deleting a pointer to incomplete type
385 Wdelete-non-virtual-dtor
386 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
387 Warn about deleting polymorphic objects with non-virtual destructors
390 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
391 Warn if a deprecated compiler feature, class, method, or field is used
394 C ObjC Var(warn_designated_init) Init(1) Warning
395 Warn about positional initialization of structs requiring designated initializers
397 Wdiscarded-array-qualifiers
398 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
399 Warn if qualifiers on arrays which are pointer targets are discarded
401 Wdiscarded-qualifiers
402 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
403 Warn if type qualifiers on pointers are discarded
406 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
407 Warn about compile-time integer division by zero
410 C++ ObjC++ Var(warn_ecpp) Warning
411 Warn about violations of Effective C++ style rules
414 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
415 Warn about an empty body in an if or else statement
418 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)
419 Warn about stray tokens after #elif and #endif
422 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
423 Warn about comparison of different enum types
427 ; Documented in common.opt
429 Werror-implicit-function-declaration
430 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
431 This switch is deprecated; use -Werror=implicit-function-declaration instead
434 C ObjC C++ ObjC++ Var(warn_float_conversion) LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
435 Warn for implicit type conversions that cause loss of floating point precision
438 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
439 Warn if testing floating point numbers for equality
442 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
443 Warn about printf/scanf/strftime/strfmon format string anomalies
446 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
447 Warn about format strings that contain NUL bytes
450 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
451 Warn if passing too many arguments to a function for its format string
454 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
455 Warn about format strings that are not literals
458 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
459 Warn about possible security problems with format functions
462 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
463 Warn about sign differences with format functions
466 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
467 Warn about strftime formats yielding 2-digit years
470 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
471 Warn about zero-length formats
474 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
475 Warn about printf/scanf/strftime/strfmon format string anomalies
478 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
479 Warn whenever type qualifiers are ignored.
481 Wincompatible-pointer-types
482 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
483 Warn when there is a conversion between pointers that have incompatible types
486 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
487 Warn about variables which are initialized to themselves
490 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
491 Warn about implicit declarations
494 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
495 Warn about implicit conversions from \"float\" to \"double\"
497 Wimplicit-function-declaration
498 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
499 Warn about implicit function declarations
502 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
503 Warn when a declaration does not specify a type
506 C ObjC C++ ObjC++ Undocumented Ignore
508 Winherited-variadic-ctor
509 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
510 Warn about C++11 inheriting constructors when the base has a variadic constructor
513 C ObjC Var(warn_int_conversion) Init(1) Warning
514 Warn about incompatible integer to pointer and pointer to integer conversions
517 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
518 Warn when there is a cast to a pointer from an integer of a different size
521 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
522 Warn about invalid uses of the \"offsetof\" macro
525 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
526 Warn about PCH files that are found but not used
529 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
530 Warn when a jump misses a variable initialization
533 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
534 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
537 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
538 Warn when a logical operator is suspiciously always evaluating to true or false
540 Wlogical-not-parentheses
541 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
542 Warn when logical not is used on the left hand side operand of a comparison
545 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)
546 Do not warn about using \"long long\" when -pedantic
549 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
550 Warn about suspicious declarations of \"main\"
553 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
556 Wmemset-transposed-args
557 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
558 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not
560 Wmisleading-indentation
561 C C++ Common Var(warn_misleading_indentation) Warning
562 Warn when the indentation of the code does not reflect the block structure
565 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
566 Warn about possibly missing braces around initializers
568 Wmissing-declarations
569 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
570 Warn about global functions without previous declarations
572 Wmissing-field-initializers
573 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
574 Warn about missing fields in struct initializers
576 Wmultiple-inheritance
577 C++ ObjC++ Var(warn_multiple_inheritance) Warning
578 Warn on direct multiple inheritance
581 C++ ObjC++ Var(warn_namespaces) Warning
582 Warn on namespace definition
585 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
586 Warn about missing sized deallocation functions
588 Wsizeof-pointer-memaccess
589 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
590 Warn about suspicious length parameters to certain string functions if the argument uses sizeof
592 Wsizeof-array-argument
593 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
594 Warn when sizeof is applied on a parameter declared as an array
596 Wsuggest-attribute=format
597 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
598 Warn about functions which might be candidates for format attributes
601 C++ ObjC++ Var(warn_override) Warning
602 Suggest that the override keyword be used when the declaration of a virtual
603 function overrides another.
606 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
607 Warn about enumerated switches, with no default, missing a case
610 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
611 Warn about enumerated switches missing a \"default:\" statement
614 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
615 Warn about all enumerated switches missing a specific case
618 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
619 Warn about switches with boolean controlling expression
622 C++ ObjC++ Var(warn_templates) Warning
623 Warn on primary template declaration
625 Wmissing-format-attribute
626 C ObjC C++ ObjC++ Alias(Wsuggest-attribute=format)
629 Wmissing-include-dirs
630 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
631 Warn about user-specified include directories that do not exist
633 Wmissing-parameter-type
634 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
635 Warn about function parameters declared without a type specifier in K&R-style functions
638 C ObjC Var(warn_missing_prototypes) Warning
639 Warn about global functions without prototypes
642 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
645 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
646 Warn about use of multi-character character constants
649 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
650 Warn about narrowing conversions within { } that are ill-formed in C++11
653 C ObjC Var(warn_nested_externs) Warning
654 Warn about \"extern\" declarations not at file scope
657 C++ ObjC++ Var(warn_noexcept) Warning
658 Warn when a noexcept expression evaluates to false even though the expression can't actually throw
661 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
662 Warn when non-templatized friend functions are declared within a template
665 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
666 Warn about non-virtual destructors
669 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
670 Warn about NULL being passed to argument slots marked as requiring non-NULL
673 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
677 C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
681 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)
682 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings
684 ; Required for these enum values.
689 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
692 Enum(cpp_normalize_level) String(none) Value(normalized_none)
695 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
698 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
701 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
704 C++ ObjC++ Var(warn_old_style_cast) Warning
705 Warn if a C-style cast is used in a program
707 Wold-style-declaration
708 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
709 Warn for obsolescent usage in a declaration
711 Wold-style-definition
712 C ObjC Var(warn_old_style_definition) Warning
713 Warn if an old-style parameter definition is used
716 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
717 Warn if a simd directive is overridden by the vectorizer cost model
720 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
721 Warn if a string is longer than the maximum portable length specified by the standard
724 C++ ObjC++ Var(warn_overloaded_virtual) Warning
725 Warn about overloaded virtual function names
728 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
729 Warn about overriding initializers without side effects
731 Woverride-init-side-effects
732 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
733 Warn about overriding initializers with side effects
735 Wpacked-bitfield-compat
736 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
737 Warn about packed bit-fields whose offset changed in GCC 4.4
740 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
741 Warn about possibly missing parentheses
744 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
745 ; Documented in common.opt
748 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
749 Warn when converting the type of pointers to member functions
752 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
753 Warn about function pointer arithmetic
756 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
757 Warn when a pointer differs in signedness in an assignment
760 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
761 Warn when a pointer is cast to an integer of a different size
764 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
765 Warn about misuses of pragmas
767 Wproperty-assign-default
768 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
769 Warn if a property for an Objective-C object has no assign semantics specified
772 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
773 Warn if inherited methods are unimplemented
776 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
777 Warn about multiple declarations of the same object
780 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
781 Warn when the compiler reorders code
784 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
785 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
788 ObjC ObjC++ Var(warn_selector) Warning
789 Warn if a selector has multiple methods
792 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
793 Warn about possible violations of sequence point rules
796 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
797 Warn if a local declaration hides an instance variable
800 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
801 Warn if left shift of a signed value overflows
804 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
805 Warn if left shift of a signed value overflows
807 Wshift-count-negative
808 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
809 Warn if shift count is negative
811 Wshift-count-overflow
812 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
813 Warn if shift count >= width of type
815 Wshift-negative-value
816 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
817 Warn if left shifting a negative value
820 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
821 Warn about signed-unsigned comparisons
824 C ObjC C++ ObjC++ EnabledBy(Wextra)
828 C ObjC C++ ObjC++ Var(warn_sign_conversion) LangEnabledBy(C ObjC,Wconversion)
829 Warn for implicit type conversions between signed and unsigned integers
832 C++ ObjC++ Var(warn_sign_promo) Warning
833 Warn when overload promotes from unsigned to signed
835 Wstrict-null-sentinel
836 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
837 Warn about uncasted NULL used as sentinel
840 C ObjC Var(warn_strict_prototypes) Warning
841 Warn about unprototyped function declarations
844 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
848 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
851 Wstrict-selector-match
852 ObjC ObjC++ Var(warn_strict_selector_match) Warning
853 Warn if type signatures of candidate methods do not match exactly
856 C C++ Var(warn_sync_nand) Init(1) Warning
857 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
860 C++ ObjC++ Var(warn_synth) Warning
861 Deprecated. This switch has no effect
864 C ObjC C++ ObjC++ Warning
865 ; Documented in common.opt
867 Wtautological-compare
868 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
869 Warn if a comparison always evaluates to true or false
872 C++ ObjC++ Warning Var(warn_terminate) Init(1)
873 Warn if a throw expression will always result in a call to terminate()
876 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
877 Warn about features not present in traditional C
879 Wtraditional-conversion
880 C ObjC Var(warn_traditional_conversion) Warning
881 Warn of prototypes causing type conversions different from what would happen in the absence of prototype
884 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
885 Warn if trigraphs are encountered that might affect the meaning of the program
888 ObjC ObjC++ Var(warn_undeclared_selector) Warning
889 Warn about @selector()s without previously declared methods
892 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
893 Warn if an undefined macro is used in an #if directive
896 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
900 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
904 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
905 Warn about unrecognized pragmas
907 Wunsuffixed-float-constants
908 C ObjC Var(warn_unsuffixed_float_constants) Warning
909 Warn about unsuffixed float constants
912 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
913 ; documented in common.opt
915 Wunused-local-typedefs
916 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
917 Warn when typedefs locally defined in a function are not used
920 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
921 Warn about macros defined in the main file that are not used
924 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
925 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
928 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
929 ; documented in common.opt
931 Wunused-const-variable
932 C ObjC C++ ObjC++ Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable)
933 Warn when a const variable is unused
936 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)
937 Warn about using variadic macros
940 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
941 Warn about questionable usage of the macros used to retrieve variable arguments
944 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
945 Warn if a variable length array is used
947 Wvolatile-register-var
948 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
949 Warn when a register variable is declared volatile
952 C++ ObjC++ Var(warn_virtual_inheritance) Warning
953 Warn on direct virtual inheritance
956 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
957 Warn if a virtual base has a non-trivial move assignment operator
960 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
961 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.
963 Wzero-as-null-pointer-constant
964 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
965 Warn when a literal '0' is used as null pointer
968 C++ ObjC++ Var(warn_useless_cast) Warning
969 Warn about useless casts
972 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
973 Warn if a class type has a base or a field whose type uses the anonymous
974 namespace or depends on a type with no linkage
978 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
981 C ObjC C++ ObjC++ Joined
982 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
985 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
986 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases
989 C++ ObjC++ Var(flag_access_control) Init(1)
990 Enforce class member access control semantics
993 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
994 -fada-spec-parent=unit Dump Ada specs as child units of given parent
997 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
999 fallow-parameterless-variadic-functions
1000 C ObjC Var(flag_allow_parameterless_variadic_functions)
1001 Allow variadic functions without named parameter
1003 falt-external-templates
1004 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1008 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1009 Recognize the \"asm\" keyword
1011 ; Define extra predefined macros for use in libgcc.
1013 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1016 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1017 Recognize built-in functions
1020 C ObjC C++ ObjC++ Joined
1022 fcanonical-system-headers
1024 Where shorter, use canonicalized paths to systems headers.
1026 fcheck-pointer-bounds
1027 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1028 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1029 control instrumentation. Currently available for C, C++ and ObjC.
1031 fchkp-check-incomplete-type
1032 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1033 Generate pointer bounds checks for variables with incomplete type
1035 fchkp-zero-input-bounds-for-main
1036 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1037 Use zero bounds for all incoming arguments in 'main' function. It helps when
1038 instrumented binaries are used with legacy libs.
1040 fchkp-first-field-has-own-bounds
1041 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1042 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1043 field in the structure. By default pointer to the first field has the same
1044 bounds as pointer to the whole structure.
1047 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1048 Control how Pointer Bounds Checker handle pointers to object fields. When
1049 narrowing is on, field bounds are used. Otherwise full object bounds are used.
1051 fchkp-narrow-to-innermost-array
1052 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1053 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1054 nested static arryas access. By default outermost array is used.
1057 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1058 Allow Pointer Bounds Checker optimizations. By default allowed
1059 on optimization levels >0.
1061 fchkp-use-fast-string-functions
1062 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1063 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1065 fchkp-use-nochk-string-functions
1066 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1067 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1069 fchkp-use-static-bounds
1070 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1071 Use statically initialized variable for vars bounds instead of
1072 generating them each time it is required.
1074 fchkp-use-static-const-bounds
1075 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1076 Use statically initialized variable for constant bounds instead of
1077 generating them each time it is required.
1079 fchkp-treat-zero-dynamic-size-as-infinite
1080 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1081 With this option zero size obtained dynamically for objects with
1082 incomplete type will be treated as infinite.
1085 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1086 Generate checks for all read accesses to memory.
1089 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1090 Generate checks for all write accesses to memory.
1093 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1094 Generate bounds stores for pointer writes.
1096 fchkp-instrument-calls
1097 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1098 Generate bounds passing for calls.
1100 fchkp-instrument-marked-only
1101 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1102 Instrument only functions marked with bnd_instrument attribute.
1105 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1106 Transform instrumented builtin calls into calls to wrappers.
1111 static-libmpxwrappers
1115 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1119 C++ ObjC++ Var(flag_concepts)
1120 Enable support for C++ concepts
1124 Allow the arguments of the '?' operator to have different types
1127 C++ ObjC++ Var(flag_conserve_space)
1128 Does nothing. Preserved for backward compatibility.
1130 fconstant-string-class=
1131 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1132 -fconst-string-class=<name> Use class <name> for constant strings
1135 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1136 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth
1140 Emit debug annotations during preprocessing
1143 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1144 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
1147 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1148 Factor complex constructors and destructors to favor space over speed
1152 Does nothing. Preserved for backward compatibility.
1156 Preprocess directives only.
1158 fdollars-in-identifiers
1160 Permit '$' as an identifier character
1163 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1164 Write all declarations as Ada code transitively
1167 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1168 Write all declarations as Ada code for the given file only
1171 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1174 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1175 Generate code to check exception specifications
1178 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1181 C ObjC C++ ObjC++ Joined RejectNegative
1182 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
1184 fextended-identifiers
1186 Permit universal character names (\\u and \\U) in identifiers
1189 C ObjC C++ ObjC++ Joined RejectNegative
1190 -finput-charset=<cset> Specify the default character set for source files
1193 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1194 Support dynamic initialization of thread-local variables in a different translation unit
1197 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1200 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1201 Scope of for-init-statement variables is local to the loop
1205 Do not assume that standard C libraries and \"main\" exist
1208 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1209 Recognize GNU-defined keywords
1212 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1213 Generate code for GNU runtime environment
1216 C ObjC Var(flag_gnu89_inline) Init(-1)
1217 Use traditional GNU semantics for inline functions
1220 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1223 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1226 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1230 Assume normal C execution environment
1233 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1237 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1238 Export functions even if they can be inlined
1240 fimplicit-inline-templates
1241 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1242 Emit implicit instantiations of inline templates
1245 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1246 Emit implicit instantiations of templates
1249 C++ ObjC++ Var(flag_friend_injection)
1250 Inject friend functions into enclosing namespace
1252 fkeep-inline-dllexport
1253 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1254 Don't emit dllexported inline functions unless needed
1257 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1259 flax-vector-conversions
1260 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1261 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1264 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1265 Don't warn about uses of Microsoft extensions
1268 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1271 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1274 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1276 fname-mangling-version-
1277 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1280 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1283 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1284 Generate code for NeXT (Apple Mac OS X) runtime environment
1287 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1288 Assume that receivers of Objective-C messages may be nil
1291 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1292 Allow access to instance variables as if they were local declarations within instance method implementations.
1295 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1296 -fvisibility=[private|protected|public|package] Set the default symbol visibility
1299 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1302 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1305 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1308 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1311 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1314 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1317 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1320 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1321 Treat a throw() exception specification as noexcept to improve code size
1324 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1325 Specify which ABI to use for Objective-C family code and meta-data generation.
1327 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1328 ; to initialize any non-POD ivars in Objective-C++ classes.
1329 fobjc-call-cxx-cdtors
1330 ObjC++ Var(flag_objc_call_cxx_cdtors)
1331 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1333 fobjc-direct-dispatch
1334 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1335 Allow fast jumps to the message dispatcher
1337 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1338 ; @try, etc.) in source code.
1340 ObjC ObjC++ Var(flag_objc_exceptions)
1341 Enable Objective-C exception and synchronization syntax
1344 ObjC ObjC++ LTO Var(flag_objc_gc)
1345 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1348 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1349 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1351 ; Nonzero means that we generate NeXT setjmp based exceptions.
1352 fobjc-sjlj-exceptions
1353 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1354 Enable Objective-C setjmp exception handling runtime
1357 ObjC ObjC++ Var(flag_objc1_only)
1358 Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1361 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1365 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1366 Enable OpenMP (implies -frecursive in Fortran)
1369 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1370 Enable OpenMP's SIMD directives
1374 Recognize C++ keywords like \"compl\" and \"xor\"
1378 Does nothing. Preserved for backward compatibility.
1385 Look for and use PCH files even when preprocessing
1388 C++ ObjC++ Var(flag_permissive)
1389 Downgrade conformance errors to warnings
1392 C ObjC Var(flag_plan9_extensions)
1393 Enable Plan 9 language extensions
1397 Treat the input file as already preprocessed
1399 ftrack-macro-expansion
1400 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1401 ; converted into ftrack-macro-expansion=
1403 ftrack-macro-expansion=
1404 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1405 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages
1408 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1409 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1411 freplace-objc-classes
1412 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1413 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1417 Enable automatic template instantiation
1420 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1421 Generate run time type descriptor information
1424 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1425 Use the same size for double as for float
1428 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1429 Use the narrowest integer type possible for enumeration types
1432 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1433 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
1436 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1437 When \"signed\" or \"unsigned\" is not given make the bitfield signed
1440 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1441 Make \"char\" signed by default
1444 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1445 Enable C++14 sized deallocation support
1448 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1451 C++ ObjC++ Var(flag_detailed_statistics)
1452 Display statistics accumulated during compilation
1455 C++ ObjC++ Optimization Var(flag_strict_enums)
1456 Assume that values of enumeration type are always within the minimum range of that type
1459 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1462 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1463 -ftabstop=<number> Distance between tab stops for column reporting
1465 ftemplate-backtrace-limit=
1466 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1467 Set the maximum number of template instantiation notes for a single warning or error
1470 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1473 C++ ObjC++ Joined RejectNegative UInteger
1474 -ftemplate-depth=<number> Specify maximum template instantiation depth
1477 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1480 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1481 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
1484 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1485 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
1488 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1489 Make \"char\" unsigned by default
1492 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1493 Use __cxa_atexit to register destructors
1495 fuse-cxa-get-exception-ptr
1496 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1497 Use __cxa_get_exception_ptr in exception handling
1499 fvisibility-inlines-hidden
1501 Marks all inlined functions and methods as having hidden visibility
1503 fvisibility-ms-compat
1504 C++ ObjC++ Var(flag_visibility_ms_compat)
1505 Changes visibility to match Microsoft Visual Studio by default
1508 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1512 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1516 C++ ObjC++ Var(flag_weak) Init(1)
1517 Emit common-like symbols as weak symbols
1520 C ObjC C++ ObjC++ Joined RejectNegative
1521 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
1524 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1525 Generate a #line directive pointing at the current working directory
1528 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1532 ObjC ObjC++ Var(flag_zero_link)
1533 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1536 ObjC ObjC++ Var(flag_gen_declaration)
1537 Dump declarations to a .decl file
1539 femit-struct-debug-baseonly
1541 -femit-struct-debug-baseonly Aggressive reduced debug info for structs
1543 femit-struct-debug-reduced
1545 -femit-struct-debug-reduced Conservative reduced debug info for structs
1547 femit-struct-debug-detailed=
1548 C ObjC C++ ObjC++ Joined
1549 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1551 fext-numeric-literals
1553 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1554 number literal rather than a user-defined number literal.
1557 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1558 -idirafter <dir> Add <dir> to the end of the system include path
1561 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1562 -imacros <file> Accept definition of macros in <file>
1565 C ObjC C++ ObjC++ Joined Separate
1566 -imultilib <dir> Set <dir> to be the multilib include subdirectory
1569 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1570 -include <file> Include the contents of <file> before other files
1573 C ObjC C++ ObjC++ Joined Separate
1574 -iprefix <path> Specify <path> as a prefix for next two options
1577 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1578 -isysroot <dir> Set <dir> to be the system root directory
1581 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1582 -isystem <dir> Add <dir> to the start of the system include path
1585 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1586 -iquote <dir> Add <dir> to the end of the quote include path
1589 C ObjC C++ ObjC++ Joined Separate
1590 -iwithprefix <dir> Add <dir> to the end of the system include path
1593 C ObjC C++ ObjC++ Joined Separate
1594 -iwithprefixbefore <dir> Add <dir> to the end of the main include path
1597 C Undocumented RejectDriver
1604 Do not search standard system include directories (those specified with -isystem will still be used)
1608 Do not search standard system include directories for C++
1611 C ObjC C++ ObjC++ Joined Separate
1612 ; Documented in common.opt
1615 C ObjC C++ ObjC++ Alias(Wpedantic)
1616 ; Documented in common.opt
1618 print-objc-runtime-info
1620 Generate C header of platform-specific features
1624 Remap file names when including files
1628 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1631 C++ ObjC++ Alias(std=c++98)
1632 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1636 Conform to the ISO 2011 C++ standard
1639 C++ ObjC++ Alias(std=c++11) Undocumented
1640 Deprecated in favor of -std=c++11
1643 C++ ObjC++ Alias(std=c++14) Undocumented
1644 Deprecated in favor of -std=c++14
1648 Conform to the ISO 2014 C++ standard
1652 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1655 C++ ObjC++ Alias(std=c++1z) Undocumented
1659 Conform to the ISO 2011 C standard
1662 C ObjC Alias(std=c11)
1663 Deprecated in favor of -std=c11
1666 C ObjC Alias(std=c90)
1667 Conform to the ISO 1990 C standard
1671 Conform to the ISO 1990 C standard
1675 Conform to the ISO 1999 C standard
1678 C ObjC Alias(std=c99)
1679 Deprecated in favor of -std=c99
1683 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1684 corrigendum with GNU extensions
1687 C++ ObjC++ Alias(std=gnu++98)
1688 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1689 corrigendum with GNU extensions
1693 Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1696 C++ ObjC++ Alias(std=gnu++11) Undocumented
1697 Deprecated in favor of -std=gnu++11
1700 C++ ObjC++ Alias(std=gnu++14) Undocumented
1701 Deprecated in favor of -std=gnu++14
1705 Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
1709 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1712 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1716 Conform to the ISO 2011 C standard with GNU extensions
1719 C ObjC Alias(std=gnu11)
1720 Deprecated in favor of -std=gnu11
1723 C ObjC Alias(std=gnu90)
1724 Conform to the ISO 1990 C standard with GNU extensions
1728 Conform to the ISO 1990 C standard with GNU extensions
1732 Conform to the ISO 1999 C standard with GNU extensions
1735 C ObjC Alias(std=gnu99)
1736 Deprecated in favor of -std=gnu99
1739 C ObjC Alias(std=c90)
1740 Conform to the ISO 1990 C standard
1744 Conform to the ISO 1990 C standard as amended in 1994
1747 C ObjC Alias(std=c99)
1748 Conform to the ISO 1999 C standard
1751 C ObjC Alias(std=c99)
1752 Deprecated in favor of -std=iso9899:1999
1755 C ObjC Alias(std=c11)
1756 Conform to the ISO 2011 C standard
1763 Enable traditional preprocessing
1767 -trigraphs Support ISO C trigraphs
1770 C ObjC C++ ObjC++ Var(flag_undef)
1771 Do not predefine system-specific and GCC-specific macros
1775 ; Documented in common.opt
1779 ; Documented in common.opt
1781 ; This comment is to ensure we retain the blank line above.