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