]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-family/c.opt
re PR target/72717 (ICE: in emit_move_insn, at expr.c:3693 with vector shift @ powerp...
[thirdparty/gcc.git] / gcc / c-family / c.opt
CommitLineData
fef3106c 1; Options for the C, ObjC, C++ and ObjC++ front ends.
818ab71a 2; Copyright (C) 2003-2016 Free Software Foundation, Inc.
fef3106c
NB
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
9dcd6f09 8; Software Foundation; either version 3, or (at your option) any later
fef3106c 9; version.
c22cacf3 10;
fef3106c
NB
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.
c22cacf3 15;
fef3106c 16; You should have received a copy of the GNU General Public License
9dcd6f09
NC
17; along with GCC; see the file COPYING3. If not see
18; <http://www.gnu.org/licenses/>.
fef3106c 19
8abb6b22 20; See the GCC internals manual for a description of this file's format.
fef3106c 21
fef3106c
NB
22; Please try to keep this file in ASCII collating order.
23
be43ab4e
NB
24Language
25C
26
27Language
28ObjC
29
30Language
31C++
32
33Language
34ObjC++
35
e200444e
JM
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
fef3106c
NB
138-output-pch=
139C ObjC C++ ObjC++ Joined Separate
140
e200444e
JM
141-pedantic
142C ObjC C++ ObjC++ Alias(pedantic)
143
e200444e
JM
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
fef3106c 180A
61ff2bdc 181C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs)
a7b2e184 182-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>.
fef3106c
NB
183
184C
185C ObjC C++ ObjC++
a7b2e184 186Do not discard comments.
fef3106c
NB
187
188CC
189C ObjC C++ ObjC++
a7b2e184 190Do not discard comments in macro expansions.
fef3106c
NB
191
192D
61ff2bdc 193C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
a7b2e184 194-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1.
fef3106c
NB
195
196E
5498f011 197C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
fef3106c 198
94d1613b 199F
bd837408 200Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 201-F <dir> Add <dir> to the end of the main framework include path.
94d1613b 202
1ee62b92
PG
203fgimple
204C Var(flag_gimple) Init(0)
205Enable parsing GIMPLE.
206
fef3106c
NB
207H
208C ObjC C++ ObjC++
a7b2e184 209Print the name of header files as they are used.
fef3106c
NB
210
211I
61ff2bdc 212C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 213-I <dir> Add <dir> to the end of the main include path.
fef3106c
NB
214
215M
216C ObjC C++ ObjC++
a7b2e184 217Generate make dependencies.
fef3106c 218
c878765b
JM
219MD
220C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
a7b2e184 221Generate make dependencies and compile.
fef3106c
NB
222
223MF
61ff2bdc 224C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
a7b2e184 225-MF <file> Write dependency output to the given file.
fef3106c
NB
226
227MG
228C ObjC C++ ObjC++
a7b2e184 229Treat missing header files as generated files.
fef3106c
NB
230
231MM
232C ObjC C++ ObjC++
a7b2e184 233Like -M but ignore system header files.
fef3106c 234
c878765b
JM
235MMD
236C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
a7b2e184 237Like -MD but ignore system header files.
fef3106c
NB
238
239MP
240C ObjC C++ ObjC++
a7b2e184 241Generate phony targets for all headers.
fef3106c
NB
242
243MQ
61ff2bdc 244C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
a7b2e184 245-MQ <target> Add a MAKE-quoted target.
fef3106c
NB
246
247MT
61ff2bdc 248C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
a7b2e184 249-MT <target> Add an unquoted target.
fef3106c
NB
250
251P
252C ObjC C++ ObjC++
a7b2e184 253Do not generate #line directives.
fef3106c
NB
254
255U
61ff2bdc 256C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
a7b2e184 257-U<macro> Undefine <macro>.
fef3106c
NB
258
259Wabi
d7f09764 260C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
a7b2e184 261Warn about things that will change when compiling with an ABI-compliant compiler.
fef3106c 262
62984918
JM
263Wabi=
264C ObjC C++ ObjC++ LTO Joined RejectNegative UInteger Warning
a7b2e184 265Warn about things that change between the current -fabi-version and the specified version.
62984918 266
7dbb85a7
JM
267Wabi-tag
268C++ ObjC++ Var(warn_abi_tag) Warning
a7b2e184 269Warn if a subobject has an abi_tag attribute that the complete object type does not have.
7dbb85a7 270
bce08d50 271Wpsabi
50b15873 272C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Warning Undocumented LangEnabledBy(C ObjC C++ ObjC++,Wabi)
bce08d50 273
c116cd05 274Waddress
4a0ae68e 275C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 276Warn about suspicious uses of memory addresses.
c116cd05 277
af63ba4b
JM
278Enum
279Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
280
281EnumValue
282Enum(warn_aligned_new_level) String(none) Value(0)
283
284EnumValue
285Enum(warn_aligned_new_level) String(global) Value(1)
286
287EnumValue
288Enum(warn_aligned_new_level) String(all) Value(2)
289
290Waligned-new
291C++ ObjC++ Alias(Waligned-new=,global,none)
292Warn about 'new' of type with extended alignment without -faligned-new.
293
294Waligned-new=
2e1c20b1 295C++ ObjC++ Var(warn_aligned_new) Enum(warn_aligned_new_level) Joined RejectNegative Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
af63ba4b
JM
296-Waligned-new=all Warn even if 'new' uses a class member allocation function.
297
fef3106c 298Wall
c662432e 299C ObjC C++ ObjC++ Warning
a7b2e184 300Enable most warning messages.
fef3106c 301
adc577c5
AH
302Walloca
303C ObjC C++ ObjC++ Var(warn_alloca) Warning
304Warn on any use of alloca.
305
306Walloca-larger-than=
307C ObjC C++ ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative UInteger
308-Walloca-larger-than=<number> Warn on unbounded uses of
309alloca, and on bounded uses of alloca whose bound can be larger than
310<number> bytes.
311
34a180a6
MLI
312Warray-bounds
313LangEnabledBy(C ObjC C++ ObjC++,Wall)
314; in common.opt
315
de1b5c17
MU
316Warray-bounds=
317LangEnabledBy(C ObjC C++ ObjC++,Wall,1,0)
318; in common.opt
319
6e955430 320Wassign-intercept
c662432e 321ObjC ObjC++ Var(warn_assign_intercept) Warning
a7b2e184 322Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
6e955430 323
fef3106c 324Wbad-function-cast
c662432e 325C ObjC Var(warn_bad_function_cast) Warning
a7b2e184 326Warn about casting functions to incompatible types.
fef3106c 327
04159acf
MP
328Wbool-compare
329C ObjC C++ ObjC++ Var(warn_bool_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 330Warn about boolean expression compared with an integer value different from true/false.
04159acf 331
9a2300e9
MP
332Wbool-operation
333C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
334Warn about certain operations on boolean expressions.
335
8423e57c
MS
336Wframe-address
337C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 338Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
8423e57c 339
48330c93
BE
340Wbuiltin-declaration-mismatch
341C ObjC C++ ObjC++ Var(warn_builtin_declaraion_mismatch) Init(1) Warning
342Warn when a built-in function is declared with the wrong signature.
343
c047ce93 344Wbuiltin-macro-redefined
b559c810 345C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
a7b2e184 346Warn when a built-in preprocessor macro is undefined or redefined.
c047ce93 347
f3bede71 348Wc90-c99-compat
b559c810 349C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
a7b2e184 350Warn about features not present in ISO C90, but present in ISO C99.
f3bede71 351
35aff4fb
MP
352Wc99-c11-compat
353C ObjC Var(warn_c99_c11_compat) Init(-1) Warning
a7b2e184 354Warn about features not present in ISO C99, but present in ISO C11.
35aff4fb 355
b7e20b53 356Wc++-compat
b559c810 357C ObjC Var(warn_cxx_compat) CPP(warn_cxx_operator_names) CppReason(CPP_W_CXX_OPERATOR_NAMES) Init(0) Warning
a7b2e184 358Warn about C constructs that are not in the common subset of C and C++.
b7e20b53 359
e1f1ee86 360Wc++0x-compat
765189ff 361C++ ObjC++ Warning Alias(Wc++11-compat) Undocumented
97e3ad20
JM
362
363Wc++11-compat
765189ff 364C++ ObjC++ Var(warn_cxx11_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx11_compat) CppReason(CPP_W_CXX11_COMPAT)
a7b2e184 365Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011.
b7e20b53 366
20b06add
JM
367Wc++14-compat
368C++ ObjC++ Var(warn_cxx14_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 369Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.
20b06add 370
51dc6603
JM
371Wc++1z-compat
372C++ ObjC++ Var(warn_cxx1z_compat) Warning LangEnabledBy(C++ ObjC++,Wall)
373Warn about C++ constructs whose meaning differs between ISO C++ 2014 and (forthcoming) ISO C++ 201z(7?).
374
375Wc++17-compat
376C++ ObjC++ Warning Alias(Wc++1z-compat) Undocumented
377
fef3106c 378Wcast-qual
c662432e 379C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
a7b2e184 380Warn about casts which discard qualifiers.
fef3106c
NB
381
382Wchar-subscripts
4a0ae68e 383C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 384Warn about subscripts whose type is \"char\".
fef3106c 385
d5e254e1 386Wchkp
c2d89095 387C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 388Warn about memory access errors found by Pointer Bounds Checker.
d5e254e1 389
2b001724 390Wclobbered
95744782 391C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
a7b2e184 392Warn about variables that might be changed by \"longjmp\" or \"vfork\".
2b001724 393
fef3106c 394Wcomment
b559c810 395C ObjC C++ ObjC++ CPP(warn_comments) CppReason(CPP_W_COMMENTS) Var(cpp_warn_comment) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 396Warn about possibly nested block comments, and C++ comments spanning more than one physical line.
fef3106c
NB
397
398Wcomments
5de8299c 399C ObjC C++ ObjC++ Warning Alias(Wcomment)
a7b2e184 400Synonym for -Wcomment.
fef3106c 401
dfeadaa0
PC
402Wconditionally-supported
403C++ ObjC++ Var(warn_conditionally_supported) Warning
a7b2e184 404Warn for conditionally-supported constructs.
dfeadaa0 405
fef3106c 406Wconversion
c662432e 407C ObjC C++ ObjC++ Var(warn_conversion) Warning
a7b2e184 408Warn for implicit type conversions that may change a value.
fef3106c 409
17251338
MLI
410Wconversion-null
411C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
a7b2e184 412Warn for converting NULL from/to a non-pointer type.
17251338 413
b559c810
MLI
414Wcpp
415C ObjC C++ ObjC++ CppReason(CPP_W_WARNING_DIRECTIVE)
416; Documented in common.opt
417
fef3106c 418Wctor-dtor-privacy
c662432e 419C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
a7b2e184 420Warn when all constructors and destructors are private.
deef7113
MP
421
422Wdangling-else
423C ObjC C++ ObjC++ Var(warn_dangling_else) Warning LangEnabledBy(C ObjC C++ ObjC++,Wparentheses)
424Warn about dangling else.
fef3106c 425
b559c810
MLI
426Wdate-time
427C ObjC C++ ObjC++ CPP(warn_date_time) CppReason(CPP_W_DATE_TIME) Var(cpp_warn_date_time) Init(0) Warning
a7b2e184 428Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage.
b559c810 429
85617eba 430Wdeclaration-after-statement
177cce46 431C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
a7b2e184 432Warn when a declaration is found after a statement.
85617eba 433
c9b0866a
PC
434Wdelete-incomplete
435C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
a7b2e184 436Warn when deleting a pointer to incomplete type.
c9b0866a 437
014ab419 438Wdelete-non-virtual-dtor
27e51192 439C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall || Weffc++)
a7b2e184 440Warn about deleting polymorphic objects with non-virtual destructors.
014ab419 441
fef3106c 442Wdeprecated
b559c810 443C C++ ObjC ObjC++ CPP(cpp_warn_deprecated) CppReason(CPP_W_DEPRECATED) Var(warn_deprecated) Init(1) Warning
a7b2e184 444Warn if a deprecated compiler feature, class, method, or field is used.
fef3106c 445
976d5a22
TT
446Wdesignated-init
447C ObjC Var(warn_designated_init) Init(1) Warning
a7b2e184 448Warn about positional initialization of structs requiring designated initializers.
976d5a22 449
768952be
MU
450Wdiscarded-array-qualifiers
451C ObjC Var(warn_discarded_array_qualifiers) Init(1) Warning
a7b2e184 452Warn if qualifiers on arrays which are pointer targets are discarded.
768952be 453
d00887e8
MP
454Wdiscarded-qualifiers
455C ObjC Var(warn_discarded_qualifiers) Init(1) Warning
a7b2e184 456Warn if type qualifiers on pointers are discarded.
d00887e8 457
fef3106c 458Wdiv-by-zero
2cbac420 459C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
a7b2e184 460Warn about compile-time integer division by zero.
fef3106c 461
3e3b8d63 462Wduplicated-cond
12651878 463C ObjC C++ ObjC++ Var(warn_duplicated_cond) Init(0) Warning
a7b2e184 464Warn about duplicated conditions in an if-else-if chain.
3e3b8d63 465
fef3106c 466Weffc++
c662432e 467C++ ObjC++ Var(warn_ecpp) Warning
a7b2e184 468Warn about violations of Effective C++ style rules.
fef3106c 469
b3b433c5 470Wempty-body
95744782 471C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
a7b2e184 472Warn about an empty body in an if or else statement.
b3b433c5 473
fef3106c 474Wendif-labels
b559c810 475C 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)
a7b2e184 476Warn about stray tokens after #elif and #endif.
fef3106c 477
a3299096 478Wenum-compare
27e51192 479C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning LangEnabledBy(C ObjC,Wall || Wc++-compat)
a7b2e184 480Warn about comparison of different enum types.
a3299096 481
fef3106c
NB
482Werror
483C ObjC C++ ObjC++
72de27ea 484; Documented in common.opt
fef3106c
NB
485
486Werror-implicit-function-declaration
5de8299c 487C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
a7b2e184 488This switch is deprecated; use -Werror=implicit-function-declaration instead.
fef3106c 489
70f6d5e1
JJ
490Wextra
491C ObjC C++ ObjC++ Warning
492; in common.opt
493
49b0aa18 494Wfloat-conversion
63bbf46d 495C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
a7b2e184 496Warn for implicit type conversions that cause loss of floating point precision.
49b0aa18 497
fef3106c 498Wfloat-equal
c662432e 499C ObjC C++ ObjC++ Var(warn_float_equal) Warning
a7b2e184 500Warn if testing floating point numbers for equality.
fef3106c
NB
501
502Wformat
7332899a 503C ObjC C++ ObjC++ Warning Alias(Wformat=, 1, 0)
a7b2e184 504Warn about printf/scanf/strftime/strfmon format string anomalies.
fef3106c 505
7332899a
MLI
506Wformat-contains-nul
507C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
a7b2e184 508Warn about format strings that contain NUL bytes.
7332899a 509
fef3106c 510Wformat-extra-args
7332899a 511C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
a7b2e184 512Warn if passing too many arguments to a function for its format string.
fef3106c 513
88d0c3f0
MS
514Wformat-length
515C ObjC C++ ObjC++ Warning Alias(Wformat-length=, 1, 0)
516Warn about function calls with format strings that write past the end
517of the destination region. Same as -Wformat-length=1.
518
fef3106c 519Wformat-nonliteral
7332899a 520C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
a7b2e184 521Warn about format strings that are not literals.
fef3106c
NB
522
523Wformat-security
7332899a 524C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
a7b2e184 525Warn about possible security problems with format functions.
fef3106c 526
cbbd2b1c 527Wformat-signedness
7631f0e2 528C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
a7b2e184 529Warn about sign differences with format functions.
cbbd2b1c 530
fef3106c 531Wformat-y2k
7332899a 532C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
a7b2e184 533Warn about strftime formats yielding 2-digit years.
fef3106c
NB
534
535Wformat-zero-length
7332899a 536C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1, 0)
a7b2e184 537Warn about zero-length formats.
fef3106c
NB
538
539Wformat=
7332899a 540C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
a7b2e184 541Warn about printf/scanf/strftime/strfmon format string anomalies.
fef3106c 542
88d0c3f0
MS
543Wformat-length=
544C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format_length) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
545Warn about function calls with format strings that write past the end
546of the destination region.
547
5db2e9ca 548Wignored-qualifiers
95744782 549C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
5db2e9ca
DK
550Warn whenever type qualifiers are ignored.
551
fbdb6baf
MP
552Wignored-attributes
553C C++ Var(warn_ignored_attributes) Init(1) Warning
554Warn whenever attributes are ignored.
555
d5c3d343
MP
556Wincompatible-pointer-types
557C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
a7b2e184 558Warn when there is a conversion between pointers that have incompatible types.
d5c3d343 559
3390f9c9 560Winit-self
0ccb505d 561C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 562Warn about variables which are initialized to themselves.
3390f9c9 563
fef3106c 564Wimplicit
4a0ae68e 565C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
a7b2e184 566Warn about implicit declarations.
fef3106c 567
70f6d5e1
JJ
568Wimplicit-fallthrough=
569LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
570; in common.opt
571
0a0b3574
MM
572Wdouble-promotion
573C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
a7b2e184 574Warn about implicit conversions from \"float\" to \"double\".
0a0b3574 575
fb2675cb
PB
576Wexpansion-to-defined
577C 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)
578Warn if \"defined\" is used outside #if.
579
fef3106c 580Wimplicit-function-declaration
4a0ae68e 581C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
a7b2e184 582Warn about implicit function declarations.
fef3106c
NB
583
584Wimplicit-int
92574c7c 585C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
a7b2e184 586Warn when a declaration does not specify a type.
fef3106c
NB
587
588Wimport
2d2bd949 589C ObjC C++ ObjC++ Undocumented Ignore
fef3106c 590
4514a96b
JM
591Winherited-variadic-ctor
592C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
a7b2e184 593Warn about C++11 inheriting constructors when the base has a variadic constructor.
4514a96b 594
52ec0ea3
MP
595Wint-conversion
596C ObjC Var(warn_int_conversion) Init(1) Warning
a7b2e184 597Warn about incompatible integer to pointer and pointer to integer conversions.
52ec0ea3 598
144a96e4
BE
599Wint-in-bool-context
600C ObjC C++ ObjC++ Var(warn_int_in_bool_context) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
601Warn for suspicious integer expressions in boolean context.
602
53a2494e 603Wint-to-pointer-cast
dc8d2739 604C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
a7b2e184 605Warn when there is a cast to a pointer from an integer of a different size.
53a2494e 606
fef3106c 607Winvalid-offsetof
c662432e 608C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
a7b2e184 609Warn about invalid uses of the \"offsetof\" macro.
fef3106c
NB
610
611Winvalid-pch
b559c810 612C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
a7b2e184 613Warn about PCH files that are found but not used.
fef3106c 614
e1b7793c 615Wjump-misses-init
f2bc201f 616C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
a7b2e184 617Warn when a jump misses a variable initialization.
e1b7793c 618
7f5f5f98 619Wliteral-suffix
b559c810 620C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
7f5f5f98
OW
621Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
622
ca409efd 623Wlogical-op
a7b2e184
MS
624C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
625Warn when a logical operator is suspiciously always evaluating to true or false.
ca409efd 626
742938c9 627Wlogical-not-parentheses
d2e4feca 628C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 629Warn when logical not is used on the left hand side operand of a comparison.
742938c9 630
fef3106c 631Wlong-long
b559c810 632C 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)
a7b2e184 633Do not warn about using \"long long\" when -pedantic.
fef3106c
NB
634
635Wmain
34a180a6 636C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning LangEnabledBy(C ObjC,Wall, 2, 0)
a7b2e184 637Warn about suspicious declarations of \"main\".
fef3106c 638
34a180a6
MLI
639Wmain
640LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
641;
642
b108f48f
JJ
643Wmemset-transposed-args
644C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 645Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
b108f48f 646
c1e1f433
BS
647Wmemset-elt-size
648C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
649Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
650
c3388e62 651Wmisleading-indentation
f6069ccc 652C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
a7b2e184 653Warn when the indentation of the code does not reflect the block structure.
c3388e62 654
fef3106c 655Wmissing-braces
4f7f7aca 656C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
a7b2e184 657Warn about possibly missing braces around initializers.
fef3106c
NB
658
659Wmissing-declarations
c662432e 660C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
a7b2e184 661Warn about global functions without previous declarations.
fef3106c 662
eaac4679 663Wmissing-field-initializers
95744782 664C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
a7b2e184 665Warn about missing fields in struct initializers.
eaac4679 666
6b333269
NS
667Wmultiple-inheritance
668C++ ObjC++ Var(warn_multiple_inheritance) Warning
a7b2e184 669Warn on direct multiple inheritance.
6b333269
NS
670
671Wnamespaces
672C++ ObjC++ Var(warn_namespaces) Warning
a7b2e184 673Warn on namespace definition.
6b333269 674
20b06add
JM
675Wsized-deallocation
676C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
a7b2e184 677Warn about missing sized deallocation functions.
20b06add 678
1a4049e7 679Wsizeof-pointer-memaccess
4a0ae68e 680C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 681Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
1a4049e7 682
773ec47f
MP
683Wsizeof-array-argument
684C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
a7b2e184 685Warn when sizeof is applied on a parameter declared as an array.
773ec47f 686
90137d8f
MLI
687Wsuggest-attribute=format
688C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
a7b2e184 689Warn about functions which might be candidates for format attributes.
fef3106c 690
2f42e5de
TS
691Wsuggest-override
692C++ ObjC++ Var(warn_override) Warning
693Suggest that the override keyword be used when the declaration of a virtual
694function overrides another.
695
34a180a6
MLI
696Wswitch
697C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 698Warn about enumerated switches, with no default, missing a case.
34a180a6
MLI
699
700Wswitch-default
701C ObjC C++ ObjC++ Var(warn_switch_default) Warning
a7b2e184 702Warn about enumerated switches missing a \"default:\" statement.
34a180a6
MLI
703
704Wswitch-enum
705C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
a7b2e184 706Warn about all enumerated switches missing a specific case.
34a180a6 707
fedfecef 708Wswitch-bool
5c3d09f7 709C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
a7b2e184 710Warn about switches with boolean controlling expression.
fedfecef 711
6b333269
NS
712Wtemplates
713C++ ObjC++ Var(warn_templates) Warning
a7b2e184 714Warn on primary template declaration.
6b333269 715
90137d8f 716Wmissing-format-attribute
54d62f51 717C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
90137d8f
MLI
718;
719
b02398bd 720Wmissing-include-dirs
b559c810 721C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
a7b2e184 722Warn about user-specified include directories that do not exist.
b02398bd 723
cb4af25a 724Wmissing-parameter-type
95744782 725C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
a7b2e184 726Warn about function parameters declared without a type specifier in K&R-style functions.
cb4af25a 727
fef3106c 728Wmissing-prototypes
c662432e 729C ObjC Var(warn_missing_prototypes) Warning
a7b2e184 730Warn about global functions without prototypes.
fef3106c 731
5720c0dc 732Wmudflap
98906124 733C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc 734
fef3106c 735Wmultichar
b559c810 736C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
a7b2e184 737Warn about use of multi-character character constants.
fef3106c 738
76f86d00 739Wnarrowing
765189ff 740C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
a7b2e184 741Warn about narrowing conversions within { } that are ill-formed in C++11.
76f86d00 742
fef3106c 743Wnested-externs
c662432e 744C ObjC Var(warn_nested_externs) Warning
a7b2e184 745Warn about \"extern\" declarations not at file scope.
fef3106c 746
59f9c2ed
JM
747Wnoexcept
748C++ ObjC++ Var(warn_noexcept) Warning
a7b2e184 749Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
59f9c2ed 750
fef3106c 751Wnon-template-friend
c662432e 752C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
a7b2e184 753Warn when non-templatized friend functions are declared within a template.
fef3106c
NB
754
755Wnon-virtual-dtor
880a467b 756C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
a7b2e184 757Warn about non-virtual destructors.
fef3106c
NB
758
759Wnonnull
7332899a 760C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
a7b2e184 761Warn about NULL being passed to argument slots marked as requiring non-NULL.
fef3106c 762
7332899a
MLI
763Wnonnull
764C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
765;
766
bf14eba2
JJ
767Wnonnull-compare
768C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
769;
770
1ef33fd4 771Wnormalized
54d62f51 772C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
1ef33fd4
MLI
773;
774
50668cf6 775Wnormalized=
b559c810 776C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) CppReason(CPP_W_NORMALIZE) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level)
a7b2e184 777-Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings.
1ef33fd4
MLI
778
779; Required for these enum values.
780SourceInclude
781cpplib.h
782
783Enum
784Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
785
786EnumValue
787Enum(cpp_normalize_level) String(none) Value(normalized_none)
788
789EnumValue
790Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
791
792EnumValue
793Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
794
795EnumValue
796Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
50668cf6 797
fef3106c 798Wold-style-cast
c662432e 799C++ ObjC++ Var(warn_old_style_cast) Warning
a7b2e184 800Warn if a C-style cast is used in a program.
fef3106c 801
b1ed4cb4 802Wold-style-declaration
95744782 803C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
a7b2e184 804Warn for obsolescent usage in a declaration.
b1ed4cb4 805
c034f121 806Wold-style-definition
c662432e 807C ObjC Var(warn_old_style_definition) Warning
a7b2e184 808Warn if an old-style parameter definition is used.
c034f121 809
8b5e1202
SO
810Wopenmp-simd
811C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
a7b2e184 812Warn if a simd directive is overridden by the vectorizer cost model.
8b5e1202 813
89a42ac8 814Woverlength-strings
34a180a6 815C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
a7b2e184 816Warn if a string is longer than the maximum portable length specified by the standard.
89a42ac8 817
fef3106c 818Woverloaded-virtual
c662432e 819C++ ObjC++ Var(warn_overloaded_virtual) Warning
a7b2e184 820Warn about overloaded virtual function names.
fef3106c 821
7ed322d7 822Woverride-init
95744782 823C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
a7b2e184 824Warn about overriding initializers without side effects.
7ed322d7 825
755e528f
MP
826Woverride-init-side-effects
827C ObjC Var(warn_override_init_side_effects) Init(1) Warning
a7b2e184 828Warn about overriding initializers with side effects.
755e528f 829
2cd36c22 830Wpacked-bitfield-compat
bee6fa6d 831C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
a7b2e184 832Warn about packed bit-fields whose offset changed in GCC 4.4.
2cd36c22 833
fef3106c 834Wparentheses
4a0ae68e 835C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 836Warn about possibly missing parentheses.
fef3106c 837
c1771a20 838Wpedantic
b559c810 839C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
c1771a20
MLI
840; Documented in common.opt
841
fef3106c 842Wpmf-conversions
c662432e 843C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
a7b2e184 844Warn when converting the type of pointers to member functions.
fef3106c
NB
845
846Wpointer-arith
44d90fe1 847C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
a7b2e184 848Warn about function pointer arithmetic.
fef3106c 849
4a0ae68e 850Wpointer-sign
27e51192 851C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
a7b2e184 852Warn when a pointer differs in signedness in an assignment.
4a0ae68e 853
53a2494e 854Wpointer-to-int-cast
c662432e 855C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
a7b2e184 856Warn when a pointer is cast to an integer of a different size.
53a2494e 857
b9b8dde3 858Wpragmas
c662432e 859C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
a7b2e184 860Warn about misuses of pragmas.
b9b8dde3 861
9a179d01
NP
862Wproperty-assign-default
863ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
a7b2e184 864Warn if a property for an Objective-C object has no assign semantics specified.
9a179d01 865
fef3106c 866Wprotocol
c662432e 867ObjC ObjC++ Var(warn_protocol) Init(1) Warning
a7b2e184 868Warn if inherited methods are unimplemented.
fef3106c 869
e2f5cc96 870Wplacement-new
46cb9332
MS
871C++ Warning Alias(Wplacement-new=, 1, 0)
872Warn for placement new expressions with undefined behavior.
873
874Wplacement-new=
875C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
eb11eb15 876Warn for placement new expressions with undefined behavior.
e2f5cc96 877
fef3106c 878Wredundant-decls
c662432e 879C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
a7b2e184 880Warn about multiple declarations of the same object.
fef3106c 881
a2c6e7f2
JJ
882Wregister
883C++ ObjC++ Var(warn_register) Warning
884Warn about uses of register storage specifier.
885
fef3106c 886Wreorder
f2bc201f 887C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 888Warn when the compiler reorders code.
fef3106c
NB
889
890Wreturn-type
4a0ae68e 891C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 892Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
fef3106c 893
ee45a32d
EB
894Wscalar-storage-order
895C ObjC C++ ObjC++ Init(1) Warning
896Warn on suspicious constructs involving reverse scalar storage order.
897
fef3106c 898Wselector
c662432e 899ObjC ObjC++ Var(warn_selector) Warning
a7b2e184 900Warn if a selector has multiple methods.
fef3106c 901
13c21655
PC
902Wsequence-point
903C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 904Warn about possible violations of sequence point rules.
13c21655 905
dcaaa5a0 906Wshadow-ivar
dff8943f 907ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
a7b2e184 908Warn if a local declaration hides an instance variable.
dcaaa5a0 909
451b5e48
MP
910Wshift-overflow
911C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
a7b2e184 912Warn if left shift of a signed value overflows.
451b5e48
MP
913
914Wshift-overflow=
915C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
a7b2e184 916Warn if left shift of a signed value overflows.
451b5e48 917
13c21655
PC
918Wshift-count-negative
919C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
a7b2e184 920Warn if shift count is negative.
13c21655
PC
921
922Wshift-count-overflow
923C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
a7b2e184 924Warn if shift count >= width of type.
fef3106c 925
0173bd2a
MP
926Wshift-negative-value
927C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
a7b2e184 928Warn if left shifting a negative value.
0173bd2a 929
fef3106c 930Wsign-compare
4a0ae68e 931C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 932Warn about signed-unsigned comparisons.
fef3106c 933
4a0ae68e
MLI
934Wsign-compare
935C ObjC C++ ObjC++ EnabledBy(Wextra)
936;
937
938Wsign-conversion
63bbf46d 939C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
a7b2e184 940Warn for implicit type conversions between signed and unsigned integers.
4a0ae68e 941
fef3106c 942Wsign-promo
c662432e 943C++ ObjC++ Var(warn_sign_promo) Warning
a7b2e184 944Warn when overload promotes from unsigned to signed.
fef3106c 945
b2f97e4a 946Wstrict-null-sentinel
5498f011 947C++ ObjC++ Warning Var(warn_strict_null_sentinel)
a7b2e184 948Warn about uncasted NULL used as sentinel.
b2f97e4a 949
fef3106c 950Wstrict-prototypes
c662432e 951C ObjC Var(warn_strict_prototypes) Warning
a7b2e184 952Warn about unprototyped function declarations.
fef3106c 953
65d4f2cd
MLI
954Wstrict-aliasing=
955C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
956;
957
958Wstrict-overflow=
959C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
960;
961
6e955430 962Wstrict-selector-match
c662432e 963ObjC ObjC++ Var(warn_strict_selector_match) Warning
a7b2e184 964Warn if type signatures of candidate methods do not match exactly.
6e955430 965
23462d4d
UB
966Wsync-nand
967C C++ Var(warn_sync_nand) Init(1) Warning
a7b2e184 968Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
23462d4d 969
fef3106c 970Wsynth
c662432e 971C++ ObjC++ Var(warn_synth) Warning
a7b2e184 972Deprecated. This switch has no effect.
fef3106c
NB
973
974Wsystem-headers
c662432e 975C ObjC C++ ObjC++ Warning
9a0f3e86 976; Documented in common.opt
fef3106c 977
05b28fd6
MP
978Wtautological-compare
979C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 980Warn if a comparison always evaluates to true or false.
05b28fd6 981
8243e2a9
JM
982Wterminate
983C++ ObjC++ Warning Var(warn_terminate) Init(1)
a7b2e184 984Warn if a throw expression will always result in a call to terminate().
8243e2a9 985
fef3106c 986Wtraditional
b559c810 987C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
a7b2e184 988Warn about features not present in traditional C.
fef3106c 989
05170031 990Wtraditional-conversion
c662432e 991C ObjC Var(warn_traditional_conversion) Warning
a7b2e184 992Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
05170031 993
fef3106c 994Wtrigraphs
b559c810 995C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 996Warn if trigraphs are encountered that might affect the meaning of the program.
fef3106c
NB
997
998Wundeclared-selector
c662432e 999ObjC ObjC++ Var(warn_undeclared_selector) Warning
a7b2e184 1000Warn about @selector()s without previously declared methods.
fef3106c
NB
1001
1002Wundef
b559c810 1003C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
a7b2e184 1004Warn if an undefined macro is used in an #if directive.
fef3106c 1005
4a0ae68e
MLI
1006Wuninitialized
1007C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1008;
1009
1010Wmaybe-uninitialized
1011C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1012;
1013
fef3106c 1014Wunknown-pragmas
34a180a6 1015C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
a7b2e184 1016Warn about unrecognized pragmas.
fef3106c 1017
6ec637a4
JJ
1018Wunsuffixed-float-constants
1019C ObjC Var(warn_unsuffixed_float_constants) Warning
a7b2e184 1020Warn about unsuffixed float constants.
6ec637a4 1021
4a0ae68e
MLI
1022Wunused
1023C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1024; documented in common.opt
1025
3797cb21 1026Wunused-local-typedefs
650dc14a 1027C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
a7b2e184 1028Warn when typedefs locally defined in a function are not used.
3797cb21 1029
fef3106c 1030Wunused-macros
b559c810 1031C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
a7b2e184 1032Warn about macros defined in the main file that are not used.
fef3106c 1033
156f545a
MLI
1034Wunused-result
1035C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
a7b2e184 1036Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
156f545a 1037
0f876f22
MW
1038Wunused-variable
1039C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1040; documented in common.opt
1041
1042Wunused-const-variable
4246c8da
MW
1043C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1044Warn when a const variable is unused.
1045
1046Wunused-const-variable=
1047C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
a7b2e184 1048Warn when a const variable is unused.
0f876f22 1049
e5b79219 1050Wvariadic-macros
27e51192 1051C 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)
a7b2e184 1052Warn about using variadic macros.
e5b79219 1053
b9c8da34
DS
1054Wvarargs
1055C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
a7b2e184 1056Warn about questionable usage of the macros used to retrieve variable arguments.
b9c8da34 1057
50d50fc7
SP
1058Wvla
1059C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
a7b2e184 1060Warn if a variable length array is used.
50d50fc7 1061
adc577c5
AH
1062Wvla-larger-than=
1063C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1064-Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and
1065on bounded uses of variable-length arrays whose bound can be
1066larger than <number> bytes.
1067
16302daf 1068Wvolatile-register-var
4a0ae68e 1069C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 1070Warn when a register variable is declared volatile.
16302daf 1071
6b333269
NS
1072Wvirtual-inheritance
1073C++ ObjC++ Var(warn_virtual_inheritance) Warning
a7b2e184 1074Warn on direct virtual inheritance.
6b333269 1075
f14edc1a
JM
1076Wvirtual-move-assign
1077C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
a7b2e184 1078Warn if a virtual base has a non-trivial move assignment operator.
f14edc1a 1079
fef3106c 1080Wwrite-strings
c662432e 1081C ObjC C++ ObjC++ Var(warn_write_strings) Warning
d8a07487 1082In 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.
fef3106c 1083
89401152
PC
1084Wzero-as-null-pointer-constant
1085C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
a7b2e184 1086Warn when a literal '0' is used as null pointer.
89401152 1087
04398fa8
PC
1088Wuseless-cast
1089C++ ObjC++ Var(warn_useless_cast) Warning
a7b2e184 1090Warn about useless casts.
04398fa8 1091
273aa49e
PC
1092Wsubobject-linkage
1093C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
a7b2e184 1094Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
273aa49e 1095
d6e83a8d
MM
1096Wduplicate-decl-specifier
1097C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1098Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1099
975672f3
PK
1100Wrestrict
1101C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1102Warn when an argument passed to a restrict-qualified parameter aliases with
1103another argument.
1104
fef3106c
NB
1105ansi
1106C ObjC C++ ObjC++
a7b2e184 1107A synonym for -std=c89 (for C) or -std=c++98 (for C++).
fef3106c
NB
1108
1109d
1110C ObjC C++ ObjC++ Joined
72de27ea 1111; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 1112
62984918
JM
1113fabi-compat-version=
1114C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
a7b2e184 1115The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
62984918 1116
fef3106c 1117faccess-control
5498f011 1118C++ ObjC++ Var(flag_access_control) Init(1)
a7b2e184 1119Enforce class member access control semantics.
fef3106c 1120
da5182be
TQ
1121fada-spec-parent=
1122C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
a7b2e184 1123-fada-spec-parent=unit Dump Ada specs as child units of given parent.
da5182be 1124
af63ba4b
JM
1125faligned-new
1126C++ ObjC++ Alias(faligned-new=,1,0)
1127Support C++17 allocation of over-aligned types.
1128
1129faligned-new=
2e1c20b1 1130C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
af63ba4b
JM
1131-faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1132
fef3106c 1133fall-virtual
2d2bd949 1134C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1135
6637388f
TG
1136fallow-parameterless-variadic-functions
1137C ObjC Var(flag_allow_parameterless_variadic_functions)
a7b2e184 1138Allow variadic functions without named parameter.
6637388f 1139
fef3106c 1140falt-external-templates
2d2bd949 1141C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1142No longer supported.
fef3106c
NB
1143
1144fasm
5498f011 1145C ObjC C++ ObjC++ Var(flag_no_asm, 0)
a7b2e184 1146Recognize the \"asm\" keyword.
fef3106c 1147
10e48e39
RO
1148; Define extra predefined macros for use in libgcc.
1149fbuilding-libgcc
1150C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1151
fef3106c 1152fbuiltin
5498f011 1153C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
a7b2e184 1154Recognize built-in functions.
fef3106c
NB
1155
1156fbuiltin-
1157C ObjC C++ ObjC++ Joined
1158
5dc99c46
SB
1159fcanonical-system-headers
1160C ObjC C++ ObjC++
1161Where shorter, use canonicalized paths to systems headers.
1162
d5e254e1 1163fcheck-pointer-bounds
79d64904 1164C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
d5e254e1
IE
1165Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1166control instrumentation. Currently available for C, C++ and ObjC.
1167
1168fchkp-check-incomplete-type
79d64904 1169C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
a7b2e184 1170Generate pointer bounds checks for variables with incomplete type.
d5e254e1
IE
1171
1172fchkp-zero-input-bounds-for-main
79d64904 1173C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
d5e254e1
IE
1174Use zero bounds for all incoming arguments in 'main' function. It helps when
1175instrumented binaries are used with legacy libs.
1176
1177fchkp-first-field-has-own-bounds
79d64904 1178C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
d5e254e1
IE
1179Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1180field in the structure. By default pointer to the first field has the same
1181bounds as pointer to the whole structure.
1182
1183fchkp-narrow-bounds
79d64904 1184C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
d5e254e1
IE
1185Control how Pointer Bounds Checker handle pointers to object fields. When
1186narrowing is on, field bounds are used. Otherwise full object bounds are used.
1187
1188fchkp-narrow-to-innermost-array
79d64904 1189C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
d5e254e1
IE
1190Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1191nested static arryas access. By default outermost array is used.
1192
1193fchkp-optimize
1194C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1195Allow Pointer Bounds Checker optimizations. By default allowed
1196on optimization levels >0.
1197
1198fchkp-use-fast-string-functions
1199C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1200Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1201
1202fchkp-use-nochk-string-functions
1203C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1204Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1205
1206fchkp-use-static-bounds
79d64904 1207C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
d5e254e1
IE
1208Use statically initialized variable for vars bounds instead of
1209generating them each time it is required.
1210
1211fchkp-use-static-const-bounds
79d64904 1212C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
d5e254e1
IE
1213Use statically initialized variable for constant bounds instead of
1214generating them each time it is required.
1215
1216fchkp-treat-zero-dynamic-size-as-infinite
79d64904 1217C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
d5e254e1
IE
1218With this option zero size obtained dynamically for objects with
1219incomplete type will be treated as infinite.
1220
1221fchkp-check-read
1222C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1223Generate checks for all read accesses to memory.
1224
1225fchkp-check-write
1226C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1227Generate checks for all write accesses to memory.
1228
1229fchkp-store-bounds
1230C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1231Generate bounds stores for pointer writes.
1232
1233fchkp-instrument-calls
1234C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1235Generate bounds passing for calls.
1236
1237fchkp-instrument-marked-only
1238C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1239Instrument only functions marked with bnd_instrument attribute.
1240
226d62d2
IE
1241fchkp-use-wrappers
1242C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1243Transform instrumented builtin calls into calls to wrappers.
1244
5373cd33
IE
1245static-libmpx
1246Driver
1247
d2d7e672
IE
1248static-libmpxwrappers
1249Driver
1250
36536d79 1251fcilkplus
b72271b9 1252C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
a7b2e184 1253Enable Cilk Plus.
36536d79 1254
971e17ff
AS
1255fconcepts
1256C++ ObjC++ Var(flag_concepts)
a7b2e184 1257Enable support for C++ concepts.
971e17ff 1258
fef3106c
NB
1259fcond-mismatch
1260C ObjC C++ ObjC++
a7b2e184 1261Allow the arguments of the '?' operator to have different types.
fef3106c
NB
1262
1263fconserve-space
5498f011 1264C++ ObjC++ Var(flag_conserve_space)
6f07a821 1265Does nothing. Preserved for backward compatibility.
fef3106c 1266
fef3106c 1267fconstant-string-class=
61ff2bdc 1268ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
a7b2e184 1269-fconst-string-class=<name> Use class <name> for constant strings.
fef3106c 1270
17bc631c 1271fconstexpr-depth=
49a000c3 1272C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
a7b2e184 1273-fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
17bc631c 1274
5ec2cd9f
JM
1275fconstexpr-loop-limit=
1276C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1277-fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1278
847e697a
TT
1279fdebug-cpp
1280C ObjC C++ ObjC++
a7b2e184 1281Emit debug annotations during preprocessing.
847e697a 1282
5f5babf1 1283fdeduce-init-list
15694fdd 1284C++ ObjC++ Var(flag_deduce_init_list) Init(0)
a7b2e184 1285-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
5f5babf1 1286
1f26ac87
JM
1287fdeclone-ctor-dtor
1288C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
a7b2e184 1289Factor complex constructors and destructors to favor space over speed.
1f26ac87 1290
fef3106c 1291fdefault-inline
2d2bd949 1292C++ ObjC++ Ignore
5498f011 1293Does nothing. Preserved for backward compatibility.
fef3106c 1294
ccfc4c91
OW
1295fdirectives-only
1296C ObjC C++ ObjC++
1297Preprocess directives only.
1298
fef3106c
NB
1299fdollars-in-identifiers
1300C ObjC C++ ObjC++
a7b2e184 1301Permit '$' as an identifier character.
fef3106c 1302
3b78de56
AC
1303fdump-ada-spec
1304C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
a7b2e184 1305Write all declarations as Ada code transitively.
3b78de56
AC
1306
1307fdump-ada-spec-slim
1308C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
a7b2e184 1309Write all declarations as Ada code for the given file only.
3b78de56 1310
fef3106c 1311felide-constructors
5498f011 1312C++ ObjC++ Var(flag_elide_constructors) Init(1)
fef3106c
NB
1313
1314fenforce-eh-specs
5498f011 1315C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
a7b2e184 1316Generate code to check exception specifications.
fef3106c
NB
1317
1318fenum-int-equiv
2d2bd949 1319C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1320
e6cc3a24
ZW
1321fexec-charset=
1322C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1323-fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
e6cc3a24 1324
af15a2fe
JM
1325fextended-identifiers
1326C ObjC C++ ObjC++
a7b2e184 1327Permit universal character names (\\u and \\U) in identifiers.
af15a2fe 1328
16dd5cfe
EC
1329finput-charset=
1330C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1331-finput-charset=<cset> Specify the default character set for source files.
16dd5cfe 1332
5af057d8
JM
1333fextern-tls-init
1334C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
a7b2e184 1335Support dynamic initialization of thread-local variables in a different translation unit.
16dd5cfe 1336
fef3106c 1337fexternal-templates
2d2bd949 1338C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1339
fef3106c 1340ffor-scope
5498f011 1341C++ ObjC++ Var(flag_new_for_scope) Init(1)
a7b2e184 1342Scope of for-init-statement variables is local to the loop.
fef3106c
NB
1343
1344ffreestanding
820b51ae 1345C ObjC C++ ObjC++
a7b2e184 1346Do not assume that standard C libraries and \"main\" exist.
fef3106c
NB
1347
1348fgnu-keywords
5498f011 1349C++ ObjC++ Var(flag_no_gnu_keywords, 0)
a7b2e184 1350Recognize GNU-defined keywords.
fef3106c
NB
1351
1352fgnu-runtime
fb5610fb 1353ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
a7b2e184 1354Generate code for GNU runtime environment.
fef3106c 1355
da1c7394 1356fgnu89-inline
2cbac420 1357C ObjC Var(flag_gnu89_inline) Init(-1)
a7b2e184 1358Use traditional GNU semantics for inline functions.
da1c7394 1359
fef3106c 1360fguiding-decls
2d2bd949 1361C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1362
1363fhandle-exceptions
2d2bd949 1364C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
fef3106c
NB
1365
1366fhonor-std
2d2bd949 1367C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1368
1369fhosted
1370C ObjC
a7b2e184 1371Assume normal C execution environment.
fef3106c
NB
1372
1373fhuge-objects
2d2bd949 1374C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1375No longer supported.
fef3106c
NB
1376
1377fimplement-inlines
5498f011 1378C++ ObjC++ Var(flag_implement_inlines) Init(1)
a7b2e184 1379Export functions even if they can be inlined.
fef3106c
NB
1380
1381fimplicit-inline-templates
5498f011 1382C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
a7b2e184 1383Emit implicit instantiations of inline templates.
fef3106c
NB
1384
1385fimplicit-templates
5498f011 1386C++ ObjC++ Var(flag_implicit_templates) Init(1)
a7b2e184 1387Emit implicit instantiations of templates.
fef3106c 1388
31f7f784
JM
1389fnew-inheriting-ctors
1390C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1391Implement C++17 inheriting constructor semantics.
1392
d63d5d0c 1393ffriend-injection
2cbac420 1394C++ ObjC++ Var(flag_friend_injection)
a7b2e184 1395Inject friend functions into enclosing namespace.
d63d5d0c 1396
47ea1edf
DK
1397fkeep-inline-dllexport
1398C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
a7b2e184 1399Don't emit dllexported inline functions unless needed.
47ea1edf 1400
fef3106c 1401flabels-ok
2d2bd949 1402C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1403
00c8e9f6 1404flax-vector-conversions
5498f011 1405C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
00c8e9f6
MS
1406Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1407
fef3106c 1408fms-extensions
5498f011 1409C ObjC C++ ObjC++ Var(flag_ms_extensions)
a7b2e184 1410Don't warn about uses of Microsoft extensions.
fef3106c 1411
5720c0dc 1412fmudflap
98906124 1413C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1414
1415fmudflapth
98906124 1416C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1417
1418fmudflapir
98906124 1419C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc 1420
fef3106c 1421fname-mangling-version-
2d2bd949 1422C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1423
1424fnew-abi
2d2bd949 1425C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1426
1427fnext-runtime
fb5610fb 1428ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
a7b2e184 1429Generate code for NeXT (Apple Mac OS X) runtime environment.
264fa2db
ZL
1430
1431fnil-receivers
5498f011 1432ObjC ObjC++ Var(flag_nil_receivers) Init(1)
a7b2e184 1433Assume that receivers of Objective-C messages may be nil.
fef3106c 1434
dcaaa5a0
DP
1435flocal-ivars
1436ObjC ObjC++ Var(flag_local_ivars) Init(1)
1437Allow access to instance variables as if they were local declarations within instance method implementations.
1438
1439fivar-visibility=
1440ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
a7b2e184 1441-fvisibility=[private|protected|public|package] Set the default symbol visibility.
dcaaa5a0
DP
1442
1443Enum
1444Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1445
1446EnumValue
1447Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1448
1449EnumValue
1450Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1451
1452EnumValue
1453Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1454
1455EnumValue
1456Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1457
fef3106c 1458fnonansi-builtins
5498f011 1459C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
fef3106c
NB
1460
1461fnonnull-objects
2d2bd949 1462C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1463
9feb3d6a
JM
1464fnothrow-opt
1465C++ ObjC++ Optimization Var(flag_nothrow_opt)
a7b2e184 1466Treat a throw() exception specification as noexcept to improve code size.
9feb3d6a 1467
0a256240 1468fobjc-abi-version=
fb5610fb 1469ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
0a256240
NP
1470Specify which ABI to use for Objective-C family code and meta-data generation.
1471
6e955430
ZL
1472; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1473; to initialize any non-POD ivars in Objective-C++ classes.
1474fobjc-call-cxx-cdtors
1475ObjC++ Var(flag_objc_call_cxx_cdtors)
a7b2e184 1476Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
6e955430
ZL
1477
1478fobjc-direct-dispatch
1479ObjC ObjC++ Var(flag_objc_direct_dispatch)
a7b2e184 1480Allow fast jumps to the message dispatcher.
6e955430
ZL
1481
1482; Nonzero means that we will allow new ObjC exception syntax (@throw,
1483; @try, etc.) in source code.
264fa2db 1484fobjc-exceptions
6e955430 1485ObjC ObjC++ Var(flag_objc_exceptions)
a7b2e184 1486Enable Objective-C exception and synchronization syntax.
264fa2db 1487
6e955430 1488fobjc-gc
fb5610fb 1489ObjC ObjC++ LTO Var(flag_objc_gc)
a7b2e184 1490Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
6e955430 1491
0a256240
NP
1492fobjc-nilcheck
1493ObjC ObjC++ Var(flag_objc_nilcheck,1)
1494Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1495
6e955430 1496; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 1497fobjc-sjlj-exceptions
6e955430 1498ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
a7b2e184 1499Enable Objective-C setjmp exception handling runtime.
093c7153 1500
22d8d616
NP
1501fobjc-std=objc1
1502ObjC ObjC++ Var(flag_objc1_only)
a7b2e184 1503Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
22d8d616 1504
41dbbb37 1505fopenacc
a0c88d06 1506C ObjC C++ ObjC++ LTO Var(flag_openacc)
a7b2e184 1507Enable OpenACC.
41dbbb37 1508
b6adbb9f
NS
1509fopenacc-dim=
1510C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1511Specify default OpenACC compute dimensions.
1512
953ff289 1513fopenmp
1506ae0e 1514C ObjC C++ ObjC++ LTO Var(flag_openmp)
a7b2e184 1515Enable OpenMP (implies -frecursive in Fortran).
953ff289 1516
6d7f7e0a
TB
1517fopenmp-simd
1518C ObjC C++ ObjC++ Var(flag_openmp_simd)
a7b2e184 1519Enable OpenMP's SIMD directives.
6d7f7e0a 1520
fef3106c
NB
1521foperator-names
1522C++ ObjC++
a7b2e184 1523Recognize C++ keywords like \"compl\" and \"xor\".
fef3106c
NB
1524
1525foptional-diags
2d2bd949 1526C++ ObjC++ Ignore
5498f011 1527Does nothing. Preserved for backward compatibility.
fef3106c
NB
1528
1529fpch-deps
1530C ObjC C++ ObjC++
1531
c0d578e6
GK
1532fpch-preprocess
1533C ObjC C++ ObjC++
a7b2e184 1534Look for and use PCH files even when preprocessing.
c0d578e6 1535
fef3106c 1536fpermissive
0c3641b0 1537C++ ObjC++ Var(flag_permissive)
a7b2e184 1538Downgrade conformance errors to warnings.
fef3106c 1539
478a1c5b
ILT
1540fplan9-extensions
1541C ObjC Var(flag_plan9_extensions)
a7b2e184 1542Enable Plan 9 language extensions.
478a1c5b 1543
fef3106c
NB
1544fpreprocessed
1545C ObjC C++ ObjC++
a7b2e184 1546Treat the input file as already preprocessed.
fef3106c 1547
92582b75
TT
1548ftrack-macro-expansion
1549C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1550; converted into ftrack-macro-expansion=
1551
1552ftrack-macro-expansion=
1553C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
a7b2e184 1554-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
92582b75 1555
6ea2bd47 1556fpretty-templates
5498f011 1557C++ ObjC++ Var(flag_pretty_templates) Init(1)
a7b2e184 1558-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
6ea2bd47 1559
88d0c3f0 1560fprintf-return-value
89990732 1561C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
88d0c3f0
MS
1562Treat known sprintf return values as constants.
1563
264fa2db 1564freplace-objc-classes
fb5610fb 1565ObjC ObjC++ LTO Var(flag_replace_objc_classes)
a7b2e184 1566Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
264fa2db 1567
fef3106c
NB
1568frepo
1569C++ ObjC++
a7b2e184 1570Enable automatic template instantiation.
fef3106c
NB
1571
1572frtti
5498f011 1573C++ ObjC++ Optimization Var(flag_rtti) Init(1)
a7b2e184 1574Generate run time type descriptor information.
fef3106c 1575
fef3106c 1576fshort-enums
dd6fe7d4 1577C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
a7b2e184 1578Use the narrowest integer type possible for enumeration types.
fef3106c
NB
1579
1580fshort-wchar
dd6fe7d4 1581C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
a7b2e184 1582Force the underlying type for \"wchar_t\" to be \"unsigned short\".
fef3106c 1583
fef3106c 1584fsigned-bitfields
5498f011 1585C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
a7b2e184 1586When \"signed\" or \"unsigned\" is not given make the bitfield signed.
fef3106c
NB
1587
1588fsigned-char
5498f011 1589C ObjC C++ ObjC++ LTO Var(flag_signed_char)
a7b2e184 1590Make \"char\" signed by default.
fef3106c 1591
20b06add
JM
1592fsized-deallocation
1593C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
a7b2e184 1594Enable C++14 sized deallocation support.
20b06add 1595
fef3106c 1596fsquangle
2d2bd949 1597C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1598
ee45a32d
EB
1599fsso-struct=
1600C ObjC Joined Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1601-fsso-struct=[big-endian|little-endian] Set the default scalar storage order.
1602
1603Enum
1604Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1605
1606EnumValue
1607Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1608
1609EnumValue
1610Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1611
fef3106c 1612fstats
5498f011 1613C++ ObjC++ Var(flag_detailed_statistics)
a7b2e184 1614Display statistics accumulated during compilation.
fef3106c 1615
cbb4feb3
JM
1616fstrict-enums
1617C++ ObjC++ Optimization Var(flag_strict_enums)
a7b2e184 1618Assume that values of enumeration type are always within the minimum range of that type.
cbb4feb3 1619
fef3106c 1620fstrict-prototype
2d2bd949 1621C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1622
d0cf395a
JM
1623fstrong-eval-order
1624C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1625Follow the C++17 evaluation order requirements for assignment expressions,
1626shift, member function calls, etc.
1627
1628fstrong-eval-order=
1629C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) Init(-1)
1630Follow the C++17 evaluation order requirements for assignment expressions,
1631shift, member function calls, etc.
1632
1633Enum
1634Name(strong_eval_order) Type(int)
1635
1636EnumValue
1637Enum(strong_eval_order) String(none) Value(0)
1638
1639EnumValue
1640Enum(strong_eval_order) String(some) Value(1)
1641
1642EnumValue
1643Enum(strong_eval_order) String(all) Value(2)
1644
fef3106c 1645ftabstop=
7b086b11 1646C ObjC C++ ObjC++ Joined RejectNegative UInteger
a7b2e184 1647-ftabstop=<number> Distance between tab stops for column reporting.
fef3106c 1648
a12bf402
MLI
1649ftemplate-backtrace-limit=
1650C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
a7b2e184 1651Set the maximum number of template instantiation notes for a single warning or error.
a12bf402 1652
fef3106c 1653ftemplate-depth-
5de8299c 1654C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
124e0d27
MLI
1655
1656ftemplate-depth=
c22cacf3 1657C++ ObjC++ Joined RejectNegative UInteger
a7b2e184 1658-ftemplate-depth=<number> Specify maximum template instantiation depth.
fef3106c
NB
1659
1660fthis-is-variable
2d2bd949 1661C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1662
40aac948 1663fthreadsafe-statics
5498f011 1664C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
a7b2e184 1665-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
40aac948 1666
fef3106c 1667funsigned-bitfields
f0036cca 1668C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
a7b2e184 1669When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
fef3106c
NB
1670
1671funsigned-char
f0036cca 1672C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
a7b2e184 1673Make \"char\" unsigned by default.
fef3106c
NB
1674
1675fuse-cxa-atexit
5498f011 1676C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
a7b2e184 1677Use __cxa_atexit to register destructors.
fef3106c 1678
c7b5e395 1679fuse-cxa-get-exception-ptr
5498f011 1680C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
a7b2e184 1681Use __cxa_get_exception_ptr in exception handling.
c7b5e395 1682
d7afec4b 1683fvisibility-inlines-hidden
d0b07283 1684C++ ObjC++
a7b2e184 1685Marks all inlined functions and methods as having hidden visibility.
d7afec4b 1686
ddbfd28d
GK
1687fvisibility-ms-compat
1688C++ ObjC++ Var(flag_visibility_ms_compat)
a7b2e184 1689Changes visibility to match Microsoft Visual Studio by default.
ddbfd28d 1690
fef3106c 1691fvtable-gc
2d2bd949 1692C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1693No longer supported.
fef3106c
NB
1694
1695fvtable-thunks
2d2bd949 1696C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1697No longer supported.
fef3106c
NB
1698
1699fweak
5498f011 1700C++ ObjC++ Var(flag_weak) Init(1)
a7b2e184 1701Emit common-like symbols as weak symbols.
fef3106c 1702
e6cc3a24
ZW
1703fwide-exec-charset=
1704C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1705-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
e6cc3a24 1706
b20d9f0c 1707fworking-directory
5498f011 1708C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
a7b2e184 1709Generate a #line directive pointing at the current working directory.
b20d9f0c 1710
fef3106c 1711fxref
2d2bd949 1712C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1713No longer supported.
fef3106c 1714
264fa2db 1715fzero-link
5498f011 1716ObjC ObjC++ Var(flag_zero_link)
a7b2e184 1717Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
264fa2db 1718
fef3106c 1719gen-decls
5498f011 1720ObjC ObjC++ Var(flag_gen_declaration)
a7b2e184 1721Dump declarations to a .decl file.
fef3106c 1722
39ef6592
LC
1723femit-struct-debug-baseonly
1724C ObjC C++ ObjC++
a7b2e184 1725-femit-struct-debug-baseonly Aggressive reduced debug info for structs.
39ef6592
LC
1726
1727femit-struct-debug-reduced
1728C ObjC C++ ObjC++
a7b2e184 1729-femit-struct-debug-reduced Conservative reduced debug info for structs.
39ef6592
LC
1730
1731femit-struct-debug-detailed=
1732C ObjC C++ ObjC++ Joined
a7b2e184 1733-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
39ef6592 1734
a4a0016d 1735fext-numeric-literals
dcb466ec 1736C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
a4a0016d
ESR
1737Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1738number literal rather than a user-defined number literal.
1739
fef3106c 1740idirafter
61ff2bdc 1741C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1742-idirafter <dir> Add <dir> to the end of the system include path.
fef3106c
NB
1743
1744imacros
61ff2bdc 1745C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
a7b2e184 1746-imacros <file> Accept definition of macros in <file>.
fef3106c 1747
2b6dd222
JM
1748imultilib
1749C ObjC C++ ObjC++ Joined Separate
a7b2e184 1750-imultilib <dir> Set <dir> to be the multilib include subdirectory.
2b6dd222 1751
fef3106c 1752include
61ff2bdc 1753C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
a7b2e184 1754-include <file> Include the contents of <file> before other files.
fef3106c
NB
1755
1756iprefix
1757C ObjC C++ ObjC++ Joined Separate
a7b2e184 1758-iprefix <path> Specify <path> as a prefix for next two options.
fef3106c
NB
1759
1760isysroot
61ff2bdc 1761C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1762-isysroot <dir> Set <dir> to be the system root directory.
fef3106c
NB
1763
1764isystem
61ff2bdc 1765C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1766-isystem <dir> Add <dir> to the start of the system include path.
fef3106c 1767
4bed3787 1768iquote
61ff2bdc 1769C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1770-iquote <dir> Add <dir> to the end of the quote include path.
4bed3787 1771
fef3106c
NB
1772iwithprefix
1773C ObjC C++ ObjC++ Joined Separate
a7b2e184 1774-iwithprefix <dir> Add <dir> to the end of the system include path.
fef3106c
NB
1775
1776iwithprefixbefore
1777C ObjC C++ ObjC++ Joined Separate
a7b2e184 1778-iwithprefixbefore <dir> Add <dir> to the end of the main include path.
fef3106c
NB
1779
1780lang-asm
603349bf 1781C Undocumented RejectDriver
fef3106c 1782
e200444e
JM
1783no-integrated-cpp
1784Driver
1785
fef3106c
NB
1786nostdinc
1787C ObjC C++ ObjC++
a7b2e184 1788Do not search standard system include directories (those specified with -isystem will still be used).
fef3106c
NB
1789
1790nostdinc++
72de27ea 1791C++ ObjC++
a7b2e184 1792Do not search standard system include directories for C++.
fef3106c
NB
1793
1794o
1795C ObjC C++ ObjC++ Joined Separate
72de27ea 1796; Documented in common.opt
fef3106c
NB
1797
1798pedantic
c1771a20 1799C ObjC C++ ObjC++ Alias(Wpedantic)
72de27ea 1800; Documented in common.opt
fef3106c 1801
fef3106c
NB
1802print-objc-runtime-info
1803ObjC ObjC++
a7b2e184 1804Generate C header of platform-specific features.
fef3106c
NB
1805
1806remap
1807C ObjC C++ ObjC++
a7b2e184 1808Remap file names when including files.
fef3106c
NB
1809
1810std=c++98
1811C++ ObjC++
a7b2e184 1812Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
c7dc8804
JM
1813
1814std=c++03
1815C++ ObjC++ Alias(std=c++98)
a7b2e184 1816Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
fef3106c 1817
97e3ad20 1818std=c++11
966541e3 1819C++ ObjC++
a7b2e184 1820Conform to the ISO 2011 C++ standard.
97e3ad20
JM
1821
1822std=c++0x
70e24808 1823C++ ObjC++ Alias(std=c++11) Undocumented
a7b2e184 1824Deprecated in favor of -std=c++11.
966541e3 1825
552b8185 1826std=c++1y
028aee17 1827C++ ObjC++ Alias(std=c++14) Undocumented
a7b2e184 1828Deprecated in favor of -std=c++14.
70e24808
JM
1829
1830std=c++14
381bf11e 1831C++ ObjC++
a7b2e184 1832Conform to the ISO 2014 C++ standard.
552b8185 1833
da73100b
JM
1834std=c++1z
1835C++ ObjC++
a7b2e184 1836Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
da73100b
JM
1837
1838std=c++17
1839C++ ObjC++ Alias(std=c++1z) Undocumented
1840
48b0b196 1841std=c11
2778d766 1842C ObjC
a7b2e184 1843Conform to the ISO 2011 C standard.
48b0b196
JM
1844
1845std=c1x
1846C ObjC Alias(std=c11)
a7b2e184 1847Deprecated in favor of -std=c11.
2778d766 1848
fef3106c 1849std=c89
5de8299c 1850C ObjC Alias(std=c90)
a7b2e184 1851Conform to the ISO 1990 C standard.
fef3106c 1852
7e1542b9
MLI
1853std=c90
1854C ObjC
a7b2e184 1855Conform to the ISO 1990 C standard.
7e1542b9 1856
fef3106c
NB
1857std=c99
1858C ObjC
a7b2e184 1859Conform to the ISO 1999 C standard.
fef3106c
NB
1860
1861std=c9x
5de8299c 1862C ObjC Alias(std=c99)
a7b2e184 1863Deprecated in favor of -std=c99.
fef3106c
NB
1864
1865std=gnu++98
1866C++ ObjC++
97e3ad20 1867Conform to the ISO 1998 C++ standard revised by the 2003 technical
a7b2e184 1868corrigendum with GNU extensions.
fef3106c 1869
97e3ad20
JM
1870std=gnu++03
1871C++ ObjC++ Alias(std=gnu++98)
1872Conform to the ISO 1998 C++ standard revised by the 2003 technical
a7b2e184 1873corrigendum with GNU extensions.
97e3ad20
JM
1874
1875std=gnu++11
966541e3 1876C++ ObjC++
a7b2e184 1877Conform to the ISO 2011 C++ standard with GNU extensions.
97e3ad20
JM
1878
1879std=gnu++0x
381bf11e 1880C++ ObjC++ Alias(std=gnu++11) Undocumented
a7b2e184 1881Deprecated in favor of -std=gnu++11.
966541e3 1882
552b8185 1883std=gnu++1y
028aee17 1884C++ ObjC++ Alias(std=gnu++14) Undocumented
a7b2e184 1885Deprecated in favor of -std=gnu++14.
552b8185 1886
a07f6ed2 1887std=gnu++14
028aee17 1888C++ ObjC++
a7b2e184 1889Conform to the ISO 2014 C++ standard with GNU extensions.
a07f6ed2 1890
da73100b
JM
1891std=gnu++1z
1892C++ ObjC++
a7b2e184 1893Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
da73100b
JM
1894
1895std=gnu++17
a545cacd 1896C++ ObjC++ Alias(std=gnu++1z) Undocumented
da73100b 1897
48b0b196 1898std=gnu11
2778d766 1899C ObjC
a7b2e184 1900Conform to the ISO 2011 C standard with GNU extensions.
48b0b196
JM
1901
1902std=gnu1x
1903C ObjC Alias(std=gnu11)
a7b2e184 1904Deprecated in favor of -std=gnu11.
2778d766 1905
fef3106c 1906std=gnu89
5de8299c 1907C ObjC Alias(std=gnu90)
a7b2e184 1908Conform to the ISO 1990 C standard with GNU extensions.
fef3106c 1909
7e1542b9
MLI
1910std=gnu90
1911C ObjC
a7b2e184 1912Conform to the ISO 1990 C standard with GNU extensions.
7e1542b9 1913
fef3106c
NB
1914std=gnu99
1915C ObjC
a7b2e184 1916Conform to the ISO 1999 C standard with GNU extensions.
fef3106c
NB
1917
1918std=gnu9x
5de8299c 1919C ObjC Alias(std=gnu99)
a7b2e184 1920Deprecated in favor of -std=gnu99.
fef3106c
NB
1921
1922std=iso9899:1990
5de8299c 1923C ObjC Alias(std=c90)
a7b2e184 1924Conform to the ISO 1990 C standard.
fef3106c
NB
1925
1926std=iso9899:199409
1927C ObjC
a7b2e184 1928Conform to the ISO 1990 C standard as amended in 1994.
fef3106c
NB
1929
1930std=iso9899:1999
5de8299c 1931C ObjC Alias(std=c99)
a7b2e184 1932Conform to the ISO 1999 C standard.
fef3106c
NB
1933
1934std=iso9899:199x
5de8299c 1935C ObjC Alias(std=c99)
a7b2e184 1936Deprecated in favor of -std=iso9899:1999.
fef3106c 1937
48b0b196
JM
1938std=iso9899:2011
1939C ObjC Alias(std=c11)
a7b2e184 1940Conform to the ISO 2011 C standard.
48b0b196 1941
e200444e
JM
1942traditional
1943Driver
1944
fef3106c
NB
1945traditional-cpp
1946C ObjC C++ ObjC++
a7b2e184 1947Enable traditional preprocessing.
fef3106c
NB
1948
1949trigraphs
1950C ObjC C++ ObjC++
a7b2e184 1951-trigraphs Support ISO C trigraphs.
fef3106c
NB
1952
1953undef
5498f011 1954C ObjC C++ ObjC++ Var(flag_undef)
a7b2e184 1955Do not predefine system-specific and GCC-specific macros.
fef3106c
NB
1956
1957v
d5478783
JM
1958C ObjC C++ ObjC++
1959; Documented in common.opt
fef3106c
NB
1960
1961w
1962C ObjC C++ ObjC++
72de27ea 1963; Documented in common.opt
e11a4ae5
NB
1964
1965; This comment is to ensure we retain the blank line above.