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