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) Warning 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++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
375 Warn about dangling else.
378 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
379 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
381 Wdeclaration-after-statement
382 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
383 Warn when a declaration is found after a statement.
386 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
387 Warn when deleting a pointer to incomplete type.
389 Wdelete-non-virtual-dtor
390 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
391 Warn about deleting polymorphic objects with non-virtual destructors.
394 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
395 Warn if a deprecated compiler feature, class, method, or field is used.
398 C ObjC Var(warn_designated_init) Init(1) Warning
399 Warn about positional initialization of structs requiring designated initializers.
401 Wdiscarded-array-qualifiers
402 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
403 Warn if qualifiers on arrays which are pointer targets are discarded.
405 Wdiscarded-qualifiers
406 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
407 Warn if type qualifiers on pointers are discarded.
410 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
411 Warn about compile-time integer division by zero.
414 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
415 Warn about duplicated conditions in an if-else-if chain.
418 C++ ObjC++ Var(warn_ecpp) Warning
419 Warn about violations of Effective C++ style rules.
422 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
423 Warn about an empty body in an if or else statement.
426 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)
427 Warn about stray tokens after #elif and #endif.
430 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
431 Warn about comparison of different enum types.
435 ; Documented in common.opt
437 Werror-implicit-function-declaration
438 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
439 This switch is deprecated; use -Werror=implicit-function-declaration instead.
442 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
443 Warn for implicit type conversions that cause loss of floating point precision.
446 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
447 Warn if testing floating point numbers for equality.
450 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
451 Warn about printf/scanf/strftime/strfmon format string anomalies.
454 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
455 Warn about format strings that contain NUL bytes.
458 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
459 Warn if passing too many arguments to a function for its format string.
462 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
463 Warn about format strings that are not literals.
466 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
467 Warn about possible security problems with format functions.
470 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
471 Warn about sign differences with format functions.
474 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
475 Warn about strftime formats yielding 2-digit years.
478 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
479 Warn about zero-length formats.
482 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
483 Warn about printf/scanf/strftime/strfmon format string anomalies.
486 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
487 Warn whenever type qualifiers are ignored.
490 C C++ Var(warn_ignored_attributes) Init(1) Warning
491 Warn whenever attributes are ignored.
493 Wincompatible-pointer-types
494 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
495 Warn when there is a conversion between pointers that have incompatible types.
498 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
499 Warn about variables which are initialized to themselves.
502 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
503 Warn about implicit declarations.
506 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
507 Warn about implicit conversions from \"float\" to \"double\".
509 Wimplicit-function-declaration
510 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
511 Warn about implicit function declarations.
514 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
515 Warn when a declaration does not specify a type.
518 C ObjC C++ ObjC++ Undocumented Ignore
520 Winherited-variadic-ctor
521 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
522 Warn about C++11 inheriting constructors when the base has a variadic constructor.
525 C ObjC Var(warn_int_conversion) Init(1) Warning
526 Warn about incompatible integer to pointer and pointer to integer conversions.
529 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
530 Warn when there is a cast to a pointer from an integer of a different size.
533 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
534 Warn about invalid uses of the \"offsetof\" macro.
537 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
538 Warn about PCH files that are found but not used.
541 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
542 Warn when a jump misses a variable initialization.
545 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
546 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
549 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
550 Warn when a logical operator is suspiciously always evaluating to true or false.
552 Wlogical-not-parentheses
553 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
554 Warn when logical not is used on the left hand side operand of a comparison.
557 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)
558 Do not warn about using \"long long\" when -pedantic.
561 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
562 Warn about suspicious declarations of \"main\".
565 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
568 Wmemset-transposed-args
569 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
570 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
573 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
574 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
576 Wmisleading-indentation
577 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
578 Warn when the indentation of the code does not reflect the block structure.
581 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
582 Warn about possibly missing braces around initializers.
584 Wmissing-declarations
585 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
586 Warn about global functions without previous declarations.
588 Wmissing-field-initializers
589 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
590 Warn about missing fields in struct initializers.
592 Wmultiple-inheritance
593 C++ ObjC++ Var(warn_multiple_inheritance) Warning
594 Warn on direct multiple inheritance.
597 C++ ObjC++ Var(warn_namespaces) Warning
598 Warn on namespace definition.
601 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
602 Warn about missing sized deallocation functions.
604 Wsizeof-pointer-memaccess
605 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
606 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
608 Wsizeof-array-argument
609 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
610 Warn when sizeof is applied on a parameter declared as an array.
612 Wsuggest-attribute=format
613 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
614 Warn about functions which might be candidates for format attributes.
617 C++ ObjC++ Var(warn_override) Warning
618 Suggest that the override keyword be used when the declaration of a virtual
619 function overrides another.
622 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
623 Warn about enumerated switches, with no default, missing a case.
626 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
627 Warn about enumerated switches missing a \"default:\" statement.
630 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
631 Warn about all enumerated switches missing a specific case.
634 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
635 Warn about switches with boolean controlling expression.
638 C++ ObjC++ Var(warn_templates) Warning
639 Warn on primary template declaration.
641 Wmissing-format-attribute
642 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
645 Wmissing-include-dirs
646 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
647 Warn about user-specified include directories that do not exist.
649 Wmissing-parameter-type
650 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
651 Warn about function parameters declared without a type specifier in K&R-style functions.
654 C ObjC Var(warn_missing_prototypes) Warning
655 Warn about global functions without prototypes.
658 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
661 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
662 Warn about use of multi-character character constants.
665 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
666 Warn about narrowing conversions within { } that are ill-formed in C++11.
669 C ObjC Var(warn_nested_externs) Warning
670 Warn about \"extern\" declarations not at file scope.
673 C++ ObjC++ Var(warn_noexcept) Warning
674 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
677 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
678 Warn when non-templatized friend functions are declared within a template.
681 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
682 Warn about non-virtual destructors.
685 C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
686 Warn about NULL being passed to argument slots marked as requiring non-NULL.
689 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
693 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
697 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
701 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)
702 -Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings.
704 ; Required for these enum values.
709 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
712 Enum(cpp_normalize_level) String(none) Value(normalized_none)
715 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
718 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
721 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
724 C++ ObjC++ Var(warn_old_style_cast) Warning
725 Warn if a C-style cast is used in a program.
727 Wold-style-declaration
728 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
729 Warn for obsolescent usage in a declaration.
731 Wold-style-definition
732 C ObjC Var(warn_old_style_definition) Warning
733 Warn if an old-style parameter definition is used.
736 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
737 Warn if a simd directive is overridden by the vectorizer cost model.
740 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
741 Warn if a string is longer than the maximum portable length specified by the standard.
744 C++ ObjC++ Var(warn_overloaded_virtual) Warning
745 Warn about overloaded virtual function names.
748 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
749 Warn about overriding initializers without side effects.
751 Woverride-init-side-effects
752 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
753 Warn about overriding initializers with side effects.
755 Wpacked-bitfield-compat
756 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
757 Warn about packed bit-fields whose offset changed in GCC 4.4.
760 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
761 Warn about possibly missing parentheses.
764 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
765 ; Documented in common.opt
768 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
769 Warn when converting the type of pointers to member functions.
772 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
773 Warn about function pointer arithmetic.
776 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
777 Warn when a pointer differs in signedness in an assignment.
780 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
781 Warn when a pointer is cast to an integer of a different size.
784 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
785 Warn about misuses of pragmas.
787 Wproperty-assign-default
788 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
789 Warn if a property for an Objective-C object has no assign semantics specified.
792 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
793 Warn if inherited methods are unimplemented.
796 C++ Warning Alias(Wplacement-new=, 1, 0)
797 Warn for placement new expressions with undefined behavior.
800 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
801 Warn for placement new expressions with undefined behavior.
804 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
805 Warn about multiple declarations of the same object.
808 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
809 Warn when the compiler reorders code.
812 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
813 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
815 Wscalar-storage-order
816 C ObjC C++ ObjC++ Init(1) Warning
817 Warn on suspicious constructs involving reverse scalar storage order.
820 ObjC ObjC++ Var(warn_selector) Warning
821 Warn if a selector has multiple methods.
824 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
825 Warn about possible violations of sequence point rules.
828 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
829 Warn if a local declaration hides an instance variable.
832 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
833 Warn if left shift of a signed value overflows.
836 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
837 Warn if left shift of a signed value overflows.
839 Wshift-count-negative
840 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
841 Warn if shift count is negative.
843 Wshift-count-overflow
844 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
845 Warn if shift count >= width of type.
847 Wshift-negative-value
848 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
849 Warn if left shifting a negative value.
852 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
853 Warn about signed-unsigned comparisons.
856 C ObjC C++ ObjC++ EnabledBy(Wextra)
860 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
861 Warn for implicit type conversions between signed and unsigned integers.
864 C++ ObjC++ Var(warn_sign_promo) Warning
865 Warn when overload promotes from unsigned to signed.
867 Wstrict-null-sentinel
868 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
869 Warn about uncasted NULL used as sentinel.
872 C ObjC Var(warn_strict_prototypes) Warning
873 Warn about unprototyped function declarations.
876 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
880 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
883 Wstrict-selector-match
884 ObjC ObjC++ Var(warn_strict_selector_match) Warning
885 Warn if type signatures of candidate methods do not match exactly.
888 C C++ Var(warn_sync_nand) Init(1) Warning
889 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
892 C++ ObjC++ Var(warn_synth) Warning
893 Deprecated. This switch has no effect.
896 C ObjC C++ ObjC++ Warning
897 ; Documented in common.opt
899 Wtautological-compare
900 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
901 Warn if a comparison always evaluates to true or false.
904 C++ ObjC++ Warning Var(warn_terminate) Init(1)
905 Warn if a throw expression will always result in a call to terminate().
908 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
909 Warn about features not present in traditional C.
911 Wtraditional-conversion
912 C ObjC Var(warn_traditional_conversion) Warning
913 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
916 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
917 Warn if trigraphs are encountered that might affect the meaning of the program.
920 ObjC ObjC++ Var(warn_undeclared_selector) Warning
921 Warn about @selector()s without previously declared methods.
924 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
925 Warn if an undefined macro is used in an #if directive.
928 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
932 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
936 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
937 Warn about unrecognized pragmas.
939 Wunsuffixed-float-constants
940 C ObjC Var(warn_unsuffixed_float_constants) Warning
941 Warn about unsuffixed float constants.
944 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
945 ; documented in common.opt
947 Wunused-local-typedefs
948 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
949 Warn when typedefs locally defined in a function are not used.
952 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
953 Warn about macros defined in the main file that are not used.
956 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
957 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
960 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
961 ; documented in common.opt
963 Wunused-const-variable
964 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
965 Warn when a const variable is unused.
967 Wunused-const-variable=
968 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
969 Warn when a const variable is unused.
972 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)
973 Warn about using variadic macros.
976 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
977 Warn about questionable usage of the macros used to retrieve variable arguments.
980 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
981 Warn if a variable length array is used.
983 Wvolatile-register-var
984 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
985 Warn when a register variable is declared volatile.
988 C++ ObjC++ Var(warn_virtual_inheritance) Warning
989 Warn on direct virtual inheritance.
992 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
993 Warn if a virtual base has a non-trivial move assignment operator.
996 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
997 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.
999 Wzero-as-null-pointer-constant
1000 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1001 Warn when a literal '0' is used as null pointer.
1004 C++ ObjC++ Var(warn_useless_cast) Warning
1005 Warn about useless casts.
1008 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1009 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.
1011 Wduplicate-decl-specifier
1012 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1013 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1017 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1020 C ObjC C++ ObjC++ Joined
1021 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
1023 fabi-compat-version=
1024 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1025 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1028 C++ ObjC++ Var(flag_access_control) Init(1)
1029 Enforce class member access control semantics.
1032 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1033 -fada-spec-parent=unit Dump Ada specs as child units of given parent.
1036 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1038 fallow-parameterless-variadic-functions
1039 C ObjC Var(flag_allow_parameterless_variadic_functions)
1040 Allow variadic functions without named parameter.
1042 falt-external-templates
1043 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1044 No longer supported.
1047 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1048 Recognize the \"asm\" keyword.
1050 ; Define extra predefined macros for use in libgcc.
1052 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1055 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1056 Recognize built-in functions.
1059 C ObjC C++ ObjC++ Joined
1061 fcanonical-system-headers
1063 Where shorter, use canonicalized paths to systems headers.
1065 fcheck-pointer-bounds
1066 C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
1067 Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1068 control instrumentation. Currently available for C, C++ and ObjC.
1070 fchkp-check-incomplete-type
1071 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
1072 Generate pointer bounds checks for variables with incomplete type.
1074 fchkp-zero-input-bounds-for-main
1075 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
1076 Use zero bounds for all incoming arguments in 'main' function. It helps when
1077 instrumented binaries are used with legacy libs.
1079 fchkp-first-field-has-own-bounds
1080 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
1081 Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1082 field in the structure. By default pointer to the first field has the same
1083 bounds as pointer to the whole structure.
1086 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
1087 Control how Pointer Bounds Checker handle pointers to object fields. When
1088 narrowing is on, field bounds are used. Otherwise full object bounds are used.
1090 fchkp-narrow-to-innermost-array
1091 C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
1092 Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1093 nested static arryas access. By default outermost array is used.
1096 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1097 Allow Pointer Bounds Checker optimizations. By default allowed
1098 on optimization levels >0.
1100 fchkp-use-fast-string-functions
1101 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1102 Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1104 fchkp-use-nochk-string-functions
1105 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1106 Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1108 fchkp-use-static-bounds
1109 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
1110 Use statically initialized variable for vars bounds instead of
1111 generating them each time it is required.
1113 fchkp-use-static-const-bounds
1114 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
1115 Use statically initialized variable for constant bounds instead of
1116 generating them each time it is required.
1118 fchkp-treat-zero-dynamic-size-as-infinite
1119 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
1120 With this option zero size obtained dynamically for objects with
1121 incomplete type will be treated as infinite.
1124 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1125 Generate checks for all read accesses to memory.
1128 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1129 Generate checks for all write accesses to memory.
1132 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1133 Generate bounds stores for pointer writes.
1135 fchkp-instrument-calls
1136 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1137 Generate bounds passing for calls.
1139 fchkp-instrument-marked-only
1140 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1141 Instrument only functions marked with bnd_instrument attribute.
1144 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1145 Transform instrumented builtin calls into calls to wrappers.
1150 static-libmpxwrappers
1154 C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
1158 C++ ObjC++ Var(flag_concepts)
1159 Enable support for C++ concepts.
1163 Allow the arguments of the '?' operator to have different types.
1166 C++ ObjC++ Var(flag_conserve_space)
1167 Does nothing. Preserved for backward compatibility.
1169 fconstant-string-class=
1170 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1171 -fconst-string-class=<name> Use class <name> for constant strings.
1174 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1175 -fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
1177 fconstexpr-loop-limit=
1178 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1179 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1183 Emit debug annotations during preprocessing.
1186 C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1187 -fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
1190 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1191 Factor complex constructors and destructors to favor space over speed.
1195 Does nothing. Preserved for backward compatibility.
1199 Preprocess directives only.
1201 fdollars-in-identifiers
1203 Permit '$' as an identifier character.
1206 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1207 Write all declarations as Ada code transitively.
1210 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1211 Write all declarations as Ada code for the given file only.
1214 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1217 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1218 Generate code to check exception specifications.
1221 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1224 C ObjC C++ ObjC++ Joined RejectNegative
1225 -fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
1227 fextended-identifiers
1229 Permit universal character names (\\u and \\U) in identifiers.
1232 C ObjC C++ ObjC++ Joined RejectNegative
1233 -finput-charset=<cset> Specify the default character set for source files.
1236 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1237 Support dynamic initialization of thread-local variables in a different translation unit.
1240 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1243 C++ ObjC++ Var(flag_new_for_scope) Init(1)
1244 Scope of for-init-statement variables is local to the loop.
1248 Do not assume that standard C libraries and \"main\" exist.
1251 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1252 Recognize GNU-defined keywords.
1255 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1256 Generate code for GNU runtime environment.
1259 C ObjC Var(flag_gnu89_inline) Init(-1)
1260 Use traditional GNU semantics for inline functions.
1263 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1266 C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
1269 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1273 Assume normal C execution environment.
1276 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1277 No longer supported.
1280 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1281 Export functions even if they can be inlined.
1283 fimplicit-inline-templates
1284 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1285 Emit implicit instantiations of inline templates.
1288 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1289 Emit implicit instantiations of templates.
1292 C++ ObjC++ Var(flag_friend_injection)
1293 Inject friend functions into enclosing namespace.
1295 fkeep-inline-dllexport
1296 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1297 Don't emit dllexported inline functions unless needed.
1300 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1302 flax-vector-conversions
1303 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1304 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1307 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1308 Don't warn about uses of Microsoft extensions.
1311 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1314 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1317 C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1319 fname-mangling-version-
1320 C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
1323 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1326 ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
1327 Generate code for NeXT (Apple Mac OS X) runtime environment.
1330 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1331 Assume that receivers of Objective-C messages may be nil.
1334 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1335 Allow access to instance variables as if they were local declarations within instance method implementations.
1338 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1339 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1342 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1345 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1348 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1351 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1354 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1357 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1360 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1363 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1364 Treat a throw() exception specification as noexcept to improve code size.
1367 ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
1368 Specify which ABI to use for Objective-C family code and meta-data generation.
1370 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1371 ; to initialize any non-POD ivars in Objective-C++ classes.
1372 fobjc-call-cxx-cdtors
1373 ObjC++ Var(flag_objc_call_cxx_cdtors)
1374 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1376 fobjc-direct-dispatch
1377 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1378 Allow fast jumps to the message dispatcher.
1380 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1381 ; @try, etc.) in source code.
1383 ObjC ObjC++ Var(flag_objc_exceptions)
1384 Enable Objective-C exception and synchronization syntax.
1387 ObjC ObjC++ LTO Var(flag_objc_gc)
1388 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1391 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1392 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1394 ; Nonzero means that we generate NeXT setjmp based exceptions.
1395 fobjc-sjlj-exceptions
1396 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1397 Enable Objective-C setjmp exception handling runtime.
1400 ObjC ObjC++ Var(flag_objc1_only)
1401 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1404 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1408 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1409 Specify default OpenACC compute dimensions.
1412 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1413 Enable OpenMP (implies -frecursive in Fortran).
1416 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1417 Enable OpenMP's SIMD directives.
1421 Recognize C++ keywords like \"compl\" and \"xor\".
1425 Does nothing. Preserved for backward compatibility.
1432 Look for and use PCH files even when preprocessing.
1435 C++ ObjC++ Var(flag_permissive)
1436 Downgrade conformance errors to warnings.
1439 C ObjC Var(flag_plan9_extensions)
1440 Enable Plan 9 language extensions.
1444 Treat the input file as already preprocessed.
1446 ftrack-macro-expansion
1447 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1448 ; converted into ftrack-macro-expansion=
1450 ftrack-macro-expansion=
1451 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1452 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
1455 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1456 -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
1458 freplace-objc-classes
1459 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1460 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
1464 Enable automatic template instantiation.
1467 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
1468 Generate run time type descriptor information.
1471 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
1472 Use the narrowest integer type possible for enumeration types.
1475 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
1476 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
1479 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
1480 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
1483 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
1484 Make \"char\" signed by default.
1487 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1488 Enable C++14 sized deallocation support.
1491 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1494 C ObjC Joined Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1495 -fsso-struct=[big-endian|little-endian] Set the default scalar storage order.
1498 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1501 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1504 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1507 C++ ObjC++ Var(flag_detailed_statistics)
1508 Display statistics accumulated during compilation.
1511 C++ ObjC++ Optimization Var(flag_strict_enums)
1512 Assume that values of enumeration type are always within the minimum range of that type.
1515 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1518 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1519 Follow the C++17 evaluation order requirements for assignment expressions,
1520 shift, member function calls, etc.
1523 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) Init(-1)
1524 Follow the C++17 evaluation order requirements for assignment expressions,
1525 shift, member function calls, etc.
1528 Name(strong_eval_order) Type(int)
1531 Enum(strong_eval_order) String(none) Value(0)
1534 Enum(strong_eval_order) String(some) Value(1)
1537 Enum(strong_eval_order) String(all) Value(2)
1540 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1541 -ftabstop=<number> Distance between tab stops for column reporting.
1543 ftemplate-backtrace-limit=
1544 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1545 Set the maximum number of template instantiation notes for a single warning or error.
1548 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
1551 C++ ObjC++ Joined RejectNegative UInteger
1552 -ftemplate-depth=<number> Specify maximum template instantiation depth.
1555 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1558 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
1559 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
1562 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
1563 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
1566 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
1567 Make \"char\" unsigned by default.
1570 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
1571 Use __cxa_atexit to register destructors.
1573 fuse-cxa-get-exception-ptr
1574 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
1575 Use __cxa_get_exception_ptr in exception handling.
1577 fvisibility-inlines-hidden
1579 Marks all inlined functions and methods as having hidden visibility.
1581 fvisibility-ms-compat
1582 C++ ObjC++ Var(flag_visibility_ms_compat)
1583 Changes visibility to match Microsoft Visual Studio by default.
1586 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1587 No longer supported.
1590 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1591 No longer supported.
1594 C++ ObjC++ Var(flag_weak) Init(1)
1595 Emit common-like symbols as weak symbols.
1598 C ObjC C++ ObjC++ Joined RejectNegative
1599 -fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
1602 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
1603 Generate a #line directive pointing at the current working directory.
1606 C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
1607 No longer supported.
1610 ObjC ObjC++ Var(flag_zero_link)
1611 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
1614 ObjC ObjC++ Var(flag_gen_declaration)
1615 Dump declarations to a .decl file.
1617 femit-struct-debug-baseonly
1619 -femit-struct-debug-baseonly Aggressive reduced debug info for structs.
1621 femit-struct-debug-reduced
1623 -femit-struct-debug-reduced Conservative reduced debug info for structs.
1625 femit-struct-debug-detailed=
1626 C ObjC C++ ObjC++ Joined
1627 -femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
1629 fext-numeric-literals
1631 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1632 number literal rather than a user-defined number literal.
1635 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1636 -idirafter <dir> Add <dir> to the end of the system include path.
1639 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1640 -imacros <file> Accept definition of macros in <file>.
1643 C ObjC C++ ObjC++ Joined Separate
1644 -imultilib <dir> Set <dir> to be the multilib include subdirectory.
1647 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
1648 -include <file> Include the contents of <file> before other files.
1651 C ObjC C++ ObjC++ Joined Separate
1652 -iprefix <path> Specify <path> as a prefix for next two options.
1655 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1656 -isysroot <dir> Set <dir> to be the system root directory.
1659 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1660 -isystem <dir> Add <dir> to the start of the system include path.
1663 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
1664 -iquote <dir> Add <dir> to the end of the quote include path.
1667 C ObjC C++ ObjC++ Joined Separate
1668 -iwithprefix <dir> Add <dir> to the end of the system include path.
1671 C ObjC C++ ObjC++ Joined Separate
1672 -iwithprefixbefore <dir> Add <dir> to the end of the main include path.
1675 C Undocumented RejectDriver
1682 Do not search standard system include directories (those specified with -isystem will still be used).
1686 Do not search standard system include directories for C++.
1689 C ObjC C++ ObjC++ Joined Separate
1690 ; Documented in common.opt
1693 C ObjC C++ ObjC++ Alias(Wpedantic)
1694 ; Documented in common.opt
1696 print-objc-runtime-info
1698 Generate C header of platform-specific features.
1702 Remap file names when including files.
1706 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1709 C++ ObjC++ Alias(std=c++98)
1710 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
1714 Conform to the ISO 2011 C++ standard.
1717 C++ ObjC++ Alias(std=c++11) Undocumented
1718 Deprecated in favor of -std=c++11.
1721 C++ ObjC++ Alias(std=c++14) Undocumented
1722 Deprecated in favor of -std=c++14.
1726 Conform to the ISO 2014 C++ standard.
1730 Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
1733 C++ ObjC++ Alias(std=c++1z) Undocumented
1737 Conform to the ISO 2011 C standard.
1740 C ObjC Alias(std=c11)
1741 Deprecated in favor of -std=c11.
1744 C ObjC Alias(std=c90)
1745 Conform to the ISO 1990 C standard.
1749 Conform to the ISO 1990 C standard.
1753 Conform to the ISO 1999 C standard.
1756 C ObjC Alias(std=c99)
1757 Deprecated in favor of -std=c99.
1761 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1762 corrigendum with GNU extensions.
1765 C++ ObjC++ Alias(std=gnu++98)
1766 Conform to the ISO 1998 C++ standard revised by the 2003 technical
1767 corrigendum with GNU extensions.
1771 Conform to the ISO 2011 C++ standard with GNU extensions.
1774 C++ ObjC++ Alias(std=gnu++11) Undocumented
1775 Deprecated in favor of -std=gnu++11.
1778 C++ ObjC++ Alias(std=gnu++14) Undocumented
1779 Deprecated in favor of -std=gnu++14.
1783 Conform to the ISO 2014 C++ standard with GNU extensions.
1787 Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
1790 C++ ObjC++ Alias(std=gnu++1z) Undocumented
1794 Conform to the ISO 2011 C standard with GNU extensions.
1797 C ObjC Alias(std=gnu11)
1798 Deprecated in favor of -std=gnu11.
1801 C ObjC Alias(std=gnu90)
1802 Conform to the ISO 1990 C standard with GNU extensions.
1806 Conform to the ISO 1990 C standard with GNU extensions.
1810 Conform to the ISO 1999 C standard with GNU extensions.
1813 C ObjC Alias(std=gnu99)
1814 Deprecated in favor of -std=gnu99.
1817 C ObjC Alias(std=c90)
1818 Conform to the ISO 1990 C standard.
1822 Conform to the ISO 1990 C standard as amended in 1994.
1825 C ObjC Alias(std=c99)
1826 Conform to the ISO 1999 C standard.
1829 C ObjC Alias(std=c99)
1830 Deprecated in favor of -std=iso9899:1999.
1833 C ObjC Alias(std=c11)
1834 Conform to the ISO 2011 C standard.
1841 Enable traditional preprocessing.
1845 -trigraphs Support ISO C trigraphs.
1848 C ObjC C++ ObjC++ Var(flag_undef)
1849 Do not predefine system-specific and GCC-specific macros.
1853 ; Documented in common.opt
1857 ; Documented in common.opt
1859 ; This comment is to ensure we retain the blank line above.