1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2016 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 C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
411 Warn about duplicated conditions in an if-else-if chain.
414 C++ ObjC++ Var(warn_ecpp) Warning
415 Warn about violations of Effective C++ style rules.
418 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
419 Warn about an empty body in an if or else statement.
422 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)
423 Warn about stray tokens after #elif and #endif.
426 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
427 Warn about comparison of different enum types.
431 ; Documented in common.opt
433 Werror-implicit-function-declaration
434 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
435 This switch is deprecated; use -Werror=implicit-function-declaration instead.
438 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
439 Warn for implicit type conversions that cause loss of floating point precision.
442 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
443 Warn if testing floating point numbers for equality.
446 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
447 Warn about printf/scanf/strftime/strfmon format string anomalies.
450 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
451 Warn about format strings that contain NUL bytes.
454 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
455 Warn if passing too many arguments to a function for its format string.
458 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
459 Warn about format strings that are not literals.
462 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
463 Warn about possible security problems with format functions.
466 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
467 Warn about sign differences with format functions.
470 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
471 Warn about strftime formats yielding 2-digit years.
474 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
475 Warn about zero-length formats.
478 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
479 Warn about printf/scanf/strftime/strfmon format string anomalies.
482 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
483 Warn whenever type qualifiers are ignored.
485 Wincompatible-pointer-types
486 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
487 Warn when there is a conversion between pointers that have incompatible types.
490 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
491 Warn about variables which are initialized to themselves.
494 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
495 Warn about implicit declarations.
498 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
499 Warn about implicit conversions from \"float\" to \"double\".
501 Wimplicit-function-declaration
502 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
503 Warn about implicit function declarations.
506 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
507 Warn when a declaration does not specify a type.
510 C ObjC C++ ObjC++ Undocumented Ignore
512 Winherited-variadic-ctor
513 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
514 Warn about C++11 inheriting constructors when the base has a variadic constructor.
517 C ObjC Var(warn_int_conversion) Init(1) Warning
518 Warn about incompatible integer to pointer and pointer to integer conversions.
521 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
522 Warn when there is a cast to a pointer from an integer of a different size.
525 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
526 Warn about invalid uses of the \"offsetof\" macro.
529 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
530 Warn about PCH files that are found but not used.
533 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
534 Warn when a jump misses a variable initialization.
537 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
538 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
541 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
542 Warn when a logical operator is suspiciously always evaluating to true or false.
544 Wlogical-not-parentheses
545 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
546 Warn when logical not is used on the left hand side operand of a comparison.
549 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)
550 Do not warn about using \"long long\" when -pedantic.
553 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
554 Warn about suspicious declarations of \"main\".
557 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
560 Wmemset-transposed-args
561 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
562 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
564 Wmisleading-indentation
565 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
566 Warn when the indentation of the code does not reflect the block structure.
569 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
570 Warn about possibly missing braces around initializers.
572 Wmissing-declarations
573 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
574 Warn about global functions without previous declarations.
576 Wmissing-field-initializers
577 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
578 Warn about missing fields in struct initializers.
580 Wmultiple-inheritance
581 C++ ObjC++ Var(warn_multiple_inheritance) Warning
582 Warn on direct multiple inheritance.
585 C++ ObjC++ Var(warn_namespaces) Warning
586 Warn on namespace definition.
589 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
590 Warn about missing sized deallocation functions.
592 Wsizeof-pointer-memaccess
593 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
594 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
596 Wsizeof-array-argument
597 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
598 Warn when sizeof is applied on a parameter declared as an array.
600 Wsuggest-attribute=format
601 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
602 Warn about functions which might be candidates for format attributes.
605 C++ ObjC++ Var(warn_override) Warning
606 Suggest that the override keyword be used when the declaration of a virtual
607 function overrides another.
610 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
611 Warn about enumerated switches, with no default, missing a case.
614 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
615 Warn about enumerated switches missing a \"default:\" statement.
618 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
619 Warn about all enumerated switches missing a specific case.
622 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
623 Warn about switches with boolean controlling expression.
626 C++ ObjC++ Var(warn_templates) Warning
627 Warn on primary template declaration.
629 Wmissing-format-attribute
630 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
633 Wmissing-include-dirs
634 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
635 Warn about user-specified include directories that do not exist.
637 Wmissing-parameter-type
638 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
639 Warn about function parameters declared without a type specifier in K&R-style functions.
642 C ObjC Var(warn_missing_prototypes) Warning
643 Warn about global functions without prototypes.
646 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
649 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
650 Warn about use of multi-character character constants.
653 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
654 Warn about narrowing conversions within { } that are ill-formed in C++11.
657 C ObjC Var(warn_nested_externs) Warning
658 Warn about \"extern\" declarations not at file scope.
661 C++ ObjC++ Var(warn_noexcept) Warning
662 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
665 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
666 Warn when non-templatized friend functions are declared within a template.
669 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
670 Warn about non-virtual destructors.
673 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
674 Warn about NULL being passed to argument slots marked as requiring non-NULL.
677 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
681 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
685 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)
686 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings.
688 ; Required for these enum values.
693 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
696 Enum(cpp_normalize_level) String(none) Value(normalized_none)
699 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
702 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
705 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
708 C++ ObjC++ Var(warn_old_style_cast) Warning
709 Warn if a C-style cast is used in a program.
711 Wold-style-declaration
712 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
713 Warn for obsolescent usage in a declaration.
715 Wold-style-definition
716 C ObjC Var(warn_old_style_definition) Warning
717 Warn if an old-style parameter definition is used.
720 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
721 Warn if a simd directive is overridden by the vectorizer cost model.
724 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
725 Warn if a string is longer than the maximum portable length specified by the standard.
728 C++ ObjC++ Var(warn_overloaded_virtual) Warning
729 Warn about overloaded virtual function names.
732 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
733 Warn about overriding initializers without side effects.
735 Woverride-init-side-effects
736 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
737 Warn about overriding initializers with side effects.
739 Wpacked-bitfield-compat
740 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
741 Warn about packed bit-fields whose offset changed in GCC 4.4.
744 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
745 Warn about possibly missing parentheses.
748 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
749 ; Documented in common.opt
752 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
753 Warn when converting the type of pointers to member functions.
756 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
757 Warn about function pointer arithmetic.
760 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
761 Warn when a pointer differs in signedness in an assignment.
764 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
765 Warn when a pointer is cast to an integer of a different size.
768 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
769 Warn about misuses of pragmas.
771 Wproperty-assign-default
772 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
773 Warn if a property for an Objective-C object has no assign semantics specified.
776 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
777 Warn if inherited methods are unimplemented.
780 C++ Var(warn_placement_new) Init(1) Warning
781 Warn for placement new expressions with undefined behavior.
784 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
785 Warn about multiple declarations of the same object.
788 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
789 Warn when the compiler reorders code.
792 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
793 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
795 Wscalar-storage-order
796 C ObjC C++ ObjC++ Init(1) Warning
797 Warn on suspicious constructs involving reverse scalar storage order.
800 ObjC ObjC++ Var(warn_selector) Warning
801 Warn if a selector has multiple methods.
804 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
805 Warn about possible violations of sequence point rules.
808 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
809 Warn if a local declaration hides an instance variable.
812 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
813 Warn if left shift of a signed value overflows.
816 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
817 Warn if left shift of a signed value overflows.
819 Wshift-count-negative
820 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
821 Warn if shift count is negative.
823 Wshift-count-overflow
824 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
825 Warn if shift count >= width of type.
827 Wshift-negative-value
828 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
829 Warn if left shifting a negative value.
832 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
833 Warn about signed-unsigned comparisons.
836 C ObjC C++ ObjC++ EnabledBy(Wextra)
840 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
841 Warn for implicit type conversions between signed and unsigned integers.
844 C++ ObjC++ Var(warn_sign_promo) Warning
845 Warn when overload promotes from unsigned to signed.
847 Wstrict-null-sentinel
848 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
849 Warn about uncasted NULL used as sentinel.
852 C ObjC Var(warn_strict_prototypes) Warning
853 Warn about unprototyped function declarations.
856 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
860 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
863 Wstrict-selector-match
864 ObjC ObjC++ Var(warn_strict_selector_match) Warning
865 Warn if type signatures of candidate methods do not match exactly.
868 C C++ Var(warn_sync_nand) Init(1) Warning
869 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
872 C++ ObjC++ Var(warn_synth) Warning
873 Deprecated. This switch has no effect.
876 C ObjC C++ ObjC++ Warning
877 ; Documented in common.opt
879 Wtautological-compare
880 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
881 Warn if a comparison always evaluates to true or false.
884 C++ ObjC++ Warning Var(warn_terminate) Init(1)
885 Warn if a throw expression will always result in a call to terminate().
888 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
889 Warn about features not present in traditional C.
891 Wtraditional-conversion
892 C ObjC Var(warn_traditional_conversion) Warning
893 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
896 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
897 Warn if trigraphs are encountered that might affect the meaning of the program.
900 ObjC ObjC++ Var(warn_undeclared_selector) Warning
901 Warn about @selector()s without previously declared methods.
904 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
905 Warn if an undefined macro is used in an #if directive.
908 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
912 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
916 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
917 Warn about unrecognized pragmas.
919 Wunsuffixed-float-constants
920 C ObjC Var(warn_unsuffixed_float_constants) Warning
921 Warn about unsuffixed float constants.
924 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
925 ; documented in common.opt
927 Wunused-local-typedefs
928 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
929 Warn when typedefs locally defined in a function are not used.
932 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
933 Warn about macros defined in the main file that are not used.
936 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
937 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
940 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
941 ; documented in common.opt
943 Wunused-const-variable
944 C ObjC C++ ObjC++ Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable)
945 Warn when a const variable is unused.
948 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)
949 Warn about using variadic macros.
952 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
953 Warn about questionable usage of the macros used to retrieve variable arguments.
956 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
957 Warn if a variable length array is used.
959 Wvolatile-register-var
960 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
961 Warn when a register variable is declared volatile.
964 C++ ObjC++ Var(warn_virtual_inheritance) Warning
965 Warn on direct virtual inheritance.
968 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
969 Warn if a virtual base has a non-trivial move assignment operator.
972 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
973 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.
975 Wzero-as-null-pointer-constant
976 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
977 Warn when a literal '0' is used as null pointer.
980 C++ ObjC++ Var(warn_useless_cast) Warning
981 Warn about useless casts.
984 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
985 Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
989 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
992 C ObjC C++ ObjC++ Joined
993 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
996 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
997 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1000 C++ ObjC++ Var(flag_access_control) Init(1)
1001 Enforce class member access control semantics.
1004 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1005 -fada-spec-parent=unit Dump Ada specs as child units of given parent.
1008 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1010 fallow-parameterless-variadic-functions
1011 C ObjC Var(flag_allow_parameterless_variadic_functions)
1012 Allow variadic functions without named parameter.
1014 falt-external-templates
1015 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1016 No longer supported.
1019 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1020 Recognize the \"asm\" keyword.
1022 ; Define extra predefined macros for use in libgcc.
1024 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1027 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1028 Recognize built-in functions.
1031 C ObjC C++ ObjC++ Joined
1033 fcanonical-system-headers
1035 Where shorter, use canonicalized paths to systems headers.
1037 fcheck-pointer-bounds
1038 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1039 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1040 control instrumentation. Currently available for C, C++ and ObjC.
1042 fchkp-check-incomplete-type
1043 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1044 Generate pointer bounds checks for variables with incomplete type.
1046 fchkp-zero-input-bounds-for-main
1047 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1048 Use zero bounds for all incoming arguments in 'main' function. It helps when
1049 instrumented binaries are used with legacy libs.
1051 fchkp-first-field-has-own-bounds
1052 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1053 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1054 field in the structure. By default pointer to the first field has the same
1055 bounds as pointer to the whole structure.
1058 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1059 Control how Pointer Bounds Checker handle pointers to object fields. When
1060 narrowing is on, field bounds are used. Otherwise full object bounds are used.
1062 fchkp-narrow-to-innermost-array
1063 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1064 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1065 nested static arryas access. By default outermost array is used.
1068 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1069 Allow Pointer Bounds Checker optimizations. By default allowed
1070 on optimization levels >0.
1072 fchkp-use-fast-string-functions
1073 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1074 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1076 fchkp-use-nochk-string-functions
1077 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1078 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1080 fchkp-use-static-bounds
1081 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1082 Use statically initialized variable for vars bounds instead of
1083 generating them each time it is required.
1085 fchkp-use-static-const-bounds
1086 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1087 Use statically initialized variable for constant bounds instead of
1088 generating them each time it is required.
1090 fchkp-treat-zero-dynamic-size-as-infinite
1091 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1092 With this option zero size obtained dynamically for objects with
1093 incomplete type will be treated as infinite.
1096 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1097 Generate checks for all read accesses to memory.
1100 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1101 Generate checks for all write accesses to memory.
1104 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1105 Generate bounds stores for pointer writes.
1107 fchkp-instrument-calls
1108 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1109 Generate bounds passing for calls.
1111 fchkp-instrument-marked-only
1112 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1113 Instrument only functions marked with bnd_instrument attribute.
1116 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1117 Transform instrumented builtin calls into calls to wrappers.
1122 static-libmpxwrappers
1126 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1130 C++ ObjC++ Var(flag_concepts)
1131 Enable support for C++ concepts.
1135 Allow the arguments of the '?' operator to have different types.
1138 C++ ObjC++ Var(flag_conserve_space)
1139 Does nothing. Preserved for backward compatibility.
1141 fconstant-string-class=
1142 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1143 -fconst-string-class=<name> Use class <name> for constant strings.
1146 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1147 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
1151 Emit debug annotations during preprocessing.
1154 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1155 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1158 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1159 Factor complex constructors and destructors to favor space over speed.
1163 Does nothing. Preserved for backward compatibility.
1167 Preprocess directives only.
1169 fdollars-in-identifiers
1171 Permit '$' as an identifier character.
1174 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1175 Write all declarations as Ada code transitively.
1178 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1179 Write all declarations as Ada code for the given file only.
1182 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1185 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1186 Generate code to check exception specifications.
1189 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1192 C ObjC C++ ObjC++ Joined RejectNegative
1193 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
1195 fextended-identifiers
1197 Permit universal character names (\\u and \\U) in identifiers.
1200 C ObjC C++ ObjC++ Joined RejectNegative
1201 -finput-charset=<cset> Specify the default character set for source files.
1204 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1205 Support dynamic initialization of thread-local variables in a different translation unit.
1208 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1211 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1212 Scope of for-init-statement variables is local to the loop.
1216 Do not assume that standard C libraries and \"main\" exist.
1219 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1220 Recognize GNU-defined keywords.
1223 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1224 Generate code for GNU runtime environment.
1227 C ObjC Var(flag_gnu89_inline) Init(-1)
1228 Use traditional GNU semantics for inline functions.
1231 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1234 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1237 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1241 Assume normal C execution environment.
1244 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1245 No longer supported.
1248 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1249 Export functions even if they can be inlined.
1251 fimplicit-inline-templates
1252 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1253 Emit implicit instantiations of inline templates.
1256 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1257 Emit implicit instantiations of templates.
1260 C++ ObjC++ Var(flag_friend_injection)
1261 Inject friend functions into enclosing namespace.
1263 fkeep-inline-dllexport
1264 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1265 Don't emit dllexported inline functions unless needed.
1268 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1270 flax-vector-conversions
1271 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1272 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1275 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1276 Don't warn about uses of Microsoft extensions.
1279 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1282 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1285 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1287 fname-mangling-version-
1288 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1291 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1294 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1295 Generate code for NeXT (Apple Mac OS X) runtime environment.
1298 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1299 Assume that receivers of Objective-C messages may be nil.
1302 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1303 Allow access to instance variables as if they were local declarations within instance method implementations.
1306 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1307 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1310 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1313 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1316 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1319 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1322 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1325 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1328 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1331 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1332 Treat a throw() exception specification as noexcept to improve code size.
1335 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1336 Specify which ABI to use for Objective-C family code and meta-data generation.
1338 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1339 ; to initialize any non-POD ivars in Objective-C++ classes.
1340 fobjc-call-cxx-cdtors
1341 ObjC++ Var(flag_objc_call_cxx_cdtors)
1342 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1344 fobjc-direct-dispatch
1345 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1346 Allow fast jumps to the message dispatcher.
1348 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1349 ; @try, etc.) in source code.
1351 ObjC ObjC++ Var(flag_objc_exceptions)
1352 Enable Objective-C exception and synchronization syntax.
1355 ObjC ObjC++ LTO Var(flag_objc_gc)
1356 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1359 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1360 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1362 ; Nonzero means that we generate NeXT setjmp based exceptions.
1363 fobjc-sjlj-exceptions
1364 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1365 Enable Objective-C setjmp exception handling runtime.
1368 ObjC ObjC++ Var(flag_objc1_only)
1369 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1372 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1376 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1377 Specify default OpenACC compute dimensions.
1380 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1381 Enable OpenMP (implies -frecursive in Fortran).
1384 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1385 Enable OpenMP's SIMD directives.
1389 Recognize C++ keywords like \"compl\" and \"xor\".
1393 Does nothing. Preserved for backward compatibility.
1400 Look for and use PCH files even when preprocessing.
1403 C++ ObjC++ Var(flag_permissive)
1404 Downgrade conformance errors to warnings.
1407 C ObjC Var(flag_plan9_extensions)
1408 Enable Plan 9 language extensions.
1412 Treat the input file as already preprocessed.
1414 ftrack-macro-expansion
1415 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1416 ; converted into ftrack-macro-expansion=
1418 ftrack-macro-expansion=
1419 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1420 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
1423 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1424 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1426 freplace-objc-classes
1427 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1428 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1432 Enable automatic template instantiation.
1435 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1436 Generate run time type descriptor information.
1439 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
1440 Use the same size for double as for float.
1443 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1444 Use the narrowest integer type possible for enumeration types.
1447 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1448 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1451 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1452 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1455 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1456 Make \"char\" signed by default.
1459 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1460 Enable C++14 sized deallocation support.
1463 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1466 C ObjC Joined Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1467 -fsso-struct=[big-endian|little-endian] Set the default scalar storage order.
1470 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1473 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1476 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1479 C++ ObjC++ Var(flag_detailed_statistics)
1480 Display statistics accumulated during compilation.
1483 C++ ObjC++ Optimization Var(flag_strict_enums)
1484 Assume that values of enumeration type are always within the minimum range of that type.
1487 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1490 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1491 -ftabstop=<number> Distance between tab stops for column reporting.
1493 ftemplate-backtrace-limit=
1494 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1495 Set the maximum number of template instantiation notes for a single warning or error.
1498 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1501 C++ ObjC++ Joined RejectNegative UInteger
1502 -ftemplate-depth=<number> Specify maximum template instantiation depth.
1505 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1508 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1509 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1512 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1513 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1516 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1517 Make \"char\" unsigned by default.
1520 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1521 Use __cxa_atexit to register destructors.
1523 fuse-cxa-get-exception-ptr
1524 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1525 Use __cxa_get_exception_ptr in exception handling.
1527 fvisibility-inlines-hidden
1529 Marks all inlined functions and methods as having hidden visibility.
1531 fvisibility-ms-compat
1532 C++ ObjC++ Var(flag_visibility_ms_compat)
1533 Changes visibility to match Microsoft Visual Studio by default.
1536 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1537 No longer supported.
1540 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1541 No longer supported.
1544 C++ ObjC++ Var(flag_weak) Init(1)
1545 Emit common-like symbols as weak symbols.
1548 C ObjC C++ ObjC++ Joined RejectNegative
1549 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
1552 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1553 Generate a #line directive pointing at the current working directory.
1556 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1557 No longer supported.
1560 ObjC ObjC++ Var(flag_zero_link)
1561 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1564 ObjC ObjC++ Var(flag_gen_declaration)
1565 Dump declarations to a .decl file.
1567 femit-struct-debug-baseonly
1569 -femit-struct-debug-baseonly Aggressive reduced debug info for structs.
1571 femit-struct-debug-reduced
1573 -femit-struct-debug-reduced Conservative reduced debug info for structs.
1575 femit-struct-debug-detailed=
1576 C ObjC C++ ObjC++ Joined
1577 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
1579 fext-numeric-literals
1581 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1582 number literal rather than a user-defined number literal.
1585 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1586 -idirafter <dir> Add <dir> to the end of the system include path.
1589 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1590 -imacros <file> Accept definition of macros in <file>.
1593 C ObjC C++ ObjC++ Joined Separate
1594 -imultilib <dir> Set <dir> to be the multilib include subdirectory.
1597 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1598 -include <file> Include the contents of <file> before other files.
1601 C ObjC C++ ObjC++ Joined Separate
1602 -iprefix <path> Specify <path> as a prefix for next two options.
1605 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1606 -isysroot <dir> Set <dir> to be the system root directory.
1609 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1610 -isystem <dir> Add <dir> to the start of the system include path.
1613 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1614 -iquote <dir> Add <dir> to the end of the quote include path.
1617 C ObjC C++ ObjC++ Joined Separate
1618 -iwithprefix <dir> Add <dir> to the end of the system include path.
1621 C ObjC C++ ObjC++ Joined Separate
1622 -iwithprefixbefore <dir> Add <dir> to the end of the main include path.
1625 C Undocumented RejectDriver
1632 Do not search standard system include directories (those specified with -isystem will still be used).
1636 Do not search standard system include directories for C++.
1639 C ObjC C++ ObjC++ Joined Separate
1640 ; Documented in common.opt
1643 C ObjC C++ ObjC++ Alias(Wpedantic)
1644 ; Documented in common.opt
1646 print-objc-runtime-info
1648 Generate C header of platform-specific features.
1652 Remap file names when including files.
1656 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1659 C++ ObjC++ Alias(std=c++98)
1660 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1664 Conform to the ISO 2011 C++ standard.
1667 C++ ObjC++ Alias(std=c++11) Undocumented
1668 Deprecated in favor of -std=c++11.
1671 C++ ObjC++ Alias(std=c++14) Undocumented
1672 Deprecated in favor of -std=c++14.
1676 Conform to the ISO 2014 C++ standard.
1680 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
1683 C++ ObjC++ Alias(std=c++1z) Undocumented
1687 Conform to the ISO 2011 C standard.
1690 C ObjC Alias(std=c11)
1691 Deprecated in favor of -std=c11.
1694 C ObjC Alias(std=c90)
1695 Conform to the ISO 1990 C standard.
1699 Conform to the ISO 1990 C standard.
1703 Conform to the ISO 1999 C standard.
1706 C ObjC Alias(std=c99)
1707 Deprecated in favor of -std=c99.
1711 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1712 corrigendum with GNU extensions.
1715 C++ ObjC++ Alias(std=gnu++98)
1716 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1717 corrigendum with GNU extensions.
1721 Conform to the ISO 2011 C++ standard with GNU extensions.
1724 C++ ObjC++ Alias(std=gnu++11) Undocumented
1725 Deprecated in favor of -std=gnu++11.
1728 C++ ObjC++ Alias(std=gnu++14) Undocumented
1729 Deprecated in favor of -std=gnu++14.
1733 Conform to the ISO 2014 C++ standard with GNU extensions.
1737 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
1740 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1744 Conform to the ISO 2011 C standard with GNU extensions.
1747 C ObjC Alias(std=gnu11)
1748 Deprecated in favor of -std=gnu11.
1751 C ObjC Alias(std=gnu90)
1752 Conform to the ISO 1990 C standard with GNU extensions.
1756 Conform to the ISO 1990 C standard with GNU extensions.
1760 Conform to the ISO 1999 C standard with GNU extensions.
1763 C ObjC Alias(std=gnu99)
1764 Deprecated in favor of -std=gnu99.
1767 C ObjC Alias(std=c90)
1768 Conform to the ISO 1990 C standard.
1772 Conform to the ISO 1990 C standard as amended in 1994.
1775 C ObjC Alias(std=c99)
1776 Conform to the ISO 1999 C standard.
1779 C ObjC Alias(std=c99)
1780 Deprecated in favor of -std=iso9899:1999.
1783 C ObjC Alias(std=c11)
1784 Conform to the ISO 2011 C standard.
1791 Enable traditional preprocessing.
1795 -trigraphs Support ISO C trigraphs.
1798 C ObjC C++ ObjC++ Var(flag_undef)
1799 Do not predefine system-specific and GCC-specific macros.
1803 ; Documented in common.opt
1807 ; Documented in common.opt
1809 ; This comment is to ensure we retain the blank line above.