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