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