]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-family/c.opt
Fix obj-c++.dg/encode-10.mm with cxx_dialect == cxx11.
[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 966fcheck-pointer-bounds
79d64904 967C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
d5e254e1
IE
968Add Pointer Bounds Checker instrumentation. fchkp-* flags are used to
969control instrumentation. Currently available for C, C++ and ObjC.
970
971fchkp-check-incomplete-type
79d64904 972C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
d5e254e1
IE
973Generate pointer bounds checks for variables with incomplete type
974
975fchkp-zero-input-bounds-for-main
79d64904 976C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
d5e254e1
IE
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
79d64904 981C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
d5e254e1
IE
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
79d64904 987C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
d5e254e1
IE
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
79d64904 992C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
d5e254e1
IE
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
79d64904 1010C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
d5e254e1
IE
1011Use statically initialized variable for vars bounds instead of
1012generating them each time it is required.
1013
1014fchkp-use-static-const-bounds
79d64904 1015C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
d5e254e1
IE
1016Use statically initialized variable for constant bounds instead of
1017generating them each time it is required.
1018
1019fchkp-treat-zero-dynamic-size-as-infinite
79d64904 1020C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
d5e254e1
IE
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
226d62d2
IE
1044fchkp-use-wrappers
1045C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
1046Transform instrumented builtin calls into calls to wrappers.
1047
5373cd33
IE
1048static-libmpx
1049Driver
1050
d2d7e672
IE
1051static-libmpxwrappers
1052Driver
1053
36536d79 1054fcilkplus
b72271b9 1055C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
36536d79
BI
1056Enable Cilk Plus
1057
fef3106c
NB
1058fcond-mismatch
1059C ObjC C++ ObjC++
5a170a05 1060Allow the arguments of the '?' operator to have different types
fef3106c
NB
1061
1062fconserve-space
5498f011 1063C++ ObjC++ Var(flag_conserve_space)
6f07a821 1064Does nothing. Preserved for backward compatibility.
fef3106c 1065
fef3106c 1066fconstant-string-class=
61ff2bdc 1067ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
f2ac9964 1068-fconst-string-class=<name> Use class <name> for constant strings
fef3106c 1069
17bc631c 1070fconstexpr-depth=
49a000c3
JM
1071C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
1072-fconstexpr-depth=<number> Specify maximum constexpr recursion depth
17bc631c 1073
847e697a
TT
1074fdebug-cpp
1075C ObjC C++ ObjC++
1076Emit debug annotations during preprocessing
1077
5f5babf1 1078fdeduce-init-list
15694fdd
JM
1079C++ ObjC++ Var(flag_deduce_init_list) Init(0)
1080-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
5f5babf1 1081
1f26ac87
JM
1082fdeclone-ctor-dtor
1083C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
1084Factor complex constructors and destructors to favor space over speed
1085
fef3106c 1086fdefault-inline
2d2bd949 1087C++ ObjC++ Ignore
5498f011 1088Does nothing. Preserved for backward compatibility.
fef3106c 1089
ccfc4c91
OW
1090fdirectives-only
1091C ObjC C++ ObjC++
1092Preprocess directives only.
1093
fef3106c
NB
1094fdollars-in-identifiers
1095C ObjC C++ ObjC++
72de27ea 1096Permit '$' as an identifier character
fef3106c 1097
3b78de56
AC
1098fdump-ada-spec
1099C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec)
1100Write all declarations as Ada code transitively
1101
1102fdump-ada-spec-slim
1103C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim)
1104Write all declarations as Ada code for the given file only
1105
fef3106c 1106felide-constructors
5498f011 1107C++ ObjC++ Var(flag_elide_constructors) Init(1)
fef3106c
NB
1108
1109fenforce-eh-specs
5498f011 1110C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
bae92bf3 1111Generate code to check exception specifications
fef3106c
NB
1112
1113fenum-int-equiv
2d2bd949 1114C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1115
e6cc3a24
ZW
1116fexec-charset=
1117C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 1118-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
e6cc3a24 1119
af15a2fe
JM
1120fextended-identifiers
1121C ObjC C++ ObjC++
1122Permit universal character names (\\u and \\U) in identifiers
1123
16dd5cfe
EC
1124finput-charset=
1125C ObjC C++ ObjC++ Joined RejectNegative
c85ce869 1126-finput-charset=<cset> Specify the default character set for source files
16dd5cfe 1127
5af057d8
JM
1128fextern-tls-init
1129C++ ObjC++ Var(flag_extern_tls_init) Init(-1)
1130Support dynamic initialization of thread-local variables in a different translation unit
16dd5cfe 1131
fef3106c 1132fexternal-templates
2d2bd949 1133C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1134
fef3106c 1135ffor-scope
5498f011 1136C++ ObjC++ Var(flag_new_for_scope) Init(1)
bae92bf3 1137Scope of for-init-statement variables is local to the loop
fef3106c
NB
1138
1139ffreestanding
820b51ae 1140C ObjC C++ ObjC++
5a170a05 1141Do not assume that standard C libraries and \"main\" exist
fef3106c
NB
1142
1143fgnu-keywords
5498f011 1144C++ ObjC++ Var(flag_no_gnu_keywords, 0)
bae92bf3 1145Recognize GNU-defined keywords
fef3106c
NB
1146
1147fgnu-runtime
fb5610fb 1148ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
f2ac9964 1149Generate code for GNU runtime environment
fef3106c 1150
da1c7394 1151fgnu89-inline
2cbac420 1152C ObjC Var(flag_gnu89_inline) Init(-1)
da1c7394
ILT
1153Use traditional GNU semantics for inline functions
1154
fef3106c 1155fguiding-decls
2d2bd949 1156C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1157
1158fhandle-exceptions
2d2bd949 1159C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
fef3106c
NB
1160
1161fhonor-std
2d2bd949 1162C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1163
1164fhosted
1165C ObjC
5a170a05 1166Assume normal C execution environment
fef3106c
NB
1167
1168fhuge-objects
2d2bd949 1169C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1170No longer supported
fef3106c
NB
1171
1172fimplement-inlines
5498f011 1173C++ ObjC++ Var(flag_implement_inlines) Init(1)
bae92bf3 1174Export functions even if they can be inlined
fef3106c
NB
1175
1176fimplicit-inline-templates
5498f011 1177C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
bae92bf3 1178Emit implicit instantiations of inline templates
fef3106c
NB
1179
1180fimplicit-templates
5498f011 1181C++ ObjC++ Var(flag_implicit_templates) Init(1)
bae92bf3 1182Emit implicit instantiations of templates
fef3106c 1183
d63d5d0c 1184ffriend-injection
2cbac420 1185C++ ObjC++ Var(flag_friend_injection)
d63d5d0c
ILT
1186Inject friend functions into enclosing namespace
1187
47ea1edf
DK
1188fkeep-inline-dllexport
1189C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
1190Don't emit dllexported inline functions unless needed
1191
fef3106c 1192flabels-ok
2d2bd949 1193C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1194
00c8e9f6 1195flax-vector-conversions
5498f011 1196C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
00c8e9f6
MS
1197Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
1198
fef3106c 1199fms-extensions
5498f011 1200C ObjC C++ ObjC++ Var(flag_ms_extensions)
bae92bf3 1201Don't warn about uses of Microsoft extensions
fef3106c 1202
5720c0dc 1203fmudflap
98906124 1204C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1205
1206fmudflapth
98906124 1207C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc
RG
1208
1209fmudflapir
98906124 1210C ObjC C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
5720c0dc 1211
fef3106c 1212fname-mangling-version-
2d2bd949 1213C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1214
1215fnew-abi
2d2bd949 1216C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1217
1218fnext-runtime
fb5610fb 1219ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime)
264fa2db
ZL
1220Generate code for NeXT (Apple Mac OS X) runtime environment
1221
1222fnil-receivers
5498f011 1223ObjC ObjC++ Var(flag_nil_receivers) Init(1)
264fa2db 1224Assume that receivers of Objective-C messages may be nil
fef3106c 1225
dcaaa5a0
DP
1226flocal-ivars
1227ObjC ObjC++ Var(flag_local_ivars) Init(1)
1228Allow access to instance variables as if they were local declarations within instance method implementations.
1229
1230fivar-visibility=
1231ObjC ObjC++ Joined RejectNegative Enum(ivar_visibility) Var(default_ivar_visibility) Init(IVAR_VISIBILITY_PROTECTED)
1232-fvisibility=[private|protected|public|package] Set the default symbol visibility
1233
1234Enum
1235Name(ivar_visibility) Type(enum ivar_visibility) UnknownError(unrecognized ivar visibility value %qs)
1236
1237EnumValue
1238Enum(ivar_visibility) String(private) Value(IVAR_VISIBILITY_PRIVATE)
1239
1240EnumValue
1241Enum(ivar_visibility) String(protected) Value(IVAR_VISIBILITY_PROTECTED)
1242
1243EnumValue
1244Enum(ivar_visibility) String(public) Value(IVAR_VISIBILITY_PUBLIC)
1245
1246EnumValue
1247Enum(ivar_visibility) String(package) Value(IVAR_VISIBILITY_PACKAGE)
1248
fef3106c 1249fnonansi-builtins
5498f011 1250C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
fef3106c
NB
1251
1252fnonnull-objects
2d2bd949 1253C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1254
9feb3d6a
JM
1255fnothrow-opt
1256C++ ObjC++ Optimization Var(flag_nothrow_opt)
1257Treat a throw() exception specification as noexcept to improve code size
1258
0a256240 1259fobjc-abi-version=
fb5610fb 1260ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi)
0a256240
NP
1261Specify which ABI to use for Objective-C family code and meta-data generation.
1262
6e955430
ZL
1263; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
1264; to initialize any non-POD ivars in Objective-C++ classes.
1265fobjc-call-cxx-cdtors
1266ObjC++ Var(flag_objc_call_cxx_cdtors)
1267Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
1268
1269fobjc-direct-dispatch
1270ObjC ObjC++ Var(flag_objc_direct_dispatch)
1271Allow fast jumps to the message dispatcher
1272
1273; Nonzero means that we will allow new ObjC exception syntax (@throw,
1274; @try, etc.) in source code.
264fa2db 1275fobjc-exceptions
6e955430 1276ObjC ObjC++ Var(flag_objc_exceptions)
264fa2db
ZL
1277Enable Objective-C exception and synchronization syntax
1278
6e955430 1279fobjc-gc
fb5610fb 1280ObjC ObjC++ LTO Var(flag_objc_gc)
6e955430
ZL
1281Enable garbage collection (GC) in Objective-C/Objective-C++ programs
1282
0a256240
NP
1283fobjc-nilcheck
1284ObjC ObjC++ Var(flag_objc_nilcheck,1)
1285Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
1286
6e955430 1287; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 1288fobjc-sjlj-exceptions
6e955430 1289ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
093c7153
RH
1290Enable Objective-C setjmp exception handling runtime
1291
22d8d616
NP
1292fobjc-std=objc1
1293ObjC ObjC++ Var(flag_objc1_only)
1294Conform to the Objective-C 1.0 language as implemented in GCC 4.0
1295
41dbbb37 1296fopenacc
a0c88d06 1297C ObjC C++ ObjC++ LTO Var(flag_openacc)
41dbbb37
TS
1298Enable OpenACC
1299
953ff289 1300fopenmp
1506ae0e 1301C ObjC C++ ObjC++ LTO Var(flag_openmp)
9a0f3e86 1302Enable OpenMP (implies -frecursive in Fortran)
953ff289 1303
6d7f7e0a
TB
1304fopenmp-simd
1305C ObjC C++ ObjC++ Var(flag_openmp_simd)
1306Enable OpenMP's SIMD directives
1307
fef3106c
NB
1308foperator-names
1309C++ ObjC++
1cbc62c0 1310Recognize C++ keywords like \"compl\" and \"xor\"
fef3106c
NB
1311
1312foptional-diags
2d2bd949 1313C++ ObjC++ Ignore
5498f011 1314Does nothing. Preserved for backward compatibility.
fef3106c
NB
1315
1316fpch-deps
1317C ObjC C++ ObjC++
1318
c0d578e6
GK
1319fpch-preprocess
1320C ObjC C++ ObjC++
1321Look for and use PCH files even when preprocessing
1322
fef3106c 1323fpermissive
0c3641b0 1324C++ ObjC++ Var(flag_permissive)
bae92bf3 1325Downgrade conformance errors to warnings
fef3106c 1326
478a1c5b
ILT
1327fplan9-extensions
1328C ObjC Var(flag_plan9_extensions)
1329Enable Plan 9 language extensions
1330
fef3106c
NB
1331fpreprocessed
1332C ObjC C++ ObjC++
72de27ea 1333Treat the input file as already preprocessed
fef3106c 1334
92582b75
TT
1335ftrack-macro-expansion
1336C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1337; converted into ftrack-macro-expansion=
1338
1339ftrack-macro-expansion=
1340C ObjC C++ ObjC++ JoinedOrMissing RejectNegative UInteger
1341-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages
1342
6ea2bd47 1343fpretty-templates
5498f011 1344C++ ObjC++ Var(flag_pretty_templates) Init(1)
6ea2bd47
JM
1345-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
1346
264fa2db 1347freplace-objc-classes
fb5610fb 1348ObjC ObjC++ LTO Var(flag_replace_objc_classes)
264fa2db
ZL
1349Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
1350
fef3106c
NB
1351frepo
1352C++ ObjC++
bae92bf3 1353Enable automatic template instantiation
fef3106c
NB
1354
1355frtti
5498f011 1356C++ ObjC++ Optimization Var(flag_rtti) Init(1)
bae92bf3 1357Generate run time type descriptor information
fef3106c
NB
1358
1359fshort-double
f42c637e 1360C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
5a170a05 1361Use the same size for double as for float
fef3106c
NB
1362
1363fshort-enums
dd6fe7d4 1364C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
5a170a05 1365Use the narrowest integer type possible for enumeration types
fef3106c
NB
1366
1367fshort-wchar
dd6fe7d4 1368C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
5a170a05 1369Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fef3106c 1370
fef3106c 1371fsigned-bitfields
5498f011 1372C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
5a170a05 1373When \"signed\" or \"unsigned\" is not given make the bitfield signed
fef3106c
NB
1374
1375fsigned-char
5498f011 1376C ObjC C++ ObjC++ LTO Var(flag_signed_char)
5a170a05 1377Make \"char\" signed by default
fef3106c 1378
20b06add
JM
1379fsized-deallocation
1380C++ ObjC++ Var(flag_sized_deallocation) Init(-1)
1381Enable C++14 sized deallocation support
1382
fef3106c 1383fsquangle
2d2bd949 1384C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1385
1386fstats
5498f011 1387C++ ObjC++ Var(flag_detailed_statistics)
bae92bf3 1388Display statistics accumulated during compilation
fef3106c 1389
cbb4feb3
JM
1390fstrict-enums
1391C++ ObjC++ Optimization Var(flag_strict_enums)
1392Assume that values of enumeration type are always within the minimum range of that type
1393
fef3106c 1394fstrict-prototype
2d2bd949 1395C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
1396
1397ftabstop=
7b086b11 1398C ObjC C++ ObjC++ Joined RejectNegative UInteger
72de27ea 1399-ftabstop=<number> Distance between tab stops for column reporting
fef3106c 1400
a12bf402
MLI
1401ftemplate-backtrace-limit=
1402C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10)
1403Set the maximum number of template instantiation notes for a single warning or error
1404
fef3106c 1405ftemplate-depth-
5de8299c 1406C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
124e0d27
MLI
1407
1408ftemplate-depth=
c22cacf3 1409C++ ObjC++ Joined RejectNegative UInteger
124e0d27 1410-ftemplate-depth=<number> Specify maximum template instantiation depth
fef3106c
NB
1411
1412fthis-is-variable
2d2bd949 1413C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1414
40aac948 1415fthreadsafe-statics
5498f011 1416C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
c85ce869 1417-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
40aac948 1418
fef3106c 1419funsigned-bitfields
f0036cca 1420C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
5a170a05 1421When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
fef3106c
NB
1422
1423funsigned-char
f0036cca 1424C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
5a170a05 1425Make \"char\" unsigned by default
fef3106c
NB
1426
1427fuse-cxa-atexit
5498f011 1428C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
bae92bf3 1429Use __cxa_atexit to register destructors
fef3106c 1430
c7b5e395 1431fuse-cxa-get-exception-ptr
5498f011 1432C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
c7b5e395
GK
1433Use __cxa_get_exception_ptr in exception handling
1434
d7afec4b 1435fvisibility-inlines-hidden
d0b07283 1436C++ ObjC++
fb9120e3 1437Marks all inlined functions and methods as having hidden visibility
d7afec4b 1438
ddbfd28d
GK
1439fvisibility-ms-compat
1440C++ ObjC++ Var(flag_visibility_ms_compat)
1441Changes visibility to match Microsoft Visual Studio by default
1442
fef3106c 1443fvtable-gc
2d2bd949 1444C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1445No longer supported
fef3106c
NB
1446
1447fvtable-thunks
2d2bd949 1448C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1449No longer supported
fef3106c
NB
1450
1451fweak
5498f011 1452C++ ObjC++ Var(flag_weak) Init(1)
bae92bf3 1453Emit common-like symbols as weak symbols
fef3106c 1454
e6cc3a24
ZW
1455fwide-exec-charset=
1456C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 1457-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
e6cc3a24 1458
b20d9f0c 1459fworking-directory
5498f011 1460C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
b20d9f0c
AO
1461Generate a #line directive pointing at the current working directory
1462
fef3106c 1463fxref
2d2bd949 1464C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1465No longer supported
fef3106c 1466
264fa2db 1467fzero-link
5498f011 1468ObjC ObjC++ Var(flag_zero_link)
264fa2db
ZL
1469Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1470
fef3106c 1471gen-decls
5498f011 1472ObjC ObjC++ Var(flag_gen_declaration)
f2ac9964 1473Dump declarations to a .decl file
fef3106c 1474
39ef6592
LC
1475femit-struct-debug-baseonly
1476C ObjC C++ ObjC++
1477-femit-struct-debug-baseonly Aggressive reduced debug info for structs
1478
1479femit-struct-debug-reduced
1480C ObjC C++ ObjC++
1481-femit-struct-debug-reduced Conservative reduced debug info for structs
1482
1483femit-struct-debug-detailed=
1484C ObjC C++ ObjC++ Joined
1485-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1486
a4a0016d
ESR
1487fext-numeric-literals
1488C++ ObjC++
1489Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding
1490number literal rather than a user-defined number literal.
1491
fef3106c 1492idirafter
61ff2bdc 1493C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1494-idirafter <dir> Add <dir> to the end of the system include path
fef3106c
NB
1495
1496imacros
61ff2bdc 1497C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
72de27ea 1498-imacros <file> Accept definition of macros in <file>
fef3106c 1499
2b6dd222
JM
1500imultilib
1501C ObjC C++ ObjC++ Joined Separate
f94e1d66 1502-imultilib <dir> Set <dir> to be the multilib include subdirectory
2b6dd222 1503
fef3106c 1504include
61ff2bdc 1505C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
72de27ea 1506-include <file> Include the contents of <file> before other files
fef3106c
NB
1507
1508iprefix
1509C ObjC C++ ObjC++ Joined Separate
72de27ea 1510-iprefix <path> Specify <path> as a prefix for next two options
fef3106c
NB
1511
1512isysroot
61ff2bdc 1513C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1514-isysroot <dir> Set <dir> to be the system root directory
fef3106c
NB
1515
1516isystem
61ff2bdc 1517C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1518-isystem <dir> Add <dir> to the start of the system include path
fef3106c 1519
4bed3787 1520iquote
61ff2bdc 1521C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
4bed3787
MS
1522-iquote <dir> Add <dir> to the end of the quote include path
1523
fef3106c
NB
1524iwithprefix
1525C ObjC C++ ObjC++ Joined Separate
72de27ea 1526-iwithprefix <dir> Add <dir> to the end of the system include path
fef3106c
NB
1527
1528iwithprefixbefore
1529C ObjC C++ ObjC++ Joined Separate
72de27ea 1530-iwithprefixbefore <dir> Add <dir> to the end of the main include path
fef3106c
NB
1531
1532lang-asm
603349bf 1533C Undocumented RejectDriver
fef3106c 1534
e200444e
JM
1535no-integrated-cpp
1536Driver
1537
fef3106c
NB
1538nostdinc
1539C ObjC C++ ObjC++
72de27ea 1540Do not search standard system include directories (those specified with -isystem will still be used)
fef3106c
NB
1541
1542nostdinc++
72de27ea
NB
1543C++ ObjC++
1544Do not search standard system include directories for C++
fef3106c
NB
1545
1546o
1547C ObjC C++ ObjC++ Joined Separate
72de27ea 1548; Documented in common.opt
fef3106c
NB
1549
1550pedantic
c1771a20 1551C ObjC C++ ObjC++ Alias(Wpedantic)
72de27ea 1552; Documented in common.opt
fef3106c 1553
fef3106c
NB
1554print-objc-runtime-info
1555ObjC ObjC++
f2ac9964 1556Generate C header of platform-specific features
fef3106c
NB
1557
1558remap
1559C ObjC C++ ObjC++
72de27ea 1560Remap file names when including files
fef3106c
NB
1561
1562std=c++98
1563C++ ObjC++
c7dc8804
JM
1564Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1565
1566std=c++03
1567C++ ObjC++ Alias(std=c++98)
1568Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
fef3106c 1569
97e3ad20 1570std=c++11
966541e3 1571C++ ObjC++
70e24808 1572Conform to the ISO 2011 C++ standard
97e3ad20
JM
1573
1574std=c++0x
70e24808 1575C++ ObjC++ Alias(std=c++11) Undocumented
97e3ad20 1576Deprecated in favor of -std=c++11
966541e3 1577
552b8185 1578std=c++1y
028aee17
JM
1579C++ ObjC++ Alias(std=c++14) Undocumented
1580Deprecated in favor of -std=c++14
70e24808
JM
1581
1582std=c++14
028aee17
JM
1583C++ ObjC++ Undocumented
1584Conform to the ISO 2014 C++ standard (experimental and incomplete support)
552b8185 1585
da73100b
JM
1586std=c++1z
1587C++ ObjC++
1588Conform to the ISO 2017(?) C++ draft standard (experimental and incomplete support)
1589
1590std=c++17
1591C++ ObjC++ Alias(std=c++1z) Undocumented
1592
48b0b196 1593std=c11
2778d766 1594C ObjC
48b0b196
JM
1595Conform to the ISO 2011 C standard (experimental and incomplete support)
1596
1597std=c1x
1598C ObjC Alias(std=c11)
1599Deprecated in favor of -std=c11
2778d766 1600
fef3106c 1601std=c89
5de8299c 1602C ObjC Alias(std=c90)
72de27ea 1603Conform to the ISO 1990 C standard
fef3106c 1604
7e1542b9
MLI
1605std=c90
1606C ObjC
1607Conform to the ISO 1990 C standard
1608
fef3106c
NB
1609std=c99
1610C ObjC
72de27ea 1611Conform to the ISO 1999 C standard
fef3106c
NB
1612
1613std=c9x
5de8299c 1614C ObjC Alias(std=c99)
72de27ea 1615Deprecated in favor of -std=c99
fef3106c
NB
1616
1617std=gnu++98
1618C++ ObjC++
97e3ad20
JM
1619Conform to the ISO 1998 C++ standard revised by the 2003 technical
1620corrigendum with GNU extensions
fef3106c 1621
97e3ad20
JM
1622std=gnu++03
1623C++ ObjC++ Alias(std=gnu++98)
1624Conform to the ISO 1998 C++ standard revised by the 2003 technical
1625corrigendum with GNU extensions
1626
1627std=gnu++11
966541e3 1628C++ ObjC++
97e3ad20
JM
1629Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)
1630
1631std=gnu++0x
1632C++ ObjC++ Alias(std=gnu++11)
1633Deprecated in favor of -std=gnu++11
966541e3 1634
552b8185 1635std=gnu++1y
028aee17 1636C++ ObjC++ Alias(std=gnu++14) Undocumented
552b8185 1637
a07f6ed2 1638std=gnu++14
028aee17
JM
1639C++ ObjC++
1640Conform to the ISO 2014 C++ standard with GNU extensions (experimental and incomplete support)
a07f6ed2 1641
da73100b
JM
1642std=gnu++1z
1643C++ ObjC++
1644Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)
1645
1646std=gnu++17
a545cacd 1647C++ ObjC++ Alias(std=gnu++1z) Undocumented
da73100b 1648
48b0b196 1649std=gnu11
2778d766 1650C ObjC
48b0b196
JM
1651Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)
1652
1653std=gnu1x
1654C ObjC Alias(std=gnu11)
1655Deprecated in favor of -std=gnu11
2778d766 1656
fef3106c 1657std=gnu89
5de8299c 1658C ObjC Alias(std=gnu90)
72de27ea 1659Conform to the ISO 1990 C standard with GNU extensions
fef3106c 1660
7e1542b9
MLI
1661std=gnu90
1662C ObjC
1663Conform to the ISO 1990 C standard with GNU extensions
1664
fef3106c
NB
1665std=gnu99
1666C ObjC
72de27ea 1667Conform to the ISO 1999 C standard with GNU extensions
fef3106c
NB
1668
1669std=gnu9x
5de8299c 1670C ObjC Alias(std=gnu99)
72de27ea 1671Deprecated in favor of -std=gnu99
fef3106c
NB
1672
1673std=iso9899:1990
5de8299c 1674C ObjC Alias(std=c90)
3a1e400e 1675Conform to the ISO 1990 C standard
fef3106c
NB
1676
1677std=iso9899:199409
1678C ObjC
72de27ea 1679Conform to the ISO 1990 C standard as amended in 1994
fef3106c
NB
1680
1681std=iso9899:1999
5de8299c 1682C ObjC Alias(std=c99)
3a1e400e 1683Conform to the ISO 1999 C standard
fef3106c
NB
1684
1685std=iso9899:199x
5de8299c 1686C ObjC Alias(std=c99)
3a1e400e 1687Deprecated in favor of -std=iso9899:1999
fef3106c 1688
48b0b196
JM
1689std=iso9899:2011
1690C ObjC Alias(std=c11)
1691Conform to the ISO 2011 C standard (experimental and incomplete support)
1692
e200444e
JM
1693traditional
1694Driver
1695
fef3106c
NB
1696traditional-cpp
1697C ObjC C++ ObjC++
72de27ea 1698Enable traditional preprocessing
fef3106c
NB
1699
1700trigraphs
1701C ObjC C++ ObjC++
72de27ea 1702-trigraphs Support ISO C trigraphs
fef3106c
NB
1703
1704undef
5498f011 1705C ObjC C++ ObjC++ Var(flag_undef)
72de27ea 1706Do not predefine system-specific and GCC-specific macros
fef3106c
NB
1707
1708v
d5478783
JM
1709C ObjC C++ ObjC++
1710; Documented in common.opt
fef3106c
NB
1711
1712w
1713C ObjC C++ ObjC++
72de27ea 1714; Documented in common.opt
e11a4ae5
NB
1715
1716; This comment is to ensure we retain the blank line above.