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