]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-family/c.opt
parallel_algorithm_assert2.cc: Move dg-do run first.
[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
ee92e7ba
MS
687Wstringop-overflow
688C ObjC C++ ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
689Warn about buffer overflow in string manipulation functions like memcpy
690and strcpy.
691
692Wstringop-overflow=
693C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning
694Under the control of Object Size type, warn about buffer overflow in string
695manipulation functions like memcpy and strcpy.
696
90137d8f
MLI
697Wsuggest-attribute=format
698C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
a7b2e184 699Warn about functions which might be candidates for format attributes.
fef3106c 700
2f42e5de
TS
701Wsuggest-override
702C++ ObjC++ Var(warn_override) Warning
703Suggest that the override keyword be used when the declaration of a virtual
704function overrides another.
705
34a180a6
MLI
706Wswitch
707C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 708Warn about enumerated switches, with no default, missing a case.
34a180a6
MLI
709
710Wswitch-default
711C ObjC C++ ObjC++ Var(warn_switch_default) Warning
a7b2e184 712Warn about enumerated switches missing a \"default:\" statement.
34a180a6
MLI
713
714Wswitch-enum
715C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
a7b2e184 716Warn about all enumerated switches missing a specific case.
34a180a6 717
fedfecef 718Wswitch-bool
5c3d09f7 719C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
a7b2e184 720Warn about switches with boolean controlling expression.
fedfecef 721
6b333269
NS
722Wtemplates
723C++ ObjC++ Var(warn_templates) Warning
a7b2e184 724Warn on primary template declaration.
6b333269 725
90137d8f 726Wmissing-format-attribute
54d62f51 727C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
90137d8f
MLI
728;
729
b02398bd 730Wmissing-include-dirs
b559c810 731C ObjC C++ ObjC++ CPP(warn_missing_include_dirs) CppReason(CPP_W_MISSING_INCLUDE_DIRS) Var(cpp_warn_missing_include_dirs) Init(0) Warning
a7b2e184 732Warn about user-specified include directories that do not exist.
b02398bd 733
cb4af25a 734Wmissing-parameter-type
95744782 735C ObjC Var(warn_missing_parameter_type) Warning EnabledBy(Wextra)
a7b2e184 736Warn about function parameters declared without a type specifier in K&R-style functions.
cb4af25a 737
fef3106c 738Wmissing-prototypes
c662432e 739C ObjC Var(warn_missing_prototypes) Warning
a7b2e184 740Warn about global functions without prototypes.
fef3106c 741
5720c0dc 742Wmudflap
98906124 743C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc 744
fef3106c 745Wmultichar
b559c810 746C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
a7b2e184 747Warn about use of multi-character character constants.
fef3106c 748
76f86d00 749Wnarrowing
765189ff 750C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
a7b2e184 751Warn about narrowing conversions within { } that are ill-formed in C++11.
76f86d00 752
fef3106c 753Wnested-externs
c662432e 754C ObjC Var(warn_nested_externs) Warning
a7b2e184 755Warn about \"extern\" declarations not at file scope.
fef3106c 756
59f9c2ed
JM
757Wnoexcept
758C++ ObjC++ Var(warn_noexcept) Warning
a7b2e184 759Warn when a noexcept expression evaluates to false even though the expression can't actually throw.
59f9c2ed 760
fef3106c 761Wnon-template-friend
c662432e 762C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
a7b2e184 763Warn when non-templatized friend functions are declared within a template.
fef3106c
NB
764
765Wnon-virtual-dtor
880a467b 766C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
a7b2e184 767Warn about non-virtual destructors.
fef3106c
NB
768
769Wnonnull
7332899a 770C ObjC C++ ObjC++ Var(warn_nonnull) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 1,0)
a7b2e184 771Warn about NULL being passed to argument slots marked as requiring non-NULL.
fef3106c 772
7332899a
MLI
773Wnonnull
774C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
775;
776
bf14eba2
JJ
777Wnonnull-compare
778C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
779;
780
1ef33fd4 781Wnormalized
54d62f51 782C ObjC C++ ObjC++ Warning Alias(Wnormalized=,nfc,none)
1ef33fd4
MLI
783;
784
50668cf6 785Wnormalized=
b559c810 786C 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 787-Wnormalized=<none|id|nfc|nfkc> Warn about non-normalised Unicode strings.
1ef33fd4
MLI
788
789; Required for these enum values.
790SourceInclude
791cpplib.h
792
793Enum
794Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
795
796EnumValue
797Enum(cpp_normalize_level) String(none) Value(normalized_none)
798
799EnumValue
800Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
801
802EnumValue
803Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
804
805EnumValue
806Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
50668cf6 807
fef3106c 808Wold-style-cast
c662432e 809C++ ObjC++ Var(warn_old_style_cast) Warning
a7b2e184 810Warn if a C-style cast is used in a program.
fef3106c 811
b1ed4cb4 812Wold-style-declaration
95744782 813C ObjC Var(warn_old_style_declaration) Warning EnabledBy(Wextra)
a7b2e184 814Warn for obsolescent usage in a declaration.
b1ed4cb4 815
c034f121 816Wold-style-definition
c662432e 817C ObjC Var(warn_old_style_definition) Warning
a7b2e184 818Warn if an old-style parameter definition is used.
c034f121 819
8b5e1202
SO
820Wopenmp-simd
821C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
a7b2e184 822Warn if a simd directive is overridden by the vectorizer cost model.
8b5e1202 823
89a42ac8 824Woverlength-strings
34a180a6 825C ObjC C++ ObjC++ Var(warn_overlength_strings) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
a7b2e184 826Warn if a string is longer than the maximum portable length specified by the standard.
89a42ac8 827
fef3106c 828Woverloaded-virtual
c662432e 829C++ ObjC++ Var(warn_overloaded_virtual) Warning
a7b2e184 830Warn about overloaded virtual function names.
fef3106c 831
7ed322d7 832Woverride-init
95744782 833C ObjC Var(warn_override_init) Warning EnabledBy(Wextra)
a7b2e184 834Warn about overriding initializers without side effects.
7ed322d7 835
755e528f
MP
836Woverride-init-side-effects
837C ObjC Var(warn_override_init_side_effects) Init(1) Warning
a7b2e184 838Warn about overriding initializers with side effects.
755e528f 839
2cd36c22 840Wpacked-bitfield-compat
bee6fa6d 841C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
a7b2e184 842Warn about packed bit-fields whose offset changed in GCC 4.4.
2cd36c22 843
fef3106c 844Wparentheses
4a0ae68e 845C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 846Warn about possibly missing parentheses.
fef3106c 847
c1771a20 848Wpedantic
b559c810 849C ObjC C++ ObjC++ CPP(cpp_pedantic) CppReason(CPP_W_PEDANTIC) Warning
c1771a20
MLI
850; Documented in common.opt
851
fef3106c 852Wpmf-conversions
c662432e 853C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
a7b2e184 854Warn when converting the type of pointers to member functions.
fef3106c
NB
855
856Wpointer-arith
44d90fe1 857C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic)
a7b2e184 858Warn about function pointer arithmetic.
fef3106c 859
4a0ae68e 860Wpointer-sign
27e51192 861C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic)
a7b2e184 862Warn when a pointer differs in signedness in an assignment.
4a0ae68e 863
53a2494e 864Wpointer-to-int-cast
c662432e 865C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
a7b2e184 866Warn when a pointer is cast to an integer of a different size.
53a2494e 867
b9b8dde3 868Wpragmas
c662432e 869C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
a7b2e184 870Warn about misuses of pragmas.
b9b8dde3 871
9a179d01
NP
872Wproperty-assign-default
873ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
a7b2e184 874Warn if a property for an Objective-C object has no assign semantics specified.
9a179d01 875
fef3106c 876Wprotocol
c662432e 877ObjC ObjC++ Var(warn_protocol) Init(1) Warning
a7b2e184 878Warn if inherited methods are unimplemented.
fef3106c 879
e2f5cc96 880Wplacement-new
46cb9332
MS
881C++ Warning Alias(Wplacement-new=, 1, 0)
882Warn for placement new expressions with undefined behavior.
883
884Wplacement-new=
885C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning
eb11eb15 886Warn for placement new expressions with undefined behavior.
e2f5cc96 887
fef3106c 888Wredundant-decls
c662432e 889C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
a7b2e184 890Warn about multiple declarations of the same object.
fef3106c 891
a2c6e7f2
JJ
892Wregister
893C++ ObjC++ Var(warn_register) Warning
894Warn about uses of register storage specifier.
895
fef3106c 896Wreorder
f2bc201f 897C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 898Warn when the compiler reorders code.
fef3106c
NB
899
900Wreturn-type
4a0ae68e 901C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 902Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
fef3106c 903
ee45a32d
EB
904Wscalar-storage-order
905C ObjC C++ ObjC++ Init(1) Warning
906Warn on suspicious constructs involving reverse scalar storage order.
907
fef3106c 908Wselector
c662432e 909ObjC ObjC++ Var(warn_selector) Warning
a7b2e184 910Warn if a selector has multiple methods.
fef3106c 911
13c21655
PC
912Wsequence-point
913C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 914Warn about possible violations of sequence point rules.
13c21655 915
dcaaa5a0 916Wshadow-ivar
dff8943f 917ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
a7b2e184 918Warn if a local declaration hides an instance variable.
dcaaa5a0 919
451b5e48
MP
920Wshift-overflow
921C ObjC C++ ObjC++ Warning Alias(Wshift-overflow=, 1, 0)
a7b2e184 922Warn if left shift of a signed value overflows.
451b5e48
MP
923
924Wshift-overflow=
925C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_shift_overflow) Init(-1) Warning
a7b2e184 926Warn if left shift of a signed value overflows.
451b5e48 927
13c21655
PC
928Wshift-count-negative
929C ObjC C++ ObjC++ Var(warn_shift_count_negative) Init(1) Warning
a7b2e184 930Warn if shift count is negative.
13c21655
PC
931
932Wshift-count-overflow
933C ObjC C++ ObjC++ Var(warn_shift_count_overflow) Init(1) Warning
a7b2e184 934Warn if shift count >= width of type.
fef3106c 935
0173bd2a
MP
936Wshift-negative-value
937C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
a7b2e184 938Warn if left shifting a negative value.
0173bd2a 939
fef3106c 940Wsign-compare
4a0ae68e 941C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
a7b2e184 942Warn about signed-unsigned comparisons.
fef3106c 943
4a0ae68e
MLI
944Wsign-compare
945C ObjC C++ ObjC++ EnabledBy(Wextra)
946;
947
948Wsign-conversion
63bbf46d 949C ObjC C++ ObjC++ Var(warn_sign_conversion) Warning LangEnabledBy(C ObjC,Wconversion)
a7b2e184 950Warn for implicit type conversions between signed and unsigned integers.
4a0ae68e 951
fef3106c 952Wsign-promo
c662432e 953C++ ObjC++ Var(warn_sign_promo) Warning
a7b2e184 954Warn when overload promotes from unsigned to signed.
fef3106c 955
b2f97e4a 956Wstrict-null-sentinel
5498f011 957C++ ObjC++ Warning Var(warn_strict_null_sentinel)
a7b2e184 958Warn about uncasted NULL used as sentinel.
b2f97e4a 959
fef3106c 960Wstrict-prototypes
c662432e 961C ObjC Var(warn_strict_prototypes) Warning
a7b2e184 962Warn about unprototyped function declarations.
fef3106c 963
65d4f2cd
MLI
964Wstrict-aliasing=
965C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0)
966;
967
968Wstrict-overflow=
969C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
970;
971
6e955430 972Wstrict-selector-match
c662432e 973ObjC ObjC++ Var(warn_strict_selector_match) Warning
a7b2e184 974Warn if type signatures of candidate methods do not match exactly.
6e955430 975
23462d4d
UB
976Wsync-nand
977C C++ Var(warn_sync_nand) Init(1) Warning
a7b2e184 978Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
23462d4d 979
fef3106c 980Wsynth
c662432e 981C++ ObjC++ Var(warn_synth) Warning
a7b2e184 982Deprecated. This switch has no effect.
fef3106c
NB
983
984Wsystem-headers
c662432e 985C ObjC C++ ObjC++ Warning
9a0f3e86 986; Documented in common.opt
fef3106c 987
05b28fd6
MP
988Wtautological-compare
989C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 990Warn if a comparison always evaluates to true or false.
05b28fd6 991
8243e2a9
JM
992Wterminate
993C++ ObjC++ Warning Var(warn_terminate) Init(1)
a7b2e184 994Warn if a throw expression will always result in a call to terminate().
8243e2a9 995
fef3106c 996Wtraditional
b559c810 997C ObjC CPP(cpp_warn_traditional) CppReason(CPP_W_TRADITIONAL) Var(warn_traditional) Init(0) Warning
a7b2e184 998Warn about features not present in traditional C.
fef3106c 999
05170031 1000Wtraditional-conversion
c662432e 1001C ObjC Var(warn_traditional_conversion) Warning
a7b2e184 1002Warn of prototypes causing type conversions different from what would happen in the absence of prototype.
05170031 1003
fef3106c 1004Wtrigraphs
b559c810 1005C ObjC C++ ObjC++ CPP(warn_trigraphs) CppReason(CPP_W_TRIGRAPHS) Var(cpp_warn_trigraphs) Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 1006Warn if trigraphs are encountered that might affect the meaning of the program.
fef3106c
NB
1007
1008Wundeclared-selector
c662432e 1009ObjC ObjC++ Var(warn_undeclared_selector) Warning
a7b2e184 1010Warn about @selector()s without previously declared methods.
fef3106c
NB
1011
1012Wundef
b559c810 1013C ObjC C++ ObjC++ CPP(warn_undef) CppReason(CPP_W_UNDEF) Var(cpp_warn_undef) Init(0) Warning
a7b2e184 1014Warn if an undefined macro is used in an #if directive.
fef3106c 1015
4a0ae68e
MLI
1016Wuninitialized
1017C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1018;
1019
1020Wmaybe-uninitialized
1021C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1022;
1023
fef3106c 1024Wunknown-pragmas
34a180a6 1025C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
a7b2e184 1026Warn about unrecognized pragmas.
fef3106c 1027
6ec637a4
JJ
1028Wunsuffixed-float-constants
1029C ObjC Var(warn_unsuffixed_float_constants) Warning
a7b2e184 1030Warn about unsuffixed float constants.
6ec637a4 1031
4a0ae68e
MLI
1032Wunused
1033C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
1034; documented in common.opt
1035
3797cb21 1036Wunused-local-typedefs
650dc14a 1037C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
a7b2e184 1038Warn when typedefs locally defined in a function are not used.
3797cb21 1039
fef3106c 1040Wunused-macros
b559c810 1041C ObjC C++ ObjC++ CppReason(CPP_W_UNUSED_MACROS) Var(cpp_warn_unused_macros) Warning
a7b2e184 1042Warn about macros defined in the main file that are not used.
fef3106c 1043
156f545a
MLI
1044Wunused-result
1045C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
a7b2e184 1046Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
156f545a 1047
0f876f22
MW
1048Wunused-variable
1049C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
1050; documented in common.opt
1051
1052Wunused-const-variable
4246c8da
MW
1053C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
1054Warn when a const variable is unused.
1055
1056Wunused-const-variable=
1057C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0)
a7b2e184 1058Warn when a const variable is unused.
0f876f22 1059
e5b79219 1060Wvariadic-macros
27e51192 1061C 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 1062Warn about using variadic macros.
e5b79219 1063
b9c8da34
DS
1064Wvarargs
1065C ObjC C++ ObjC++ Warning Var(warn_varargs) Init(1)
a7b2e184 1066Warn about questionable usage of the macros used to retrieve variable arguments.
b9c8da34 1067
50d50fc7
SP
1068Wvla
1069C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
a7b2e184 1070Warn if a variable length array is used.
50d50fc7 1071
adc577c5
AH
1072Wvla-larger-than=
1073C ObjC C++ ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative UInteger
1074-Wvla-larger-than=<number> Warn on unbounded uses of variable-length arrays, and
1075on bounded uses of variable-length arrays whose bound can be
1076larger than <number> bytes.
1077
16302daf 1078Wvolatile-register-var
4a0ae68e 1079C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
a7b2e184 1080Warn when a register variable is declared volatile.
16302daf 1081
6b333269
NS
1082Wvirtual-inheritance
1083C++ ObjC++ Var(warn_virtual_inheritance) Warning
a7b2e184 1084Warn on direct virtual inheritance.
6b333269 1085
f14edc1a
JM
1086Wvirtual-move-assign
1087C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
a7b2e184 1088Warn if a virtual base has a non-trivial move assignment operator.
f14edc1a 1089
fef3106c 1090Wwrite-strings
c662432e 1091C ObjC C++ ObjC++ Var(warn_write_strings) Warning
d8a07487 1092In 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 1093
89401152
PC
1094Wzero-as-null-pointer-constant
1095C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
a7b2e184 1096Warn when a literal '0' is used as null pointer.
89401152 1097
04398fa8
PC
1098Wuseless-cast
1099C++ ObjC++ Var(warn_useless_cast) Warning
a7b2e184 1100Warn about useless casts.
04398fa8 1101
273aa49e
PC
1102Wsubobject-linkage
1103C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
a7b2e184 1104Warn 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 1105
d6e83a8d
MM
1106Wduplicate-decl-specifier
1107C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
1108Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
1109
975672f3
PK
1110Wrestrict
1111C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++)
1112Warn when an argument passed to a restrict-qualified parameter aliases with
1113another argument.
1114
fef3106c
NB
1115ansi
1116C ObjC C++ ObjC++
a7b2e184 1117A synonym for -std=c89 (for C) or -std=c++98 (for C++).
fef3106c
NB
1118
1119d
1120C ObjC C++ ObjC++ Joined
72de27ea 1121; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 1122
62984918
JM
1123fabi-compat-version=
1124C++ ObjC++ Joined RejectNegative UInteger Var(flag_abi_compat_version) Init(-1)
a7b2e184 1125The version of the C++ ABI used for -Wabi warnings and link compatibility aliases.
62984918 1126
fef3106c 1127faccess-control
5498f011 1128C++ ObjC++ Var(flag_access_control) Init(1)
a7b2e184 1129Enforce class member access control semantics.
fef3106c 1130
da5182be
TQ
1131fada-spec-parent=
1132C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
a7b2e184 1133-fada-spec-parent=unit Dump Ada specs as child units of given parent.
da5182be 1134
af63ba4b
JM
1135faligned-new
1136C++ ObjC++ Alias(faligned-new=,1,0)
1137Support C++17 allocation of over-aligned types.
1138
1139faligned-new=
2e1c20b1 1140C++ ObjC++ Joined RejectNegative Var(aligned_new_threshold) UInteger Init(-1)
af63ba4b
JM
1141-faligned-new=<N> Use C++17 over-aligned type allocation for alignments greater than N.
1142
fef3106c 1143fall-virtual
2d2bd949 1144C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1145
6637388f
TG
1146fallow-parameterless-variadic-functions
1147C ObjC Var(flag_allow_parameterless_variadic_functions)
a7b2e184 1148Allow variadic functions without named parameter.
6637388f 1149
fef3106c 1150falt-external-templates
2d2bd949 1151C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1152No longer supported.
fef3106c
NB
1153
1154fasm
5498f011 1155C ObjC C++ ObjC++ Var(flag_no_asm, 0)
a7b2e184 1156Recognize the \"asm\" keyword.
fef3106c 1157
10e48e39
RO
1158; Define extra predefined macros for use in libgcc.
1159fbuilding-libgcc
1160C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
1161
fef3106c 1162fbuiltin
5498f011 1163C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
a7b2e184 1164Recognize built-in functions.
fef3106c
NB
1165
1166fbuiltin-
1167C ObjC C++ ObjC++ Joined
1168
5dc99c46
SB
1169fcanonical-system-headers
1170C ObjC C++ ObjC++
1171Where shorter, use canonicalized paths to systems headers.
1172
d5e254e1 1173fcheck-pointer-bounds
79d64904 1174C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
d5e254e1
IE
1175Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
1176control instrumentation. Currently available for C, C++ and ObjC.
1177
1178fchkp-check-incomplete-type
79d64904 1179C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
a7b2e184 1180Generate pointer bounds checks for variables with incomplete type.
d5e254e1
IE
1181
1182fchkp-zero-input-bounds-for-main
79d64904 1183C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
d5e254e1
IE
1184Use zero bounds for all incoming arguments in 'main' function. It helps when
1185instrumented binaries are used with legacy libs.
1186
1187fchkp-first-field-has-own-bounds
79d64904 1188C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
d5e254e1
IE
1189Forces Pointer Bounds Checker to use narrowed bounds for address of the first
1190field in the structure. By default pointer to the first field has the same
1191bounds as pointer to the whole structure.
1192
1193fchkp-narrow-bounds
79d64904 1194C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
d5e254e1
IE
1195Control how Pointer Bounds Checker handle pointers to object fields. When
1196narrowing is on, field bounds are used. Otherwise full object bounds are used.
1197
1198fchkp-narrow-to-innermost-array
79d64904 1199C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
d5e254e1
IE
1200Forces Pointer Bounds Checker to use bounds of the innermost arrays in case of
1201nested static arryas access. By default outermost array is used.
1202
1203fchkp-optimize
1204C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
1205Allow Pointer Bounds Checker optimizations. By default allowed
1206on optimization levels >0.
1207
1208fchkp-use-fast-string-functions
1209C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
1210Allow to use *_nobnd versions of string functions by Pointer Bounds Checker.
1211
1212fchkp-use-nochk-string-functions
1213C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
1214Allow to use *_nochk versions of string functions by Pointer Bounds Checker.
1215
1216fchkp-use-static-bounds
79d64904 1217C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
d5e254e1
IE
1218Use statically initialized variable for vars bounds instead of
1219generating them each time it is required.
1220
1221fchkp-use-static-const-bounds
79d64904 1222C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
d5e254e1
IE
1223Use statically initialized variable for constant bounds instead of
1224generating them each time it is required.
1225
1226fchkp-treat-zero-dynamic-size-as-infinite
79d64904 1227C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
d5e254e1
IE
1228With this option zero size obtained dynamically for objects with
1229incomplete type will be treated as infinite.
1230
1231fchkp-check-read
1232C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
1233Generate checks for all read accesses to memory.
1234
1235fchkp-check-write
1236C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
1237Generate checks for all write accesses to memory.
1238
1239fchkp-store-bounds
1240C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
1241Generate bounds stores for pointer writes.
1242
1243fchkp-instrument-calls
1244C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
1245Generate bounds passing for calls.
1246
1247fchkp-instrument-marked-only
1248C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
1249Instrument only functions marked with bnd_instrument attribute.
1250
226d62d2
IE
1251fchkp-use-wrappers
1252C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1253Transform instrumented builtin calls into calls to wrappers.
1254
5373cd33
IE
1255static-libmpx
1256Driver
1257
d2d7e672
IE
1258static-libmpxwrappers
1259Driver
1260
36536d79 1261fcilkplus
b72271b9 1262C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
a7b2e184 1263Enable Cilk Plus.
36536d79 1264
971e17ff
AS
1265fconcepts
1266C++ ObjC++ Var(flag_concepts)
a7b2e184 1267Enable support for C++ concepts.
971e17ff 1268
fef3106c
NB
1269fcond-mismatch
1270C ObjC C++ ObjC++
a7b2e184 1271Allow the arguments of the '?' operator to have different types.
fef3106c
NB
1272
1273fconserve-space
5498f011 1274C++ ObjC++ Var(flag_conserve_space)
6f07a821 1275Does nothing. Preserved for backward compatibility.
fef3106c 1276
fef3106c 1277fconstant-string-class=
61ff2bdc 1278ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
a7b2e184 1279-fconst-string-class=<name> Use class <name> for constant strings.
fef3106c 1280
17bc631c 1281fconstexpr-depth=
49a000c3 1282C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
a7b2e184 1283-fconstexpr-depth=<number> Specify maximum constexpr recursion depth.
17bc631c 1284
5ec2cd9f
JM
1285fconstexpr-loop-limit=
1286C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144)
1287-fconstexpr-loop-limit=<number> Specify maximum constexpr loop iteration count.
1288
847e697a
TT
1289fdebug-cpp
1290C ObjC C++ ObjC++
a7b2e184 1291Emit debug annotations during preprocessing.
847e697a 1292
5f5babf1 1293fdeduce-init-list
15694fdd 1294C++ ObjC++ Var(flag_deduce_init_list) Init(0)
a7b2e184 1295-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list.
5f5babf1 1296
1f26ac87
JM
1297fdeclone-ctor-dtor
1298C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
a7b2e184 1299Factor complex constructors and destructors to favor space over speed.
1f26ac87 1300
fef3106c 1301fdefault-inline
2d2bd949 1302C++ ObjC++ Ignore
5498f011 1303Does nothing. Preserved for backward compatibility.
fef3106c 1304
ccfc4c91
OW
1305fdirectives-only
1306C ObjC C++ ObjC++
1307Preprocess directives only.
1308
fef3106c
NB
1309fdollars-in-identifiers
1310C ObjC C++ ObjC++
a7b2e184 1311Permit '$' as an identifier character.
fef3106c 1312
3b78de56
AC
1313fdump-ada-spec
1314C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
a7b2e184 1315Write all declarations as Ada code transitively.
3b78de56
AC
1316
1317fdump-ada-spec-slim
1318C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
a7b2e184 1319Write all declarations as Ada code for the given file only.
3b78de56 1320
fef3106c 1321felide-constructors
5498f011 1322C++ ObjC++ Var(flag_elide_constructors) Init(1)
fef3106c
NB
1323
1324fenforce-eh-specs
5498f011 1325C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
a7b2e184 1326Generate code to check exception specifications.
fef3106c
NB
1327
1328fenum-int-equiv
2d2bd949 1329C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1330
e6cc3a24
ZW
1331fexec-charset=
1332C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1333-fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
e6cc3a24 1334
af15a2fe
JM
1335fextended-identifiers
1336C ObjC C++ ObjC++
a7b2e184 1337Permit universal character names (\\u and \\U) in identifiers.
af15a2fe 1338
16dd5cfe
EC
1339finput-charset=
1340C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1341-finput-charset=<cset> Specify the default character set for source files.
16dd5cfe 1342
5af057d8
JM
1343fextern-tls-init
1344C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
a7b2e184 1345Support dynamic initialization of thread-local variables in a different translation unit.
16dd5cfe 1346
fef3106c 1347fexternal-templates
2d2bd949 1348C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1349
fef3106c 1350ffor-scope
5498f011 1351C++ ObjC++ Var(flag_new_for_scope) Init(1)
a7b2e184 1352Scope of for-init-statement variables is local to the loop.
fef3106c
NB
1353
1354ffreestanding
820b51ae 1355C ObjC C++ ObjC++
a7b2e184 1356Do not assume that standard C libraries and \"main\" exist.
fef3106c
NB
1357
1358fgnu-keywords
5498f011 1359C++ ObjC++ Var(flag_no_gnu_keywords, 0)
a7b2e184 1360Recognize GNU-defined keywords.
fef3106c
NB
1361
1362fgnu-runtime
fb5610fb 1363ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
a7b2e184 1364Generate code for GNU runtime environment.
fef3106c 1365
da1c7394 1366fgnu89-inline
2cbac420 1367C ObjC Var(flag_gnu89_inline) Init(-1)
a7b2e184 1368Use traditional GNU semantics for inline functions.
da1c7394 1369
fef3106c 1370fguiding-decls
2d2bd949 1371C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1372
1373fhandle-exceptions
2d2bd949 1374C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
fef3106c
NB
1375
1376fhonor-std
2d2bd949 1377C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1378
1379fhosted
1380C ObjC
a7b2e184 1381Assume normal C execution environment.
fef3106c
NB
1382
1383fhuge-objects
2d2bd949 1384C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1385No longer supported.
fef3106c
NB
1386
1387fimplement-inlines
5498f011 1388C++ ObjC++ Var(flag_implement_inlines) Init(1)
a7b2e184 1389Export functions even if they can be inlined.
fef3106c
NB
1390
1391fimplicit-inline-templates
5498f011 1392C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
a7b2e184 1393Emit implicit instantiations of inline templates.
fef3106c
NB
1394
1395fimplicit-templates
5498f011 1396C++ ObjC++ Var(flag_implicit_templates) Init(1)
a7b2e184 1397Emit implicit instantiations of templates.
fef3106c 1398
31f7f784
JM
1399fnew-inheriting-ctors
1400C++ ObjC++ Var(flag_new_inheriting_ctors) Init(1)
1401Implement C++17 inheriting constructor semantics.
1402
d63d5d0c 1403ffriend-injection
2cbac420 1404C++ ObjC++ Var(flag_friend_injection)
a7b2e184 1405Inject friend functions into enclosing namespace.
d63d5d0c 1406
47ea1edf
DK
1407fkeep-inline-dllexport
1408C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
a7b2e184 1409Don't emit dllexported inline functions unless needed.
47ea1edf 1410
fef3106c 1411flabels-ok
2d2bd949 1412C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1413
00c8e9f6 1414flax-vector-conversions
5498f011 1415C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
00c8e9f6
MS
1416Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1417
fef3106c 1418fms-extensions
5498f011 1419C ObjC C++ ObjC++ Var(flag_ms_extensions)
a7b2e184 1420Don't warn about uses of Microsoft extensions.
fef3106c 1421
5720c0dc 1422fmudflap
98906124 1423C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1424
1425fmudflapth
98906124 1426C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1427
1428fmudflapir
98906124 1429C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc 1430
fef3106c 1431fname-mangling-version-
2d2bd949 1432C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1433
1434fnew-abi
2d2bd949 1435C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1436
1437fnext-runtime
fb5610fb 1438ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
a7b2e184 1439Generate code for NeXT (Apple Mac OS X) runtime environment.
264fa2db
ZL
1440
1441fnil-receivers
5498f011 1442ObjC ObjC++ Var(flag_nil_receivers) Init(1)
a7b2e184 1443Assume that receivers of Objective-C messages may be nil.
fef3106c 1444
dcaaa5a0
DP
1445flocal-ivars
1446ObjC ObjC++ Var(flag_local_ivars) Init(1)
1447Allow access to instance variables as if they were local declarations within instance method implementations.
1448
1449fivar-visibility=
1450ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
a7b2e184 1451-fvisibility=[private|protected|public|package] Set the default symbol visibility.
dcaaa5a0
DP
1452
1453Enum
1454Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1455
1456EnumValue
1457Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1458
1459EnumValue
1460Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1461
1462EnumValue
1463Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1464
1465EnumValue
1466Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1467
fef3106c 1468fnonansi-builtins
5498f011 1469C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
fef3106c
NB
1470
1471fnonnull-objects
2d2bd949 1472C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1473
9feb3d6a
JM
1474fnothrow-opt
1475C++ ObjC++ Optimization Var(flag_nothrow_opt)
a7b2e184 1476Treat a throw() exception specification as noexcept to improve code size.
9feb3d6a 1477
0a256240 1478fobjc-abi-version=
fb5610fb 1479ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
0a256240
NP
1480Specify which ABI to use for Objective-C family code and meta-data generation.
1481
6e955430
ZL
1482; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1483; to initialize any non-POD ivars in Objective-C++ classes.
1484fobjc-call-cxx-cdtors
1485ObjC++ Var(flag_objc_call_cxx_cdtors)
a7b2e184 1486Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed.
6e955430
ZL
1487
1488fobjc-direct-dispatch
1489ObjC ObjC++ Var(flag_objc_direct_dispatch)
a7b2e184 1490Allow fast jumps to the message dispatcher.
6e955430
ZL
1491
1492; Nonzero means that we will allow new ObjC exception syntax (@throw,
1493; @try, etc.) in source code.
264fa2db 1494fobjc-exceptions
6e955430 1495ObjC ObjC++ Var(flag_objc_exceptions)
a7b2e184 1496Enable Objective-C exception and synchronization syntax.
264fa2db 1497
6e955430 1498fobjc-gc
fb5610fb 1499ObjC ObjC++ LTO Var(flag_objc_gc)
a7b2e184 1500Enable garbage collection (GC) in Objective-C/Objective-C++ programs.
6e955430 1501
0a256240
NP
1502fobjc-nilcheck
1503ObjC ObjC++ Var(flag_objc_nilcheck,1)
1504Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1505
6e955430 1506; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 1507fobjc-sjlj-exceptions
6e955430 1508ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
a7b2e184 1509Enable Objective-C setjmp exception handling runtime.
093c7153 1510
22d8d616
NP
1511fobjc-std=objc1
1512ObjC ObjC++ Var(flag_objc1_only)
a7b2e184 1513Conform to the Objective-C 1.0 language as implemented in GCC 4.0.
22d8d616 1514
41dbbb37 1515fopenacc
a0c88d06 1516C ObjC C++ ObjC++ LTO Var(flag_openacc)
a7b2e184 1517Enable OpenACC.
41dbbb37 1518
b6adbb9f
NS
1519fopenacc-dim=
1520C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
1521Specify default OpenACC compute dimensions.
1522
953ff289 1523fopenmp
1506ae0e 1524C ObjC C++ ObjC++ LTO Var(flag_openmp)
a7b2e184 1525Enable OpenMP (implies -frecursive in Fortran).
953ff289 1526
6d7f7e0a
TB
1527fopenmp-simd
1528C ObjC C++ ObjC++ Var(flag_openmp_simd)
a7b2e184 1529Enable OpenMP's SIMD directives.
6d7f7e0a 1530
fef3106c
NB
1531foperator-names
1532C++ ObjC++
a7b2e184 1533Recognize C++ keywords like \"compl\" and \"xor\".
fef3106c
NB
1534
1535foptional-diags
2d2bd949 1536C++ ObjC++ Ignore
5498f011 1537Does nothing. Preserved for backward compatibility.
fef3106c
NB
1538
1539fpch-deps
1540C ObjC C++ ObjC++
1541
c0d578e6
GK
1542fpch-preprocess
1543C ObjC C++ ObjC++
a7b2e184 1544Look for and use PCH files even when preprocessing.
c0d578e6 1545
fef3106c 1546fpermissive
0c3641b0 1547C++ ObjC++ Var(flag_permissive)
a7b2e184 1548Downgrade conformance errors to warnings.
fef3106c 1549
478a1c5b
ILT
1550fplan9-extensions
1551C ObjC Var(flag_plan9_extensions)
a7b2e184 1552Enable Plan 9 language extensions.
478a1c5b 1553
fef3106c
NB
1554fpreprocessed
1555C ObjC C++ ObjC++
a7b2e184 1556Treat the input file as already preprocessed.
fef3106c 1557
92582b75
TT
1558ftrack-macro-expansion
1559C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1560; converted into ftrack-macro-expansion=
1561
1562ftrack-macro-expansion=
1563C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
a7b2e184 1564-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages.
92582b75 1565
6ea2bd47 1566fpretty-templates
5498f011 1567C++ ObjC++ Var(flag_pretty_templates) Init(1)
a7b2e184 1568-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments.
6ea2bd47 1569
88d0c3f0 1570fprintf-return-value
89990732 1571C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
88d0c3f0
MS
1572Treat known sprintf return values as constants.
1573
264fa2db 1574freplace-objc-classes
fb5610fb 1575ObjC ObjC++ LTO Var(flag_replace_objc_classes)
a7b2e184 1576Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
264fa2db 1577
fef3106c
NB
1578frepo
1579C++ ObjC++
a7b2e184 1580Enable automatic template instantiation.
fef3106c
NB
1581
1582frtti
5498f011 1583C++ ObjC++ Optimization Var(flag_rtti) Init(1)
a7b2e184 1584Generate run time type descriptor information.
fef3106c 1585
fef3106c 1586fshort-enums
dd6fe7d4 1587C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
a7b2e184 1588Use the narrowest integer type possible for enumeration types.
fef3106c
NB
1589
1590fshort-wchar
dd6fe7d4 1591C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
a7b2e184 1592Force the underlying type for \"wchar_t\" to be \"unsigned short\".
fef3106c 1593
fef3106c 1594fsigned-bitfields
5498f011 1595C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
a7b2e184 1596When \"signed\" or \"unsigned\" is not given make the bitfield signed.
fef3106c
NB
1597
1598fsigned-char
5498f011 1599C ObjC C++ ObjC++ LTO Var(flag_signed_char)
a7b2e184 1600Make \"char\" signed by default.
fef3106c 1601
20b06add
JM
1602fsized-deallocation
1603C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
a7b2e184 1604Enable C++14 sized deallocation support.
20b06add 1605
fef3106c 1606fsquangle
2d2bd949 1607C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1608
ee45a32d
EB
1609fsso-struct=
1610C ObjC Joined Enum(sso_struct) Var(default_sso) Init(SSO_NATIVE)
1611-fsso-struct=[big-endian|little-endian] Set the default scalar storage order.
1612
1613Enum
1614Name(sso_struct) Type(enum scalar_storage_order_kind) UnknownError(unrecognized scalar storage order value %qs)
1615
1616EnumValue
1617Enum(sso_struct) String(big-endian) Value(SSO_BIG_ENDIAN)
1618
1619EnumValue
1620Enum(sso_struct) String(little-endian) Value(SSO_LITTLE_ENDIAN)
1621
fef3106c 1622fstats
5498f011 1623C++ ObjC++ Var(flag_detailed_statistics)
a7b2e184 1624Display statistics accumulated during compilation.
fef3106c 1625
cbb4feb3
JM
1626fstrict-enums
1627C++ ObjC++ Optimization Var(flag_strict_enums)
a7b2e184 1628Assume that values of enumeration type are always within the minimum range of that type.
cbb4feb3 1629
fef3106c 1630fstrict-prototype
2d2bd949 1631C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1632
d0cf395a
JM
1633fstrong-eval-order
1634C++ ObjC++ Common Alias(fstrong-eval-order=, all, none)
1635Follow the C++17 evaluation order requirements for assignment expressions,
1636shift, member function calls, etc.
1637
1638fstrong-eval-order=
1639C++ ObjC++ Common Var(flag_strong_eval_order) Joined Enum(strong_eval_order) Init(-1)
1640Follow the C++17 evaluation order requirements for assignment expressions,
1641shift, member function calls, etc.
1642
1643Enum
1644Name(strong_eval_order) Type(int)
1645
1646EnumValue
1647Enum(strong_eval_order) String(none) Value(0)
1648
1649EnumValue
1650Enum(strong_eval_order) String(some) Value(1)
1651
1652EnumValue
1653Enum(strong_eval_order) String(all) Value(2)
1654
fef3106c 1655ftabstop=
7b086b11 1656C ObjC C++ ObjC++ Joined RejectNegative UInteger
a7b2e184 1657-ftabstop=<number> Distance between tab stops for column reporting.
fef3106c 1658
a12bf402
MLI
1659ftemplate-backtrace-limit=
1660C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
a7b2e184 1661Set the maximum number of template instantiation notes for a single warning or error.
a12bf402 1662
fef3106c 1663ftemplate-depth-
5de8299c 1664C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
124e0d27
MLI
1665
1666ftemplate-depth=
c22cacf3 1667C++ ObjC++ Joined RejectNegative UInteger
a7b2e184 1668-ftemplate-depth=<number> Specify maximum template instantiation depth.
fef3106c
NB
1669
1670fthis-is-variable
2d2bd949 1671C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1672
40aac948 1673fthreadsafe-statics
5498f011 1674C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
a7b2e184 1675-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
40aac948 1676
fef3106c 1677funsigned-bitfields
f0036cca 1678C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
a7b2e184 1679When \"signed\" or \"unsigned\" is not given make the bitfield unsigned.
fef3106c
NB
1680
1681funsigned-char
f0036cca 1682C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
a7b2e184 1683Make \"char\" unsigned by default.
fef3106c
NB
1684
1685fuse-cxa-atexit
5498f011 1686C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
a7b2e184 1687Use __cxa_atexit to register destructors.
fef3106c 1688
c7b5e395 1689fuse-cxa-get-exception-ptr
5498f011 1690C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
a7b2e184 1691Use __cxa_get_exception_ptr in exception handling.
c7b5e395 1692
d7afec4b 1693fvisibility-inlines-hidden
d0b07283 1694C++ ObjC++
a7b2e184 1695Marks all inlined functions and methods as having hidden visibility.
d7afec4b 1696
ddbfd28d
GK
1697fvisibility-ms-compat
1698C++ ObjC++ Var(flag_visibility_ms_compat)
a7b2e184 1699Changes visibility to match Microsoft Visual Studio by default.
ddbfd28d 1700
fef3106c 1701fvtable-gc
2d2bd949 1702C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1703No longer supported.
fef3106c
NB
1704
1705fvtable-thunks
2d2bd949 1706C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1707No longer supported.
fef3106c
NB
1708
1709fweak
5498f011 1710C++ ObjC++ Var(flag_weak) Init(1)
a7b2e184 1711Emit common-like symbols as weak symbols.
fef3106c 1712
e6cc3a24
ZW
1713fwide-exec-charset=
1714C ObjC C++ ObjC++ Joined RejectNegative
a7b2e184 1715-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>.
e6cc3a24 1716
b20d9f0c 1717fworking-directory
5498f011 1718C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
a7b2e184 1719Generate a #line directive pointing at the current working directory.
b20d9f0c 1720
fef3106c 1721fxref
2d2bd949 1722C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
a7b2e184 1723No longer supported.
fef3106c 1724
264fa2db 1725fzero-link
5498f011 1726ObjC ObjC++ Var(flag_zero_link)
a7b2e184 1727Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode.
264fa2db 1728
fef3106c 1729gen-decls
5498f011 1730ObjC ObjC++ Var(flag_gen_declaration)
a7b2e184 1731Dump declarations to a .decl file.
fef3106c 1732
39ef6592
LC
1733femit-struct-debug-baseonly
1734C ObjC C++ ObjC++
a7b2e184 1735-femit-struct-debug-baseonly Aggressive reduced debug info for structs.
39ef6592
LC
1736
1737femit-struct-debug-reduced
1738C ObjC C++ ObjC++
a7b2e184 1739-femit-struct-debug-reduced Conservative reduced debug info for structs.
39ef6592
LC
1740
1741femit-struct-debug-detailed=
1742C ObjC C++ ObjC++ Joined
a7b2e184 1743-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs.
39ef6592 1744
a4a0016d 1745fext-numeric-literals
dcb466ec 1746C++ ObjC++ Var(flag_ext_numeric_literals) Init(1)
a4a0016d
ESR
1747Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1748number literal rather than a user-defined number literal.
1749
fef3106c 1750idirafter
61ff2bdc 1751C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1752-idirafter <dir> Add <dir> to the end of the system include path.
fef3106c
NB
1753
1754imacros
61ff2bdc 1755C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
a7b2e184 1756-imacros <file> Accept definition of macros in <file>.
fef3106c 1757
2b6dd222
JM
1758imultilib
1759C ObjC C++ ObjC++ Joined Separate
a7b2e184 1760-imultilib <dir> Set <dir> to be the multilib include subdirectory.
2b6dd222 1761
fef3106c 1762include
61ff2bdc 1763C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
a7b2e184 1764-include <file> Include the contents of <file> before other files.
fef3106c
NB
1765
1766iprefix
1767C ObjC C++ ObjC++ Joined Separate
a7b2e184 1768-iprefix <path> Specify <path> as a prefix for next two options.
fef3106c
NB
1769
1770isysroot
61ff2bdc 1771C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1772-isysroot <dir> Set <dir> to be the system root directory.
fef3106c
NB
1773
1774isystem
61ff2bdc 1775C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1776-isystem <dir> Add <dir> to the start of the system include path.
fef3106c 1777
4bed3787 1778iquote
61ff2bdc 1779C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
a7b2e184 1780-iquote <dir> Add <dir> to the end of the quote include path.
4bed3787 1781
fef3106c
NB
1782iwithprefix
1783C ObjC C++ ObjC++ Joined Separate
a7b2e184 1784-iwithprefix <dir> Add <dir> to the end of the system include path.
fef3106c
NB
1785
1786iwithprefixbefore
1787C ObjC C++ ObjC++ Joined Separate
a7b2e184 1788-iwithprefixbefore <dir> Add <dir> to the end of the main include path.
fef3106c
NB
1789
1790lang-asm
603349bf 1791C Undocumented RejectDriver
fef3106c 1792
e200444e
JM
1793no-integrated-cpp
1794Driver
1795
fef3106c
NB
1796nostdinc
1797C ObjC C++ ObjC++
a7b2e184 1798Do not search standard system include directories (those specified with -isystem will still be used).
fef3106c
NB
1799
1800nostdinc++
72de27ea 1801C++ ObjC++
a7b2e184 1802Do not search standard system include directories for C++.
fef3106c
NB
1803
1804o
1805C ObjC C++ ObjC++ Joined Separate
72de27ea 1806; Documented in common.opt
fef3106c
NB
1807
1808pedantic
c1771a20 1809C ObjC C++ ObjC++ Alias(Wpedantic)
72de27ea 1810; Documented in common.opt
fef3106c 1811
fef3106c
NB
1812print-objc-runtime-info
1813ObjC ObjC++
a7b2e184 1814Generate C header of platform-specific features.
fef3106c
NB
1815
1816remap
1817C ObjC C++ ObjC++
a7b2e184 1818Remap file names when including files.
fef3106c
NB
1819
1820std=c++98
1821C++ ObjC++
a7b2e184 1822Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
c7dc8804
JM
1823
1824std=c++03
1825C++ ObjC++ Alias(std=c++98)
a7b2e184 1826Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum.
fef3106c 1827
97e3ad20 1828std=c++11
966541e3 1829C++ ObjC++
a7b2e184 1830Conform to the ISO 2011 C++ standard.
97e3ad20
JM
1831
1832std=c++0x
70e24808 1833C++ ObjC++ Alias(std=c++11) Undocumented
a7b2e184 1834Deprecated in favor of -std=c++11.
966541e3 1835
552b8185 1836std=c++1y
028aee17 1837C++ ObjC++ Alias(std=c++14) Undocumented
a7b2e184 1838Deprecated in favor of -std=c++14.
70e24808
JM
1839
1840std=c++14
381bf11e 1841C++ ObjC++
a7b2e184 1842Conform to the ISO 2014 C++ standard.
552b8185 1843
da73100b
JM
1844std=c++1z
1845C++ ObjC++
a7b2e184 1846Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support).
da73100b
JM
1847
1848std=c++17
1849C++ ObjC++ Alias(std=c++1z) Undocumented
1850
48b0b196 1851std=c11
2778d766 1852C ObjC
a7b2e184 1853Conform to the ISO 2011 C standard.
48b0b196
JM
1854
1855std=c1x
1856C ObjC Alias(std=c11)
a7b2e184 1857Deprecated in favor of -std=c11.
2778d766 1858
fef3106c 1859std=c89
5de8299c 1860C ObjC Alias(std=c90)
a7b2e184 1861Conform to the ISO 1990 C standard.
fef3106c 1862
7e1542b9
MLI
1863std=c90
1864C ObjC
a7b2e184 1865Conform to the ISO 1990 C standard.
7e1542b9 1866
fef3106c
NB
1867std=c99
1868C ObjC
a7b2e184 1869Conform to the ISO 1999 C standard.
fef3106c
NB
1870
1871std=c9x
5de8299c 1872C ObjC Alias(std=c99)
a7b2e184 1873Deprecated in favor of -std=c99.
fef3106c
NB
1874
1875std=gnu++98
1876C++ ObjC++
97e3ad20 1877Conform to the ISO 1998 C++ standard revised by the 2003 technical
a7b2e184 1878corrigendum with GNU extensions.
fef3106c 1879
97e3ad20
JM
1880std=gnu++03
1881C++ ObjC++ Alias(std=gnu++98)
1882Conform to the ISO 1998 C++ standard revised by the 2003 technical
a7b2e184 1883corrigendum with GNU extensions.
97e3ad20
JM
1884
1885std=gnu++11
966541e3 1886C++ ObjC++
a7b2e184 1887Conform to the ISO 2011 C++ standard with GNU extensions.
97e3ad20
JM
1888
1889std=gnu++0x
381bf11e 1890C++ ObjC++ Alias(std=gnu++11) Undocumented
a7b2e184 1891Deprecated in favor of -std=gnu++11.
966541e3 1892
552b8185 1893std=gnu++1y
028aee17 1894C++ ObjC++ Alias(std=gnu++14) Undocumented
a7b2e184 1895Deprecated in favor of -std=gnu++14.
552b8185 1896
a07f6ed2 1897std=gnu++14
028aee17 1898C++ ObjC++
a7b2e184 1899Conform to the ISO 2014 C++ standard with GNU extensions.
a07f6ed2 1900
da73100b
JM
1901std=gnu++1z
1902C++ ObjC++
a7b2e184 1903Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support).
da73100b
JM
1904
1905std=gnu++17
a545cacd 1906C++ ObjC++ Alias(std=gnu++1z) Undocumented
da73100b 1907
48b0b196 1908std=gnu11
2778d766 1909C ObjC
a7b2e184 1910Conform to the ISO 2011 C standard with GNU extensions.
48b0b196
JM
1911
1912std=gnu1x
1913C ObjC Alias(std=gnu11)
a7b2e184 1914Deprecated in favor of -std=gnu11.
2778d766 1915
fef3106c 1916std=gnu89
5de8299c 1917C ObjC Alias(std=gnu90)
a7b2e184 1918Conform to the ISO 1990 C standard with GNU extensions.
fef3106c 1919
7e1542b9
MLI
1920std=gnu90
1921C ObjC
a7b2e184 1922Conform to the ISO 1990 C standard with GNU extensions.
7e1542b9 1923
fef3106c
NB
1924std=gnu99
1925C ObjC
a7b2e184 1926Conform to the ISO 1999 C standard with GNU extensions.
fef3106c
NB
1927
1928std=gnu9x
5de8299c 1929C ObjC Alias(std=gnu99)
a7b2e184 1930Deprecated in favor of -std=gnu99.
fef3106c
NB
1931
1932std=iso9899:1990
5de8299c 1933C ObjC Alias(std=c90)
a7b2e184 1934Conform to the ISO 1990 C standard.
fef3106c
NB
1935
1936std=iso9899:199409
1937C ObjC
a7b2e184 1938Conform to the ISO 1990 C standard as amended in 1994.
fef3106c
NB
1939
1940std=iso9899:1999
5de8299c 1941C ObjC Alias(std=c99)
a7b2e184 1942Conform to the ISO 1999 C standard.
fef3106c
NB
1943
1944std=iso9899:199x
5de8299c 1945C ObjC Alias(std=c99)
a7b2e184 1946Deprecated in favor of -std=iso9899:1999.
fef3106c 1947
48b0b196
JM
1948std=iso9899:2011
1949C ObjC Alias(std=c11)
a7b2e184 1950Conform to the ISO 2011 C standard.
48b0b196 1951
e200444e
JM
1952traditional
1953Driver
1954
fef3106c
NB
1955traditional-cpp
1956C ObjC C++ ObjC++
a7b2e184 1957Enable traditional preprocessing.
fef3106c
NB
1958
1959trigraphs
1960C ObjC C++ ObjC++
a7b2e184 1961-trigraphs Support ISO C trigraphs.
fef3106c
NB
1962
1963undef
5498f011 1964C ObjC C++ ObjC++ Var(flag_undef)
a7b2e184 1965Do not predefine system-specific and GCC-specific macros.
fef3106c
NB
1966
1967v
d5478783
JM
1968C ObjC C++ ObjC++
1969; Documented in common.opt
fef3106c
NB
1970
1971w
1972C ObjC C++ ObjC++
72de27ea 1973; Documented in common.opt
e11a4ae5
NB
1974
1975; This comment is to ensure we retain the blank line above.