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