Fix typo in t-dimode
[official-gcc.git] / gcc / c-family / c.opt
blob4b8a094b20697b469b9f8e799d85af1cacf4e808
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003-2021 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
9 ; version.
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
14 ; for more details.
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.
24 Language
27 Language
28 ObjC
30 Language
31 C++
33 Language
34 ObjC++
36 -all-warnings
37 C ObjC C++ ObjC++ Warning Alias(Wall)
39 -ansi
40 C ObjC C++ ObjC++ Alias(ansi)
42 -assert
43 C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
45 -assert=
46 C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
48 -comments
49 C ObjC C++ ObjC++ Alias(C)
51 -comments-in-macros
52 C ObjC C++ ObjC++ Alias(CC)
54 -define-macro
55 C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
57 -define-macro=
58 C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
60 -dependencies
61 C ObjC C++ ObjC++ Alias(M)
63 -dump
64 C ObjC C++ ObjC++ Separate Alias(d)
66 -dump=
67 C ObjC C++ ObjC++ Joined Alias(d)
69 -imacros
70 C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
72 -imacros=
73 C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
75 -include
76 C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
78 -include=
79 C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
81 -include-barrier
82 C ObjC C++ ObjC++ Alias(I, -)
84 -include-directory
85 C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
87 -include-directory=
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)
96 -include-prefix
97 C ObjC C++ ObjC++ Separate Alias(iprefix)
99 -include-prefix=
100 C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
102 -include-with-prefix
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)
120 -no-integrated-cpp
121 Driver Alias(no-integrated-cpp)
123 -no-line-commands
124 C ObjC C++ ObjC++ Alias(P)
126 -no-standard-includes
127 C ObjC C++ ObjC++ Alias(nostdinc)
129 -no-warnings
130 C ObjC C++ ObjC++ Alias(w)
132 -output
133 C ObjC C++ ObjC++ Separate Alias(o)
135 -output=
136 C ObjC C++ ObjC++ Joined Alias(o)
138 -output-pch=
139 C ObjC C++ ObjC++ Joined Separate
141 -pedantic
142 C ObjC C++ ObjC++ Alias(pedantic)
144 -preprocess
145 C ObjC C++ ObjC++ Undocumented Alias(E)
147 -print-missing-file-dependencies
148 C ObjC C++ ObjC++ Alias(MG)
150 -trace-includes
151 C ObjC C++ ObjC++ Alias(H)
153 -traditional
154 Driver Alias(traditional)
156 -traditional-cpp
157 C ObjC C++ ObjC++ Alias(traditional-cpp)
159 -trigraphs
160 C ObjC C++ ObjC++ Alias(trigraphs)
162 -undefine-macro
163 C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
165 -undefine-macro=
166 C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
168 -user-dependencies
169 C ObjC C++ ObjC++ Alias(MM)
171 -verbose
172 Common C ObjC C++ ObjC++ Alias(v)
174 -write-dependencies
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>.
185 C ObjC C++ ObjC++
186 Do not discard comments.
189 C ObjC C++ ObjC++
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.
203 fgimple
204 C Var(flag_gimple) Init(0)
205 Enable parsing GIMPLE.
208 C ObjC C++ ObjC++
209 Print the name of header files as they are used.
212 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
213 -I <dir>        Add <dir> to the end of the main include path.
216 C ObjC C++ ObjC++
217 Generate make dependencies.
220 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
221 Generate make dependencies and compile.
224 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
225 -MF <file>      Write dependency output to the given file.
228 C ObjC C++ ObjC++
229 Treat missing header files as generated files.
232 C ObjC C++ ObjC++
233 Like -M but ignore system header files.
236 C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
237 Like -MD but ignore system header files.
239 Mmodules
241 Generate C++ Module dependency information.
243 Mno-modules
245 ; undocumented
248 C ObjC C++ ObjC++
249 Generate phony targets for all headers.
252 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
253 -MQ <target>    Add a target that may require quoting.
256 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
257 -MT <target>    Add a target that does not require quoting.
260 C ObjC C++ ObjC++
261 Do not generate #line directives.
264 C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
265 -U<macro>       Undefine <macro>.
267 WNSObject-attribute
268 C ObjC C++ ObjC++ LTO Var(warn_nsobject_attribute) Warning Init(1)
269 Warn if the NSObject attribute is applied to a non-typedef.
271 Wabi
272 C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
273 Warn about things that will change when compiling with an ABI-compliant compiler.
275 Wabi=
276 C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
277 Warn about things that change between the current -fabi-version and the specified version.
279 Wabi-tag
280 C++ ObjC++ Var(warn_abi_tag) Warning
281 Warn if a subobject has an abi_tag attribute that the complete object type does not have.
283 Wpsabi
284 C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
286 Wabsolute-value
287 C ObjC Var(warn_absolute_value) Warning EnabledBy(Wextra)
288 Warn on suspicious calls of standard functions computing absolute values.
290 Waddress
291 C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
292 Warn about suspicious uses of memory addresses.
294 Enum
295 Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
297 EnumValue
298 Enum(warn_aligned_new_level) String(none) Value(0)
300 EnumValue
301 Enum(warn_aligned_new_level) String(global) Value(1)
303 EnumValue
304 Enum(warn_aligned_new_level) String(all) Value(2)
306 Waligned-new
307 C++ ObjC++ Alias(Waligned-new=,global,none)
308 Warn about 'new' of type with extended alignment without -faligned-new.
310 Waligned-new=
311 C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
312 -Waligned-new=[none|global|all] Warn even if 'new' uses a class member allocation function.
314 Wall
315 C ObjC C++ ObjC++ Warning
316 Enable most warning messages.
318 Walloca
319 C ObjC C++ ObjC++ Var(warn_alloca) Warning
320 Warn on any use of alloca.
322 Walloc-size-larger-than=
323 C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX)
324 -Walloc-size-larger-than=<bytes>        Warn for calls to allocation functions that
325 attempt to allocate objects larger than the specified number of bytes.
327 Wno-alloc-size-larger-than
328 C ObjC C++ LTO ObjC++ Alias(Walloc-size-larger-than=,18446744073709551615EiB,none) Warning
329 Disable Walloc-size-larger-than= warning.  Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger.
331 Walloc-zero
332 C ObjC C++ ObjC++ Var(warn_alloc_zero) Warning
333 Warn for calls to allocation functions that specify zero bytes.
335 Walloca-larger-than=
336 C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
337 -Walloca-larger-than=<number>   Warn on unbounded uses of
338 alloca, and on bounded uses of alloca whose bound can be larger than
339 <number> bytes.
341 Wno-alloca-larger-than
342 C ObjC C++ LTO ObjC++ Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning
343 Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.
345 Warray-bounds
346 LangEnabledBy(C ObjC C++ LTO ObjC++)
347 ; in common.opt
349 Warray-bounds=
350 LangEnabledBy(C ObjC C++ LTO ObjC++,Wall,1,0)
351 ; in common.opt
353 Warray-compare
354 C ObjC C++ ObjC++ Var(warn_array_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
355 Warn about comparisons between two operands of array type.
357 Warray-parameter
358 C ObjC C++ ObjC++ Warning Alias(Warray-parameter=, 2, 0)
359 Warn about mismatched declarations of array parameters and unsafe accesses to them.
361 Warray-parameter=
362 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_array_parameter) IntegerRange(0, 2) LangEnabledBy(C ObjC C++ ObjC++,Wall, 2, 0) Warning
363 Warn about mismatched declarations of array parameters and unsafe accesses to them.
365 Wzero-length-bounds
366 C ObjC C++ ObjC++ Var(warn_zero_length_bounds) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
367 Warn about accesses to interior zero-length array members.
369 Wassign-intercept
370 ObjC ObjC++ Var(warn_assign_intercept) Warning
371 Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
373 Wbad-function-cast
374 C ObjC Var(warn_bad_function_cast) Warning
375 Warn about casting functions to incompatible types.
377 Wbidi-chars
378 C ObjC C++ ObjC++ Warning Alias(Wbidi-chars=,any,none)
381 Wbidi-chars=
382 C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(cpp_warn_bidirectional) CppReason(CPP_W_BIDIRECTIONAL) Var(warn_bidirectional) Init(bidirectional_unpaired) Enum(cpp_bidirectional_level)
383 -Wbidi-chars=[none|unpaired|any] Warn about UTF-8 bidirectional control characters.
385 ; Required for these enum values.
386 SourceInclude
387 cpplib.h
389 Enum
390 Name(cpp_bidirectional_level) Type(int) UnknownError(argument %qs to %<-Wbidi-chars%> not recognized)
392 EnumValue
393 Enum(cpp_bidirectional_level) String(none) Value(bidirectional_none)
395 EnumValue
396 Enum(cpp_bidirectional_level) String(unpaired) Value(bidirectional_unpaired)
398 EnumValue
399 Enum(cpp_bidirectional_level) String(any) Value(bidirectional_any)
401 Wbool-compare
402 C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
403 Warn about boolean expression compared with an integer value different from true/false.
405 Wbool-operation
406 C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
407 Warn about certain operations on boolean expressions.
409 Wframe-address
410 C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
411 Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
413 Wbuiltin-declaration-mismatch
414 C ObjC C++ ObjC++ Var(warn_builtin_declaration_mismatch) Init(1) Warning
415 Warn when a built-in function is declared with the wrong signature.
417 Wbuiltin-macro-redefined
418 C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
419 Warn when a built-in preprocessor macro is undefined or redefined.
421 Wc11-c2x-compat
422 C ObjC CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT) Var(warn_c11_c2x_compat) Init(-1) Warning
423 Warn about features not present in ISO C11, but present in ISO C2X.
425 Wc90-c99-compat
426 C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
427 Warn about features not present in ISO C90, but present in ISO C99.
429 Wc99-c11-compat
430 C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
431 Warn about features not present in ISO C99, but present in ISO C11.
433 Wc++-compat
434 C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
435 Warn about C constructs that are not in the common subset of C and C++.
437 Wc++0x-compat
438 C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
440 Wc++11-compat
441 C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
442 Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
444 Wc++14-compat
445 C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
446 Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
448 Wc++1z-compat
449 C++ ObjC++ Warning Alias(Wc++17-compat) Undocumented
451 Wc++17-compat
452 C++ ObjC++ Var(warn_cxx17_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
453 Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017.
455 Wc++2a-compat
456 C++ ObjC++ Warning Alias(Wc++20-compat) Undocumented
458 Wc++20-compat
459 C++ ObjC++ Var(warn_cxx20_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
460 Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020.
462 Wc++11-extensions
463 C++ ObjC++ Var(warn_cxx11_extensions) Warning LangEnabledBy(C++ ObjC++) Init(1)
464 Warn about C++11 constructs in code compiled with an older standard.
466 Wc++14-extensions
467 C++ ObjC++ Var(warn_cxx14_extensions) Warning LangEnabledBy(C++ ObjC++) Init(1)
468 Warn about C++14 constructs in code compiled with an older standard.
470 Wc++17-extensions
471 C++ ObjC++ Var(warn_cxx17_extensions) Warning LangEnabledBy(C++ ObjC++) Init(1)
472 Warn about C++17 constructs in code compiled with an older standard.
474 Wc++20-extensions
475 C++ ObjC++ Var(warn_cxx20_extensions) Warning LangEnabledBy(C++ ObjC++) Init(1)
476 Warn about C++20 constructs in code compiled with an older standard.
478 Wc++23-extensions
479 C++ ObjC++ Var(warn_cxx23_extensions) Warning LangEnabledBy(C++ ObjC++) Init(1)
480 Warn about C++23 constructs in code compiled with an older standard.
482 Wcast-function-type
483 C ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra)
484 Warn about casts between incompatible function types.
486 Wcast-qual
487 C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
488 Warn about casts which discard qualifiers.
490 Wcatch-value
491 C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
492 Warn about catch handlers of non-reference type.
494 Wcatch-value=
495 C++ ObjC++ Var(warn_catch_value) Warning Joined RejectNegative UInteger LangEnabledBy(C++ ObjC++,Wall, 1, 0) IntegerRange(0, 3)
496 Warn about catch handlers of non-reference type.
498 Wchar-subscripts
499 C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
500 Warn about subscripts whose type is \"char\".
502 Wchkp
503 C ObjC C++ ObjC++ Warning WarnRemoved
504 Removed in GCC 9.  This switch has no effect.
506 Wclobbered
507 C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
508 Warn about variables that might be changed by \"longjmp\" or \"vfork\".
510 Wcomma-subscript
511 C++ ObjC++ Var(warn_comma_subscript) Warning
512 Warn about uses of a comma operator within a subscripting expression.
514 Wcomment
515 C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
516 Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
518 Wcomments
519 C ObjC C++ ObjC++ Warning Alias(Wcomment)
520 Synonym for -Wcomment.
522 Wconditionally-supported
523 C++ ObjC++ Var(warn_conditionally_supported) Warning
524 Warn for conditionally-supported constructs.
526 Wconversion
527 C ObjC C++ ObjC++ Var(warn_conversion) Warning
528 Warn for implicit type conversions that may change a value.
530 Wconversion-null
531 C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
532 Warn for converting NULL from/to a non-pointer type.
534 Wcpp
535 C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
536 ; Documented in common.opt
538 Wctad-maybe-unsupported
539 C++ ObjC++ Var(warn_ctad_maybe_unsupported) Warning
540 Warn when performing class template argument deduction on a type with no
541 deduction guides.
543 Wctor-dtor-privacy
544 C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
545 Warn when all constructors and destructors are private.
547 Wdangling-else
548 C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
549 Warn about dangling else.
551 Wdate-time
552 C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
553 Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
555 Wdeclaration-after-statement
556 C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
557 Warn when a declaration is found after a statement.
559 Wdelete-incomplete
560 C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
561 Warn when deleting a pointer to incomplete type.
563 Wdelete-non-virtual-dtor
564 C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
565 Warn about deleting polymorphic objects with non-virtual destructors.
567 Wdeprecated
568 C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED)
569 ; Documented in common.opt
571 Wdeprecated-copy
572 C++ ObjC++ Var(warn_deprecated_copy) Warning LangEnabledBy(C++ ObjC++, Wextra)
573 Mark implicitly-declared copy operations as deprecated if the class has a
574 user-provided copy operation.
576 Wdeprecated-copy-dtor
577 C++ ObjC++ Var(warn_deprecated_copy, 2) Warning
578 Mark implicitly-declared copy operations as deprecated if the class has a
579 user-provided copy operation or destructor.
581 Wdeprecated-enum-enum-conversion
582 C++ ObjC++ Var(warn_deprecated_enum_enum_conv) Warning
583 Warn about deprecated arithmetic conversions on operands of enumeration types.
585 Wdeprecated-enum-float-conversion
586 C++ ObjC++ Var(warn_deprecated_enum_float_conv) Warning
587 Warn about deprecated arithmetic conversions on operands where one is of enumeration
588 type and the other is of a floating-point type.
590 Wdesignated-init
591 C ObjC Var(warn_designated_init) Init(1) Warning
592 Warn about positional initialization of structs requiring designated initializers.
594 Wdiscarded-array-qualifiers
595 C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
596 Warn if qualifiers on arrays which are pointer targets are discarded.
598 Wdiscarded-qualifiers
599 C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
600 Warn if type qualifiers on pointers are discarded.
602 Wdiv-by-zero
603 C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
604 Warn about compile-time integer division by zero.
606 Wduplicated-branches
607 C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
608 Warn about duplicated branches in if-else statements.
610 Wduplicated-cond
611 C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
612 Warn about duplicated conditions in an if-else-if chain.
614 Weffc++
615 C++ ObjC++ Var(warn_ecpp) Warning
616 Warn about violations of Effective C++ style rules.
618 Wempty-body
619 C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
620 Warn about an empty body in an if or else statement.
622 Wendif-labels
623 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)
624 Warn about stray tokens after #else and #endif.
626 Wenum-compare
627 C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
628 Warn about comparison of different enum types.
630 Wenum-conversion
631 C ObjC C++ ObjC++ Var(warn_enum_conversion) Init(0) Warning LangEnabledBy(C ObjC,Wextra)
632 Warn about implicit conversion of enum types.
634 Werror
635 C ObjC C++ ObjC++
636 ; Documented in common.opt
638 Werror-implicit-function-declaration
639 C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
640 This switch is deprecated; use -Werror=implicit-function-declaration instead.
642 Wexceptions
643 C++ ObjC++ Var(warn_exceptions) Init(1) Warning
644 Warn when an exception handler is shadowed by another handler.
646 Wextra
647 C ObjC C++ ObjC++ Warning
648 ; in common.opt
650 Wextra-semi
651 C++ ObjC++ Var(warn_extra_semi) Warning
652 Warn about semicolon after in-class function definition.
654 Wfloat-conversion
655 C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
656 Warn for implicit type conversions that cause loss of floating point precision.
658 Wfloat-equal
659 C ObjC C++ ObjC++ Var(warn_float_equal) Warning
660 Warn if testing floating point numbers for equality.
662 Wformat
663 C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
664 Warn about printf/scanf/strftime/strfmon format string anomalies.
666 Wformat-contains-nul
667 C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
668 Warn about format strings that contain NUL bytes.
670 Wformat-diag
671 C ObjC C++ ObjC++ Var(warn_format_diag) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
672 Warn about GCC format strings with strings unsuitable for diagnostics.
674 Wformat-extra-args
675 C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
676 Warn if passing too many arguments to a function for its format string.
678 Wformat-nonliteral
679 C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
680 Warn about format strings that are not literals.
682 Wformat-overflow
683 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-overflow=, 1, 0) IntegerRange(0, 2)
684 Warn about function calls with format strings that write past the end
685 of the destination region.  Same as -Wformat-overflow=1.
687 Wformat-security
688 C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
689 Warn about possible security problems with format functions.
691 Wformat-signedness
692 C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
693 Warn about sign differences with format functions.
695 Wformat-truncation
696 C ObjC C++ LTO ObjC++ Warning Alias(Wformat-truncation=, 1, 0)
697 Warn about calls to snprintf and similar functions that truncate output.
698 Same as -Wformat-truncation=1.
700 Wformat-y2k
701 C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
702 Warn about strftime formats yielding 2-digit years.
704 Wformat-zero-length
705 C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
706 Warn about zero-length formats.
708 Wformat=
709 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
710 Warn about printf/scanf/strftime/strfmon format string anomalies.
712 Wformat-overflow=
713 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
714 Warn about function calls with format strings that write past the end
715 of the destination region.
717 Wformat-truncation=
718 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
719 Warn about calls to snprintf and similar functions that truncate output.
721 Wif-not-aligned
722 C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
723 Warn when the field in a struct is not aligned.
725 Wignored-qualifiers
726 C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
727 Warn whenever type qualifiers are ignored.
729 Wignored-attributes
730 C C++ Var(warn_ignored_attributes) Init(1) Warning
731 Warn whenever attributes are ignored.
733 Winaccessible-base
734 C++ ObjC++ Var(warn_inaccessible_base) Init(1) Warning
735 Warn when a base is inaccessible in derived due to ambiguity.
737 Wincompatible-pointer-types
738 C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
739 Warn when there is a conversion between pointers that have incompatible types.
741 Winfinite-recursion
742 C ObjC C++ LTO ObjC++ Var(warn_infinite_recursion) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
743 Warn for infinitely recursive calls.
745 Waddress-of-packed-member
746 C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning
747 Warn when the address of packed member of struct or union is taken.
749 Winit-self
750 C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
751 Warn about variables which are initialized to themselves.
753 Winit-list-lifetime
754 C++ ObjC++ Var(warn_init_list) Warning Init(1)
755 Warn about uses of std::initializer_list that can result in dangling pointers.
757 Winterference-size
758 C++ ObjC++ Var(warn_interference_size) Warning Init(1)
759 Warn about nonsensical values of --param destructive-interference-size or
760 constructive-interference-size.
762 Wimplicit
763 C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
764 Warn about implicit declarations.
766 Wimplicit-fallthrough=
767 LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
768 ; in common.opt
770 Wdouble-promotion
771 C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
772 Warn about implicit conversions from \"float\" to \"double\".
774 Wexpansion-to-defined
775 C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
776 Warn if \"defined\" is used outside #if.
778 Wimplicit-function-declaration
779 C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
780 Warn about implicit function declarations.
782 Wimplicit-int
783 C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
784 Warn when a declaration does not specify a type.
786 Wimport
787 C ObjC C++ ObjC++ Undocumented Ignore
789 Winherited-variadic-ctor
790 C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
791 Warn about C++11 inheriting constructors when the base has a variadic constructor.
793 Wint-conversion
794 C ObjC Var(warn_int_conversion) Init(1) Warning
795 Warn about incompatible integer to pointer and pointer to integer conversions.
797 Wint-in-bool-context
798 C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
799 Warn for suspicious integer expressions in boolean context.
801 Wint-to-pointer-cast
802 C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
803 Warn when there is a cast to a pointer from an integer of a different size.
805 Winvalid-offsetof
806 C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
807 Warn about invalid uses of the \"offsetof\" macro.
809 Winvalid-pch
810 C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
811 Warn about PCH files that are found but not used.
813 Wjump-misses-init
814 C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
815 Warn when a jump misses a variable initialization.
817 Wliteral-suffix
818 C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
819 Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
821 Wlogical-op
822 C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
823 Warn when a logical operator is suspiciously always evaluating to true or false.
825 Wlogical-not-parentheses
826 C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
827 Warn when logical not is used on the left hand side operand of a comparison.
829 Wlong-long
830 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)
831 Do not warn about using \"long long\" when -pedantic.
833 Wmain
834 C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
835 Warn about suspicious declarations of \"main\".
837 Wmain
838 LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
841 Wmemset-transposed-args
842 C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
843 Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
845 Wmemset-elt-size
846 C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
847 Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
849 Wmisleading-indentation
850 C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
851 Warn when the indentation of the code does not reflect the block structure.
853 Wmismatched-dealloc
854 C ObjC C++ ObjC++ Var(warn_mismatched_alloc) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
855 Warn for deallocation calls with arguments returned from mismatched allocation
856 functions.
858 Wmismatched-new-delete
859 C++ ObjC++ Var(warn_mismatched_new_delete) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
860 Warn for mismatches between calls to operator new or delete and the corresponding
861 call to the allocation or deallocation function.
863 Wmismatched-tags
864 C++ ObjC++ Var(warn_mismatched_tags) Warning
865 Warn when a class is redeclared or referenced using a mismatched class-key.
867 Wmissing-braces
868 C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
869 Warn about possibly missing braces around initializers.
871 Wmissing-declarations
872 C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
873 Warn about global functions without previous declarations.
875 Wmissing-field-initializers
876 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
877 Warn about missing fields in struct initializers.
879 Wmissing-requires
880 C++ ObjC++ Var(warn_missing_requires) Init(1) Warning
881 Warn about likely missing requires keyword.
883 Wmultistatement-macros
884 C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
885 Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
887 Wmultiple-inheritance
888 C++ ObjC++ Var(warn_multiple_inheritance) Warning
889 Warn on direct multiple inheritance.
891 Wnamespaces
892 C++ ObjC++ Var(warn_namespaces) Warning
893 Warn on namespace definition.
895 Wpacked-not-aligned
896 C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
897 Warn when fields in a struct with the packed attribute are misaligned.
899 Wrange-loop-construct
900 C++ ObjC++ Var(warn_range_loop_construct) Warning LangEnabledBy(C++ ObjC++,Wall)
901 Warn when a range-based for-loop is creating unnecessary copies.
903 Wredundant-tags
904 C++ ObjC++ Var(warn_redundant_tags) Warning
905 Warn when a class or enumerated type is referenced using a redundant class-key.
907 Wsized-deallocation
908 C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
909 Warn about missing sized deallocation functions.
911 Wsizeof-pointer-div
912 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
913 Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
915 Wsizeof-array-div
916 C ObjC C++ ObjC++ Var(warn_sizeof_array_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
917 Warn about divisions of two sizeof operators when the first one is applied
918 to an array and the divisor does not equal the size of the array element.
920 Wsizeof-pointer-memaccess
921 C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
922 Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
924 Wsizeof-array-argument
925 C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
926 Warn when sizeof is applied on a parameter declared as an array.
928 Wstring-compare
929 C ObjC C++ LTO ObjC++ Warning Var(warn_string_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra)
930 Warn about calls to strcmp and strncmp used in equality expressions that
931 are necessarily true or false due to the length of one and size of the other
932 argument.
934 Wstringop-overflow
935 C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
936 Warn about buffer overflow in string manipulation functions like memcpy
937 and strcpy.
939 Wstringop-overflow=
940 C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4)
941 Under the control of Object Size type, warn about buffer overflow in string
942 manipulation functions like memcpy and strcpy.
944 Wstringop-overread
945 C ObjC C++ LTO ObjC++ Var(warn_stringop_overread) Init(1) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
946 Warn about reading past the end of a source array in string manipulation functions like memchr and memcpy.
948 Wstringop-truncation
949 C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
950 Warn about truncation in string manipulation functions like strncat and strncpy.
952 Wsuggest-attribute=format
953 C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
954 Warn about functions which might be candidates for format attributes.
956 Wsuggest-override
957 C++ ObjC++ Var(warn_override) Warning
958 Suggest that the override keyword be used when the declaration of a virtual
959 function overrides another.
961 Wswitch
962 C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
963 Warn about enumerated switches, with no default, missing a case.
965 Wswitch-default
966 C ObjC C++ ObjC++ Var(warn_switch_default) Warning
967 Warn about enumerated switches missing a \"default:\" statement.
969 Wswitch-enum
970 C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
971 Warn about all enumerated switches missing a specific case.
973 Wswitch-bool
974 C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
975 Warn about switches with boolean controlling expression.
977 Wswitch-outside-range
978 C ObjC C++ ObjC++ Var(warn_switch_outside_range) Warning Init(1)
979 Warn about switch values that are outside of the switch's type range.
981 Wtemplates
982 C++ ObjC++ Var(warn_templates) Warning
983 Warn on primary template declaration.
985 Wmissing-attributes
986 C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
987 Warn about declarations of entities that may be missing attributes
988 that related entities have been declared with.
990 Wmissing-format-attribute
991 C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
994 Wmissing-include-dirs
995 C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
996 Warn about user-specified include directories that do not exist.
998 Wmissing-parameter-type
999 C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
1000 Warn about function parameters declared without a type specifier in K&R-style functions.
1002 Wmissing-prototypes
1003 C ObjC Var(warn_missing_prototypes) Warning
1004 Warn about global functions without prototypes.
1006 Wmudflap
1007 C ObjC C++ ObjC++ WarnRemoved
1009 Wmultichar
1010 C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
1011 Warn about use of multi-character character constants.
1013 Wnarrowing
1014 C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
1015 Warn about narrowing conversions within { } that are ill-formed in C++11.
1017 Wnested-externs
1018 C ObjC Var(warn_nested_externs) Warning
1019 Warn about \"extern\" declarations not at file scope.
1021 Wnoexcept
1022 C++ ObjC++ Var(warn_noexcept) Warning
1023 Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
1025 Wnoexcept-type
1026 C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
1027 Warn if C++17 noexcept function type will change the mangled name of a symbol.
1029 Wnon-template-friend
1030 C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
1031 Warn when non-templatized friend functions are declared within a template.
1033 Wclass-conversion
1034 C++ ObjC++ Var(warn_class_conversion) Init(1) Warning
1035 Warn when a conversion function will never be called due to the type it converts to.
1037 Wclass-memaccess
1038 C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
1039 Warn for unsafe raw memory writes to objects of class types.
1041 Wnon-virtual-dtor
1042 C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
1043 Warn about non-virtual destructors.
1045 Wnonnull
1046 C ObjC C++ LTO ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=,warn_format >= 1,0)
1047 Warn about NULL being passed to argument slots marked as requiring non-NULL.
1049 Wnonnull
1050 C ObjC C++ LTO ObjC++ LangEnabledBy(C ObjC C++ LTO ObjC++,Wall)
1053 Wnonnull-compare
1054 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1057 Wnormalized
1058 C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
1061 Wnormalized=
1062 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)
1063 -Wnormalized=[none|id|nfc|nfkc] Warn about non-normalized Unicode strings.
1065 ; Required for these enum values.
1066 SourceInclude
1067 cpplib.h
1069 Enum
1070 Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
1072 EnumValue
1073 Enum(cpp_normalize_level) String(none) Value(normalized_none)
1075 EnumValue
1076 Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
1078 EnumValue
1079 Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
1081 EnumValue
1082 Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
1084 Wobjc-root-class
1085 ObjC ObjC++ Var(warn_objc_root_class) Warning Init(1)
1086 Warn if a class interface has no superclass.  Root classes may use an attribute
1087 to suppress this warning.
1089 Wold-style-cast
1090 C++ ObjC++ Var(warn_old_style_cast) Warning
1091 Warn if a C-style cast is used in a program.
1093 Wold-style-declaration
1094 C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
1095 Warn for obsolescent usage in a declaration.
1097 Wold-style-definition
1098 C ObjC Var(warn_old_style_definition) Init(-1) Warning
1099 Warn if an old-style parameter definition is used.
1101 Wopenacc-parallelism
1102 C C++ Var(warn_openacc_parallelism) Warning
1103 Warn about potentially suboptimal choices related to OpenACC parallelism.
1105 Wopenmp-simd
1106 C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
1107 Warn if a simd directive is overridden by the vectorizer cost model.
1109 Woverlength-strings
1110 C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
1111 Warn if a string is longer than the maximum portable length specified by the standard.
1113 Woverloaded-virtual
1114 C++ ObjC++ Var(warn_overloaded_virtual) Warning
1115 Warn about overloaded virtual function names.
1117 Woverride-init
1118 C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
1119 Warn about overriding initializers without side effects.
1121 Woverride-init-side-effects
1122 C ObjC Var(warn_override_init_side_effects) Init(1) Warning
1123 Warn about overriding initializers with side effects.
1125 Wpacked-bitfield-compat
1126 C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
1127 Warn about packed bit-fields whose offset changed in GCC 4.4.
1129 Wparentheses
1130 C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1131 Warn about possibly missing parentheses.
1133 Wpedantic
1134 C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
1135 ; Documented in common.opt
1137 Wpessimizing-move
1138 C++ ObjC++ Var(warn_pessimizing_move) Warning LangEnabledBy(C++ ObjC++, Wall)
1139 Warn about calling std::move on a local object in a return statement preventing copy elision.
1141 Wpmf-conversions
1142 C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
1143 Warn when converting the type of pointers to member functions.
1145 Wpointer-arith
1146 C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
1147 Warn about function pointer arithmetic.
1149 Wpointer-sign
1150 C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
1151 Warn when a pointer differs in signedness in an assignment.
1153 Wpointer-compare
1154 C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning
1155 Warn when a pointer is compared with a zero character constant.
1157 Wpointer-to-int-cast
1158 C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
1159 Warn when a pointer is cast to an integer of a different size.
1161 Wpragmas
1162 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
1163 Warn about misuses of pragmas.
1165 Wprio-ctor-dtor
1166 C ObjC C++ ObjC++ Var(warn_prio_ctor_dtor) Init(1) Warning
1167 Warn if constructor or destructors with priorities from 0 to 100 are used.
1169 Wproperty-assign-default
1170 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
1171 Warn if a property for an Objective-C object has no assign semantics specified.
1173 Wprotocol
1174 ObjC ObjC++ Var(warn_protocol) Init(1) Warning
1175 Warn if inherited methods are unimplemented.
1177 Wplacement-new
1178 C++ Warning Alias(Wplacement-new=, 1, 0)
1179 Warn for placement new expressions with undefined behavior.
1181 Wplacement-new=
1182 C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
1183 Warn for placement new expressions with undefined behavior.
1185 Wredundant-decls
1186 C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
1187 Warn about multiple declarations of the same object.
1189 Wredundant-move
1190 C++ ObjC++ Var(warn_redundant_move) Warning LangEnabledBy(C++ ObjC++,Wextra)
1191 Warn about redundant calls to std::move.
1193 Wregister
1194 C++ ObjC++ Var(warn_register) Warning
1195 Warn about uses of register storage specifier.
1197 Wreorder
1198 C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
1199 Warn when the compiler reorders code.
1201 Wreturn-type
1202 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
1203 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
1205 Wscalar-storage-order
1206 C ObjC C++ ObjC++ Var(warn_scalar_storage_order) Init(1) Warning
1207 Warn on suspicious constructs involving reverse scalar storage order.
1209 Wselector
1210 ObjC ObjC++ Var(warn_selector) Warning
1211 Warn if a selector has multiple methods.
1213 Wsequence-point
1214 C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1215 Warn about possible violations of sequence point rules.
1217 Wshadow-ivar
1218 ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
1219 Warn if a local declaration hides an instance variable.
1221 Wshift-overflow
1222 C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
1223 Warn if left shift of a signed value overflows.
1225 Wshift-overflow=
1226 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning IntegerRange(0, 2)
1227 Warn if left shift of a signed value overflows.
1229 Wshift-count-negative
1230 C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
1231 Warn if shift count is negative.
1233 Wshift-count-overflow
1234 C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
1235 Warn if shift count >= width of type.
1237 Wshift-negative-value
1238 C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
1239 Warn if left shifting a negative value.
1241 Warith-conversion
1242 C ObjC C++ ObjC++ Var(warn_arith_conv) Warning
1243 Warn if conversion of the result of arithmetic might change the value even though converting the operands cannot.
1245 Wsign-compare
1246 C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
1247 Warn about signed-unsigned comparisons.
1249 Wsign-compare
1250 C ObjC C++ ObjC++ EnabledBy(Wextra)
1253 Wsign-conversion
1254 C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
1255 Warn for implicit type conversions between signed and unsigned integers.
1257 Wsign-promo
1258 C++ ObjC++ Var(warn_sign_promo) Warning
1259 Warn when overload promotes from unsigned to signed.
1261 Wstrict-null-sentinel
1262 C++ ObjC++ Warning Var(warn_strict_null_sentinel)
1263 Warn about uncasted NULL used as sentinel.
1265 Wstrict-prototypes
1266 C ObjC Var(warn_strict_prototypes) Warning
1267 Warn about unprototyped function declarations.
1269 Wstrict-aliasing=
1270 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
1273 Wstrict-overflow=
1274 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
1277 Wstrict-selector-match
1278 ObjC ObjC++ Var(warn_strict_selector_match) Warning
1279 Warn if type signatures of candidate methods do not match exactly.
1281 Wsync-nand
1282 C C++ Var(warn_sync_nand) Init(1) Warning
1283 Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
1285 Wsynth
1286 C++ ObjC++ Var(warn_synth) Warning
1287 Deprecated.  This switch has no effect.
1289 Wsystem-headers
1290 C ObjC C++ ObjC++ Warning
1291 ; Documented in common.opt
1293 Wtautological-compare
1294 C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1295 Warn if a comparison always evaluates to true or false.
1297 Wterminate
1298 C++ ObjC++ Warning Var(warn_terminate) Init(1)
1299 Warn if a throw expression will always result in a call to terminate().
1301 Wtraditional
1302 C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
1303 Warn about features not present in traditional C.
1305 Wtraditional-conversion
1306 C ObjC Var(warn_traditional_conversion) Warning
1307 Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
1309 Wtrigraphs
1310 C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1311 Warn if trigraphs are encountered that might affect the meaning of the program.
1313 Wundeclared-selector
1314 ObjC ObjC++ Var(warn_undeclared_selector) Warning
1315 Warn about @selector()s without previously declared methods.
1317 Wundef
1318 C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
1319 Warn if an undefined macro is used in an #if directive.
1321 Wuninitialized
1322 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1325 Wmaybe-uninitialized
1326 C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
1329 Wunknown-pragmas
1330 C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
1331 Warn about unrecognized pragmas.
1333 Wunsuffixed-float-constants
1334 C ObjC Var(warn_unsuffixed_float_constants) Warning
1335 Warn about unsuffixed float constants.
1337 Wunused
1338 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1339 ; documented in common.opt
1341 Wunused-local-typedefs
1342 C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
1343 Warn when typedefs locally defined in a function are not used.
1345 Wunused-macros
1346 C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
1347 Warn about macros defined in the main file that are not used.
1349 Wunused-result
1350 C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
1351 Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
1353 Wunused-variable
1354 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1355 ; documented in common.opt
1357 Wunused-const-variable
1358 C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1359 Warn when a const variable is unused.
1361 Wunused-const-variable=
1362 C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
1363 Warn when a const variable is unused.
1365 Wvariadic-macros
1366 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)
1367 Warn about using variadic macros.
1369 Wvarargs
1370 C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
1371 Warn about questionable usage of the macros used to retrieve variable arguments.
1373 Wvexing-parse
1374 C++ ObjC++ Warning Var(warn_vexing_parse) Init(1)
1375 Warn about the most vexing parse syntactic ambiguity.
1377 Wvla
1378 C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
1379 Warn if a variable length array is used.
1381 Wvla-larger-than=
1382 C ObjC C++ LTO ObjC++ Var(warn_vla_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
1383 -Wvla-larger-than=<number>      Warn on unbounded uses of variable-length
1384 arrays, and on bounded uses of variable-length arrays whose bound can be
1385 larger than <number> bytes.
1387 Wno-vla-larger-than
1388 C ObjC C++ LTO ObjC++ Alias(Wvla-larger-than=,18446744073709551615EiB,none) Warning
1389 Disable Wvla-larger-than= warning.  Equivalent to Wvla-larger-than=<SIZE_MAX> or larger.
1391 Wvla-parameter
1392 C ObjC C++ ObjC++ Var(warn_vla_parameter) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1393 Warn about mismatched declarations of VLA parameters.
1395 Wvolatile
1396 C++ ObjC++ Var(warn_volatile) Warning
1397 Warn about deprecated uses of volatile qualifier.
1399 Wvolatile-register-var
1400 C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
1401 Warn when a register variable is declared volatile.
1403 Wvirtual-inheritance
1404 C++ ObjC++ Var(warn_virtual_inheritance) Warning
1405 Warn on direct virtual inheritance.
1407 Wvirtual-move-assign
1408 C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
1409 Warn if a virtual base has a non-trivial move assignment operator.
1411 Wwrite-strings
1412 C ObjC C++ ObjC++ Var(warn_write_strings) Warning
1413 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.
1415 Wzero-as-null-pointer-constant
1416 C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
1417 Warn when a literal '0' is used as null pointer.
1419 Wuseless-cast
1420 C++ ObjC++ Var(warn_useless_cast) Warning
1421 Warn about useless casts.
1423 Wsubobject-linkage
1424 C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
1425 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.
1427 Wduplicate-decl-specifier
1428 C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1429 Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1431 Wrestrict
1432 C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
1433 Warn when an argument passed to a restrict-qualified parameter aliases with
1434 another argument.
1436 ansi
1437 C ObjC C++ ObjC++
1438 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
1441 C ObjC C++ ObjC++ Joined
1442 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
1444 fabi-compat-version=
1445 C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
1446 The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
1448 faccess-control
1449 C++ ObjC++ Var(flag_access_control) Init(1)
1450 Enforce class member access control semantics.
1452 fada-spec-parent=
1453 C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
1454 -fada-spec-parent=unit  Dump Ada specs as child units of given parent.
1456 faligned-new
1457 C++ ObjC++ Alias(faligned-new=,1,0)
1458 Support C++17 allocation of over-aligned types.
1460 faligned-new=
1461 C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
1462 -faligned-new=<N>       Use C++17 over-aligned type allocation for alignments greater than N.
1464 fall-virtual
1465 C++ ObjC++ WarnRemoved
1467 fallow-parameterless-variadic-functions
1468 C ObjC Var(flag_allow_parameterless_variadic_functions)
1469 Allow variadic functions without named parameter.
1471 falt-external-templates
1472 C++ ObjC++ WarnRemoved
1473 No longer supported.
1475 fasm
1476 C ObjC C++ ObjC++ Var(flag_no_asm, 0)
1477 Recognize the \"asm\" keyword.
1479 ; Define extra predefined macros for use in libgcc.
1480 fbuilding-libgcc
1481 C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1483 fbuiltin
1484 C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
1485 Recognize built-in functions.
1487 fbuiltin-
1488 C ObjC C++ ObjC++ Joined
1490 fcanonical-system-headers
1491 C ObjC C++ ObjC++
1492 Where shorter, use canonicalized paths to systems headers.
1494 fchar8_t
1495 C++ ObjC++ Var(flag_char8_t) Init(-1)
1496 Enable the char8_t fundamental type and use it as the type for UTF-8 string
1497 and character literals.
1499 fcheck-pointer-bounds
1500 C ObjC C++ ObjC++ LTO WarnRemoved
1501 Removed in GCC 9.  This switch has no effect.
1503 fchkp-check-incomplete-type
1504 C ObjC C++ ObjC++ LTO WarnRemoved
1505 Removed in GCC 9.  This switch has no effect.
1507 fchkp-zero-input-bounds-for-main
1508 C ObjC C++ ObjC++ LTO WarnRemoved
1509 Removed in GCC 9.  This switch has no effect.
1511 fchkp-first-field-has-own-bounds
1512 C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative
1513 Removed in GCC 9.  This switch has no effect.
1515 fchkp-narrow-bounds
1516 C ObjC C++ ObjC++ LTO WarnRemoved
1517 Removed in GCC 9.  This switch has no effect.
1519 fchkp-narrow-to-innermost-array
1520 C ObjC C++ ObjC++ LTO WarnRemoved RejectNegative
1521 Removed in GCC 9.  This switch has no effect.
1523 fchkp-flexible-struct-trailing-arrays
1524 C ObjC C++ ObjC++ LTO WarnRemoved
1525 Removed in GCC 9.  This switch has no effect.
1527 fchkp-optimize
1528 C ObjC C++ ObjC++ LTO WarnRemoved
1530 fchkp-use-fast-string-functions
1531 C ObjC C++ ObjC++ LTO WarnRemoved
1532 Removed in GCC 9.  This switch has no effect.
1534 fchkp-use-nochk-string-functions
1535 C ObjC C++ ObjC++ LTO WarnRemoved
1536 Removed in GCC 9.  This switch has no effect.
1538 fchkp-use-static-bounds
1539 C ObjC C++ ObjC++ LTO WarnRemoved
1540 Removed in GCC 9.  This switch has no effect.
1542 fchkp-use-static-const-bounds
1543 C ObjC C++ ObjC++ LTO WarnRemoved
1544 Removed in GCC 9.  This switch has no effect.
1546 fchkp-treat-zero-dynamic-size-as-infinite
1547 C ObjC C++ ObjC++ LTO WarnRemoved
1548 Removed in GCC 9.  This switch has no effect.
1550 fchkp-check-read
1551 C ObjC C++ ObjC++ LTO WarnRemoved
1552 Removed in GCC 9.  This switch has no effect.
1554 fchkp-check-write
1555 C ObjC C++ ObjC++ LTO WarnRemoved
1556 Removed in GCC 9.  This switch has no effect.
1558 fchkp-store-bounds
1559 C ObjC C++ ObjC++ LTO WarnRemoved
1560 Removed in GCC 9.  This switch has no effect.
1562 fchkp-instrument-calls
1563 C ObjC C++ ObjC++ LTO WarnRemoved
1564 Removed in GCC 9.  This switch has no effect.
1566 fchkp-instrument-marked-only
1567 C ObjC C++ ObjC++ LTO WarnRemoved
1568 Removed in GCC 9.  This switch has no effect.
1570 fchkp-use-wrappers
1571 C ObjC C++ ObjC++ LTO WarnRemoved
1572 Removed in GCC 9.  This switch has no effect.
1574 static-libmpx
1575 Driver WarnRemoved
1576 Removed in GCC 9.  This switch has no effect.
1578 static-libmpxwrappers
1579 Driver WarnRemoved
1580 Removed in GCC 9.  This switch has no effect.
1582 fcilkplus
1583 C ObjC C++ ObjC++ LTO Undocumented Ignore
1584 Removed in GCC 8.  This switch has no effect.
1586 fconcepts
1587 C++ ObjC++ Var(flag_concepts)
1588 Enable support for C++ concepts.
1590 fconcepts-ts
1591 C++ ObjC++ Var(flag_concepts_ts) Init(0)
1592 Enable certain features present in the Concepts TS.
1594 fconcepts-diagnostics-depth=
1595 C++ ObjC++ Joined RejectNegative UInteger Var(concepts_diagnostics_max_depth) Init(1)
1596 Specify maximum error replay depth during recursive diagnosis of a constraint satisfaction failure.
1598 fcond-mismatch
1599 C ObjC C++ ObjC++
1600 Allow the arguments of the '?' operator to have different types.
1602 fconserve-space
1603 C++ ObjC++ Ignore
1604 Does nothing.  Preserved for backward compatibility.
1606 fconstant-string-class=
1607 ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
1608 -fconst-string-class=<name>     Use class <name> for constant strings.
1610 fconstexpr-depth=
1611 C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1612 -fconstexpr-depth=<number>      Specify maximum constexpr recursion depth.
1614 fconstexpr-cache-depth=
1615 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_cache_depth) Init(8)
1616 -fconstexpr-cache-depth=<number>        Specify maximum constexpr recursion cache depth.
1618 fconstexpr-loop-limit=
1619 C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1620 -fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1622 fconstexpr-ops-limit=
1623 C++ ObjC++ Joined RejectNegative Host_Wide_Int Var(constexpr_ops_limit) Init(33554432)
1624 -fconstexpr-ops-limit=<number>  Specify maximum number of constexpr operations during a single constexpr evaluation.
1626 fcoroutines
1627 C++ LTO Var(flag_coroutines)
1628 Enable C++ coroutines (experimental).
1630 fdebug-cpp
1631 C ObjC C++ ObjC++
1632 Emit debug annotations during preprocessing.
1634 fdeduce-init-list
1635 C++ ObjC++ Ignore
1636 Does nothing.  Preserved for backward compatibility.
1638 fdeclone-ctor-dtor
1639 C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1640 Factor complex constructors and destructors to favor space over speed.
1642 fdefault-inline
1643 C++ ObjC++ Ignore
1644 Does nothing.  Preserved for backward compatibility.
1646 fdiagnostics-show-template-tree
1647 C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
1648 Print hierarchical comparisons when template types are mismatched.
1650 fdirectives-only
1651 C ObjC C++ ObjC++
1652 Preprocess directives only.
1654 fdollars-in-identifiers
1655 C ObjC C++ ObjC++
1656 Permit '$' as an identifier character.
1658 fmacro-prefix-map=
1659 C ObjC C++ ObjC++ Joined RejectNegative
1660 -fmacro-prefix-map=<old>=<new>  Map one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE().
1662 fdump-ada-spec
1663 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1664 Write all declarations as Ada code transitively.
1666 fdump-ada-spec-slim
1667 C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1668 Write all declarations as Ada code for the given file only.
1670 felide-constructors
1671 C++ ObjC++ Var(flag_elide_constructors) Init(1)
1673 felide-type
1674 C++ ObjC++ Var(flag_elide_type) Init(1)
1675 Do not elide common elements in template comparisons.
1677 fenforce-eh-specs
1678 C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
1679 Generate code to check exception specifications.
1681 fenum-int-equiv
1682 C++ ObjC++ WarnRemoved
1684 fexec-charset=
1685 C ObjC C++ ObjC++ Joined RejectNegative
1686 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>.
1688 fextended-identifiers
1689 C ObjC C++ ObjC++
1690 Permit universal character names (\\u and \\U) in identifiers.
1692 finput-charset=
1693 C ObjC C++ ObjC++ Joined RejectNegative
1694 -finput-charset=<cset>  Specify the default character set for source files.
1696 fextern-tls-init
1697 C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1698 Support dynamic initialization of thread-local variables in a different translation unit.
1700 fexternal-templates
1701 C++ ObjC++ WarnRemoved
1703 ffor-scope
1704 C++ ObjC++ WarnRemoved
1706 ffreestanding
1707 C ObjC C++ ObjC++
1708 Do not assume that standard C libraries and \"main\" exist.
1710 fgnu-keywords
1711 C++ ObjC++ Var(flag_no_gnu_keywords, 0)
1712 Recognize GNU-defined keywords.
1714 fgnu-runtime
1715 ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
1716 Generate code for GNU runtime environment.
1718 fgnu89-inline
1719 C ObjC Var(flag_gnu89_inline) Init(-1)
1720 Use traditional GNU semantics for inline functions.
1722 fguiding-decls
1723 C++ ObjC++ WarnRemoved
1725 fhandle-exceptions
1726 C++ ObjC++ Optimization Alias(fexceptions) Warn({%<-fhandle-exceptions%> has been renamed %<-fexceptions%> (and is now on by default)})
1728 fhonor-std
1729 C++ ObjC++ WarnRemoved
1731 fhosted
1732 C ObjC
1733 Assume normal C execution environment.
1735 fhuge-objects
1736 C++ ObjC++ WarnRemoved
1737 No longer supported.
1739 fimplement-inlines
1740 C++ ObjC++ Var(flag_implement_inlines) Init(1)
1741 Export functions even if they can be inlined.
1743 fimplicit-constexpr
1744 C++ ObjC++ Var(flag_implicit_constexpr)
1745 Make inline functions constexpr by default.
1747 fimplicit-inline-templates
1748 C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
1749 Emit implicit instantiations of inline templates.
1751 fimplicit-templates
1752 C++ ObjC++ Var(flag_implicit_templates) Init(1)
1753 Emit implicit instantiations of templates.
1755 fnew-inheriting-ctors
1756 C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1757 Implement C++17 inheriting constructor semantics.
1759 ffriend-injection
1760 C++ ObjC++ WarnRemoved
1762 fkeep-inline-dllexport
1763 C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1764 Don't emit dllexported inline functions unless needed.
1766 flabels-ok
1767 C++ ObjC++ WarnRemoved
1769 flax-vector-conversions
1770 C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
1771 Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1773 fmodules-ts
1774 C++ ObjC++ Var(flag_modules) Integer Init(0)
1775 Enable C++ modules-ts (experimental).
1777 fno-modules
1778 C++ ObjC++ Undocumented RejectNegative Var(flag_modules,0) Integer
1779 ;; undocumented
1781 fmodule-header
1782 C++ ObjC RejectNegative Var(flag_header_unit,0) Integer
1783 Enable C++ header module (experimental).
1785 fmodule-header=
1786 C++ ObjC++ Joined RejectNegative Undocumented
1788 fmodule-implicit-inline
1789 C++ ObjC++ Var(flag_module_implicit_inline,0) Integer
1790 Member functions defined within their class are inline in module purview.
1792 fmodule-only
1793 C++ ObjC RejectNegative Var(flag_module_only) Integer
1794 Only emit Compiled Module Interface.
1796 fmodule-mapper=
1797 C++ ObjC++ Joined RejectNegative MissingArgError(missing mapper)
1798 Mapper for module to CMI files.
1800 fmodule-lazy
1801 C++ ObjC++ Var(flag_module_lazy) Init(1)
1802 Enable lazy module importing.
1804 fmodule-version-ignore
1805 C++ ObjC Var(flag_module_version_ignore) Integer
1806 ; undocumented, Very dangerous, but occasionally useful
1808 Winvalid-imported-macros
1809 C++ ObjC++ Var(warn_imported_macros) Warning
1810 Warn about macros that have conflicting header units definitions.
1812 flang-info-include-translate
1813 C++ Var(note_include_translate_yes)
1814 Note #include directives translated to import declarations.
1816 flang-info-include-translate-not
1817 C++ Var(note_include_translate_no)
1818 Note #include directives not translated to import declarations, and not known to be textual.
1820 flang-info-include-translate=
1821 C++ Joined RejectNegative MissingArgError(missing header name)
1822 Note a #include translation of a specific header.
1824 flang-info-module-cmi
1825 C++ Var(note_module_cmi_yes)
1826 Note Compiled Module Interface pathnames.
1828 flang-info-module-cmi=
1829 C++ Joined RejectNegative MissingArgError(missing module name)
1830 Note Compiled Module Interface pathname of a specific module or header-unit.
1832 fmax-include-depth=
1833 C ObjC C++ ObjC++ Joined RejectNegative UInteger
1834 fmax-include-depth=<number> Set the maximum depth of the nested #include.
1836 fms-extensions
1837 C ObjC C++ ObjC++ Var(flag_ms_extensions)
1838 Don't warn about uses of Microsoft extensions.
1840 fmudflap
1841 C ObjC C++ ObjC++ WarnRemoved
1843 fmudflapth
1844 C ObjC C++ ObjC++ WarnRemoved
1846 fmudflapir
1847 C ObjC C++ ObjC++ WarnRemoved
1849 fname-mangling-version-
1850 C++ ObjC++ Joined WarnRemoved
1852 fnew-abi
1853 C++ ObjC++ WarnRemoved
1855 fnew-ttp-matching
1856 C++ ObjC++ Var(flag_new_ttp)
1857 Implement resolution of DR 150 for matching of template template arguments.
1859 fnext-runtime
1860 ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime)
1861 Generate code for NeXT (Apple Mac OS X) runtime environment.
1863 fnil-receivers
1864 ObjC ObjC++ Var(flag_nil_receivers) Init(1)
1865 Assume that receivers of Objective-C messages may be nil.
1867 flocal-ivars
1868 ObjC ObjC++ Var(flag_local_ivars) Init(1)
1869 Allow access to instance variables as if they were local declarations within instance method implementations.
1871 fivar-visibility=
1872 ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1873 -fvisibility=[private|protected|public|package] Set the default symbol visibility.
1875 Enum
1876 Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1878 EnumValue
1879 Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1881 EnumValue
1882 Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1884 EnumValue
1885 Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1887 EnumValue
1888 Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1890 fnonansi-builtins
1891 C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
1893 fnonnull-objects
1894 C++ ObjC++ WarnRemoved
1896 fnothrow-opt
1897 C++ ObjC++ Optimization Var(flag_nothrow_opt)
1898 Treat a throw() exception specification as noexcept to improve code size.
1900 fobjc-abi-version=
1901 ObjC ObjC++ LTO Joined RejectNegative UInteger Var(flag_objc_abi)
1902 Specify which ABI to use for Objective-C family code and meta-data generation.
1904 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1905 ; to initialize any non-POD ivars in Objective-C++ classes.
1906 fobjc-call-cxx-cdtors
1907 ObjC++ Var(flag_objc_call_cxx_cdtors)
1908 Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
1910 fobjc-direct-dispatch
1911 ObjC ObjC++ Var(flag_objc_direct_dispatch)
1912 Allow fast jumps to the message dispatcher.
1914 ; Nonzero means that we will allow new ObjC exception syntax (@throw,
1915 ; @try, etc.) in source code.
1916 fobjc-exceptions
1917 ObjC ObjC++ Var(flag_objc_exceptions)
1918 Enable Objective-C exception and synchronization syntax.
1920 fobjc-gc
1921 ObjC ObjC++ LTO Var(flag_objc_gc)
1922 Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
1924 fobjc-nilcheck
1925 ObjC ObjC++ Var(flag_objc_nilcheck,1)
1926 Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1928 ; Nonzero means that we generate NeXT setjmp based exceptions.
1929 fobjc-sjlj-exceptions
1930 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
1931 Enable Objective-C setjmp exception handling runtime.
1933 fobjc-std=objc1
1934 ObjC ObjC++ Var(flag_objc1_only)
1935 Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
1937 fopenacc
1938 C ObjC C++ ObjC++ LTO Var(flag_openacc)
1939 Enable OpenACC.
1941 fopenacc-dim=
1942 C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1943 Specify default OpenACC compute dimensions.
1945 fopenmp
1946 C ObjC C++ ObjC++ LTO Var(flag_openmp)
1947 Enable OpenMP (implies -frecursive in Fortran).
1949 fopenmp-simd
1950 C ObjC C++ ObjC++ Var(flag_openmp_simd)
1951 Enable OpenMP's SIMD directives.
1953 foperator-names
1954 C++ ObjC++
1955 Recognize C++ keywords like \"compl\" and \"xor\".
1957 foptional-diags
1958 C++ ObjC++ Ignore
1959 Does nothing.  Preserved for backward compatibility.
1961 fpch-deps
1962 C ObjC C++ ObjC++
1964 fpch-preprocess
1965 C ObjC C++ ObjC++
1966 Look for and use PCH files even when preprocessing.
1968 fpermissive
1969 C++ ObjC++ Var(flag_permissive)
1970 Downgrade conformance errors to warnings.
1972 fplan9-extensions
1973 C ObjC Var(flag_plan9_extensions)
1974 Enable Plan 9 language extensions.
1976 fpreprocessed
1977 C ObjC C++ ObjC++
1978 Treat the input file as already preprocessed.
1980 ftrack-macro-expansion
1981 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1982 ; converted into ftrack-macro-expansion=
1984 ftrack-macro-expansion=
1985 C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1986 -ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
1988 fpretty-templates
1989 C++ ObjC++ Var(flag_pretty_templates) Init(1)
1990 Do not pretty-print template specializations as the template signature followed by the arguments.
1992 fprintf-return-value
1993 C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
1994 Treat known sprintf return values as constants.
1996 freplace-objc-classes
1997 ObjC ObjC++ LTO Var(flag_replace_objc_classes)
1998 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
2000 frepo
2001 C++ ObjC++ WarnRemoved
2002 Removed in GCC 10.  This switch has no effect.
2004 frtti
2005 C++ ObjC++ Optimization Var(flag_rtti) Init(1)
2006 Generate run time type descriptor information.
2008 fshort-enums
2009 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
2010 Use the narrowest integer type possible for enumeration types.
2012 fshort-wchar
2013 C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
2014 Force the underlying type for \"wchar_t\" to be \"unsigned short\".
2016 fsigned-bitfields
2017 C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
2018 When \"signed\" or \"unsigned\" is not given make the bitfield signed.
2020 fsigned-char
2021 C ObjC C++ ObjC++ LTO Var(flag_signed_char)
2022 Make \"char\" signed by default.
2024 fsized-deallocation
2025 C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
2026 Enable C++14 sized deallocation support.
2028 fsquangle
2029 C++ ObjC++ WarnRemoved
2031 fsso-struct=
2032 C ObjC Joined RejectNegative Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
2033 -fsso-struct=[big-endian|little-endian|native]  Set the default scalar storage order.
2035 Enum
2036 Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
2038 EnumValue
2039 Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
2041 EnumValue
2042 Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
2044 EnumValue
2045 Enum(sso_struct) String(native) Value(SSO_NATIVE)
2047 fstats
2048 C++ ObjC++ Var(flag_detailed_statistics)
2049 Display statistics accumulated during compilation.
2051 fstrict-enums
2052 C++ ObjC++ Optimization Var(flag_strict_enums)
2053 Assume that values of enumeration type are always within the minimum range of that type.
2055 fstrict-prototype
2056 C++ ObjC++ WarnRemoved
2058 fstrong-eval-order
2059 C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
2060 Follow the C++17 evaluation order requirements for assignment expressions,
2061 shift, member function calls, etc.
2063 fstrong-eval-order=
2064 C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) RejectNegative Init(-1)
2065 Follow the C++17 evaluation order requirements for assignment expressions,
2066 shift, member function calls, etc.
2068 Enum
2069 Name(strong_eval_order) Type(int)
2071 EnumValue
2072 Enum(strong_eval_order) String(none) Value(0)
2074 EnumValue
2075 Enum(strong_eval_order) String(some) Value(1)
2077 EnumValue
2078 Enum(strong_eval_order) String(all) Value(2)
2080 ftemplate-backtrace-limit=
2081 C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
2082 Set the maximum number of template instantiation notes for a single warning or error.
2084 ftemplate-depth-
2085 C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
2087 ftemplate-depth=
2088 C++ ObjC++ Joined RejectNegative UInteger
2089 -ftemplate-depth=<number>       Specify maximum template instantiation depth.
2091 fthis-is-variable
2092 C++ ObjC++ WarnRemoved
2094 fthreadsafe-statics
2095 C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
2096 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
2098 funsigned-bitfields
2099 C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
2100 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
2102 funsigned-char
2103 C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
2104 Make \"char\" unsigned by default.
2106 fuse-cxa-atexit
2107 C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
2108 Use __cxa_atexit to register destructors.
2110 fuse-cxa-get-exception-ptr
2111 C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
2112 Use __cxa_get_exception_ptr in exception handling.
2114 fvisibility-inlines-hidden
2115 C++ ObjC++
2116 Marks all inlined functions and methods as having hidden visibility.
2118 fvisibility-ms-compat
2119 C++ ObjC++ Var(flag_visibility_ms_compat)
2120 Changes visibility to match Microsoft Visual Studio by default.
2122 fvtable-gc
2123 C++ ObjC++ WarnRemoved
2124 No longer supported.
2126 fvtable-thunks
2127 C++ ObjC++ WarnRemoved 
2128 No longer supported.
2130 fweak
2131 C++ ObjC++ Var(flag_weak) Init(1)
2132 Emit common-like symbols as weak symbols.
2134 fwide-exec-charset=
2135 C ObjC C++ ObjC++ Joined RejectNegative
2136 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>.
2138 fworking-directory
2139 C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
2140 Generate a #line directive pointing at the current working directory.
2142 fxref
2143 C++ ObjC++ WarnRemoved
2144 No longer supported.
2146 fzero-link
2147 ObjC ObjC++ Var(flag_zero_link)
2148 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
2150 gen-decls
2151 ObjC ObjC++ Driver Var(flag_gen_declaration) RejectNegative
2152 Dump declarations to a .decl file.
2154 femit-struct-debug-baseonly
2155 C ObjC C++ ObjC++
2156 -femit-struct-debug-baseonly    Aggressive reduced debug info for structs.
2158 femit-struct-debug-reduced
2159 C ObjC C++ ObjC++
2160 -femit-struct-debug-reduced     Conservative reduced debug info for structs.
2162 femit-struct-debug-detailed=
2163 C ObjC C++ ObjC++ Joined
2164 -femit-struct-debug-detailed=<spec-list>        Detailed reduced debug info for structs.
2166 fext-numeric-literals
2167 C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
2168 Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
2169 number literal rather than a user-defined number literal.
2171 idirafter
2172 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
2173 -idirafter <dir>        Add <dir> to the end of the system include path.
2175 imacros
2176 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
2177 -imacros <file> Accept definition of macros in <file>.
2179 imultilib
2180 C ObjC C++ ObjC++ Joined Separate
2181 -imultilib <dir>        Set <dir> to be the multilib include subdirectory.
2183 include
2184 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
2185 -include <file> Include the contents of <file> before other files.
2187 iprefix
2188 C ObjC C++ ObjC++ Joined Separate
2189 -iprefix <path> Specify <path> as a prefix for next two options.
2191 isysroot
2192 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
2193 -isysroot <dir> Set <dir> to be the system root directory.
2195 isystem
2196 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
2197 -isystem <dir>  Add <dir> to the start of the system include path.
2199 iquote
2200 C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
2201 -iquote <dir>   Add <dir> to the end of the quote include path.
2203 iwithprefix
2204 C ObjC C++ ObjC++ Joined Separate
2205 -iwithprefix <dir>      Add <dir> to the end of the system include path.
2207 iwithprefixbefore
2208 C ObjC C++ ObjC++ Joined Separate
2209 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path.
2211 lang-asm
2212 C Undocumented RejectDriver
2214 no-integrated-cpp
2215 Driver
2217 nostdinc
2218 C ObjC C++ ObjC++
2219 Do not search standard system include directories (those specified with -isystem will still be used).
2221 nostdinc++
2222 C++ ObjC++
2223 Do not search standard system include directories for C++.
2226 C ObjC C++ ObjC++ Joined Separate
2227 ; Documented in common.opt
2229 pedantic
2230 C ObjC C++ ObjC++ Alias(Wpedantic)
2231 ; Documented in common.opt
2233 print-objc-runtime-info
2234 ObjC ObjC++
2235 Generate C header of platform-specific features.
2237 remap
2238 C ObjC C++ ObjC++
2239 Remap file names when including files.
2241 std=c++98
2242 C++ ObjC++
2243 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
2245 std=c++03
2246 C++ ObjC++ Alias(std=c++98)
2247 Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
2249 std=c++11
2250 C++ ObjC++
2251 Conform to the ISO 2011 C++ standard.
2253 std=c++0x
2254 C++ ObjC++ Alias(std=c++11) Undocumented
2255 Deprecated in favor of -std=c++11.
2257 std=c++1y
2258 C++ ObjC++ Alias(std=c++14) Undocumented
2259 Deprecated in favor of -std=c++14.
2261 std=c++14
2262 C++ ObjC++
2263 Conform to the ISO 2014 C++ standard.
2265 std=c++1z
2266 C++ ObjC++ Alias(std=c++17) Undocumented
2267 Deprecated in favor of -std=c++17.
2269 std=c++17
2270 C++ ObjC++
2271 Conform to the ISO 2017 C++ standard.
2273 std=c++2a
2274 C++ ObjC++ Alias(std=c++20) Undocumented
2275 Conform to the ISO 2020 C++ standard (experimental and incomplete support).
2277 std=c++20
2278 C++ ObjC++
2279 Conform to the ISO 2020 C++ standard (experimental and incomplete support).
2281 std=c++2b
2282 C++ ObjC++ Alias(std=c++23)
2283 Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
2285 std=c++23
2286 C++ ObjC++ Undocumented
2287 Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
2289 std=c11
2290 C ObjC
2291 Conform to the ISO 2011 C standard.
2293 std=c1x
2294 C ObjC Alias(std=c11)
2295 Deprecated in favor of -std=c11.
2297 std=c17
2298 C ObjC
2299 Conform to the ISO 2017 C standard (published in 2018).
2301 std=c18
2302 C ObjC Alias(std=c17)
2303 Conform to the ISO 2017 C standard (published in 2018).
2305 std=c2x
2306 C ObjC
2307 Conform to the ISO 202X C standard draft (experimental and incomplete support).
2309 std=c89
2310 C ObjC Alias(std=c90)
2311 Conform to the ISO 1990 C standard.
2313 std=c90
2314 C ObjC
2315 Conform to the ISO 1990 C standard.
2317 std=c99
2318 C ObjC
2319 Conform to the ISO 1999 C standard.
2321 std=c9x
2322 C ObjC Alias(std=c99)
2323 Deprecated in favor of -std=c99.
2325 std=gnu++98
2326 C++ ObjC++
2327 Conform to the ISO 1998 C++ standard revised by the 2003 technical
2328 corrigendum with GNU extensions.
2330 std=gnu++03
2331 C++ ObjC++ Alias(std=gnu++98)
2332 Conform to the ISO 1998 C++ standard revised by the 2003 technical
2333 corrigendum with GNU extensions.
2335 std=gnu++11
2336 C++ ObjC++
2337 Conform to the ISO 2011 C++ standard with GNU extensions.
2339 std=gnu++0x
2340 C++ ObjC++ Alias(std=gnu++11) Undocumented
2341 Deprecated in favor of -std=gnu++11.
2343 std=gnu++1y
2344 C++ ObjC++ Alias(std=gnu++14) Undocumented
2345 Deprecated in favor of -std=gnu++14.
2347 std=gnu++14
2348 C++ ObjC++
2349 Conform to the ISO 2014 C++ standard with GNU extensions.
2351 std=gnu++1z
2352 C++ ObjC++ Alias(std=gnu++17) Undocumented
2353 Deprecated in favor of -std=gnu++17.
2355 std=gnu++17
2356 C++ ObjC++
2357 Conform to the ISO 2017 C++ standard with GNU extensions.
2359 std=gnu++2a
2360 C++ ObjC++ Alias(std=gnu++20) Undocumented
2361 Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
2363 std=gnu++20
2364 C++ ObjC++
2365 Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
2367 std=gnu++2b
2368 C++ ObjC++ Alias(std=gnu++23)
2369 Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
2371 std=gnu++23
2372 C++ ObjC++ Undocumented
2373 Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
2375 std=gnu11
2376 C ObjC
2377 Conform to the ISO 2011 C standard with GNU extensions.
2379 std=gnu1x
2380 C ObjC Alias(std=gnu11)
2381 Deprecated in favor of -std=gnu11.
2383 std=gnu17
2384 C ObjC
2385 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
2387 std=gnu18
2388 C ObjC Alias(std=gnu17)
2389 Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
2391 std=gnu2x
2392 C ObjC
2393 Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support).
2395 std=gnu89
2396 C ObjC Alias(std=gnu90)
2397 Conform to the ISO 1990 C standard with GNU extensions.
2399 std=gnu90
2400 C ObjC
2401 Conform to the ISO 1990 C standard with GNU extensions.
2403 std=gnu99
2404 C ObjC
2405 Conform to the ISO 1999 C standard with GNU extensions.
2407 std=gnu9x
2408 C ObjC Alias(std=gnu99)
2409 Deprecated in favor of -std=gnu99.
2411 std=iso9899:1990
2412 C ObjC Alias(std=c90)
2413 Conform to the ISO 1990 C standard.
2415 std=iso9899:199409
2416 C ObjC
2417 Conform to the ISO 1990 C standard as amended in 1994.
2419 std=iso9899:1999
2420 C ObjC Alias(std=c99)
2421 Conform to the ISO 1999 C standard.
2423 std=iso9899:199x
2424 C ObjC Alias(std=c99)
2425 Deprecated in favor of -std=iso9899:1999.
2427 std=iso9899:2011
2428 C ObjC Alias(std=c11)
2429 Conform to the ISO 2011 C standard.
2431 std=iso9899:2017
2432 C ObjC Alias(std=c17)
2433 Conform to the ISO 2017 C standard (published in 2018).
2435 std=iso9899:2018
2436 C ObjC Alias(std=c17)
2437 Conform to the ISO 2017 C standard (published in 2018).
2439 stdlib=
2440 Driver C++ ObjC++ Common Condition(ENABLE_STDLIB_OPTION) Var(flag_stdlib_kind) Joined Enum(stdlib_kind) RejectNegative Init(1)
2441 -stdlib=[libstdc++|libc++]      The standard library to be used for C++ headers
2442 and runtime.
2444 Enum
2445 Name(stdlib_kind) Type(int)
2447 EnumValue
2448 Enum(stdlib_kind) String(libstdc++) Value(1)
2450 EnumValue
2451 Enum(stdlib_kind) String(libc++) Value(2)
2453 traditional
2454 Driver
2456 traditional-cpp
2457 C ObjC C++ ObjC++
2458 Enable traditional preprocessing.
2460 trigraphs
2461 C ObjC C++ ObjC++
2462 -trigraphs      Support ISO C trigraphs.
2464 undef
2465 C ObjC C++ ObjC++ Var(flag_undef)
2466 Do not predefine system-specific and GCC-specific macros.
2469 C ObjC C++ ObjC++
2470 ; Documented in common.opt
2473 C ObjC C++ ObjC++
2474 ; Documented in common.opt
2476 ; This comment is to ensure we retain the blank line above.