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