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