]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-family/c.opt
Linemap infrastructure for virtual locations
[thirdparty/gcc.git] / gcc / c-family / c.opt
CommitLineData
fef3106c 1; Options for the C, ObjC, C++ and ObjC++ front ends.
47ea1edf
DK
2; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
3; 2011 Free Software Foundation, Inc.
fef3106c
NB
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9dcd6f09 9; Software Foundation; either version 3, or (at your option) any later
fef3106c 10; version.
c22cacf3 11;
fef3106c
NB
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15; for more details.
c22cacf3 16;
fef3106c 17; You should have received a copy of the GNU General Public License
9dcd6f09
NC
18; along with GCC; see the file COPYING3. If not see
19; <http://www.gnu.org/licenses/>.
fef3106c 20
8abb6b22 21; See the GCC internals manual for a description of this file's format.
fef3106c 22
fef3106c
NB
23; Please try to keep this file in ASCII collating order.
24
be43ab4e
NB
25Language
26C
27
28Language
29ObjC
30
31Language
32C++
33
34Language
35ObjC++
36
e200444e
JM
37-all-warnings
38C ObjC C++ ObjC++ Warning Alias(Wall)
39
40-ansi
41C ObjC C++ ObjC++ Alias(ansi)
42
43-assert
44C ObjC C++ ObjC++ Separate Alias(A) MissingArgError(assertion missing after %qs)
45
46-assert=
47C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
48
49-comments
50C ObjC C++ ObjC++ Alias(C)
51
52-comments-in-macros
53C ObjC C++ ObjC++ Alias(CC)
54
55-define-macro
56C ObjC C++ ObjC++ Separate Alias(D) MissingArgError(macro name missing after %qs)
57
58-define-macro=
59C ObjC C++ ObjC++ Joined Alias(D) MissingArgError(macro name missing after %qs)
60
61-dependencies
62C ObjC C++ ObjC++ Alias(M)
63
64-dump
65C ObjC C++ ObjC++ Separate Alias(d)
66
67-dump=
68C ObjC C++ ObjC++ Joined Alias(d)
69
70-imacros
71C ObjC C++ ObjC++ Separate Alias(imacros) MissingArgError(missing filename after %qs)
72
73-imacros=
74C ObjC C++ ObjC++ Joined Alias(imacros) MissingArgError(missing filename after %qs)
75
76-include
77C ObjC C++ ObjC++ Separate Alias(include) MissingArgError(missing filename after %qs)
78
79-include=
80C ObjC C++ ObjC++ Joined Alias(include) MissingArgError(missing filename after %qs)
81
82-include-barrier
83C ObjC C++ ObjC++ Alias(I, -)
84
85-include-directory
86C ObjC C++ ObjC++ Separate Alias(I) MissingArgError(missing path after %qs)
87
88-include-directory=
89C ObjC C++ ObjC++ Joined Alias(I) MissingArgError(missing path after %qs)
90
91-include-directory-after
92C ObjC C++ ObjC++ Separate Alias(idirafter) MissingArgError(missing path after %qs)
93
94-include-directory-after=
95C ObjC C++ ObjC++ Joined Alias(idirafter) MissingArgError(missing path after %qs)
96
97-include-prefix
98C ObjC C++ ObjC++ Separate Alias(iprefix)
99
100-include-prefix=
101C ObjC C++ ObjC++ JoinedOrMissing Alias(iprefix)
102
103-include-with-prefix
104C ObjC C++ ObjC++ Separate Alias(iwithprefix)
105
106-include-with-prefix=
107C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
108
109-include-with-prefix-after
110C ObjC C++ ObjC++ Separate Alias(iwithprefix)
111
112-include-with-prefix-after=
113C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefix)
114
115-include-with-prefix-before
116C ObjC C++ ObjC++ Separate Alias(iwithprefixbefore)
117
118-include-with-prefix-before=
119C ObjC C++ ObjC++ JoinedOrMissing Alias(iwithprefixbefore)
120
121-no-integrated-cpp
122Driver Alias(no-integrated-cpp)
123
124-no-line-commands
125C ObjC C++ ObjC++ Alias(P)
126
127-no-standard-includes
128C ObjC C++ ObjC++ Alias(nostdinc)
129
130-no-warnings
131C ObjC C++ ObjC++ Alias(w)
132
133-output
134C ObjC C++ ObjC++ Separate Alias(o)
135
136-output=
137C ObjC C++ ObjC++ Joined Alias(o)
138
fef3106c
NB
139-output-pch=
140C ObjC C++ ObjC++ Joined Separate
141
e200444e
JM
142-pedantic
143C ObjC C++ ObjC++ Alias(pedantic)
144
145-pedantic-errors
146C ObjC C++ ObjC++ Alias(pedantic-errors)
147
148-preprocess
149C ObjC C++ ObjC++ Undocumented Alias(E)
150
151-print-missing-file-dependencies
152C ObjC C++ ObjC++ Alias(MG)
153
154-trace-includes
155C ObjC C++ ObjC++ Alias(H)
156
157-traditional
158Driver Alias(traditional)
159
160-traditional-cpp
161C ObjC C++ ObjC++ Alias(traditional-cpp)
162
163-trigraphs
164C ObjC C++ ObjC++ Alias(trigraphs)
165
166-undefine-macro
167C ObjC C++ ObjC++ Separate Alias(U) MissingArgError(macro name missing after %qs)
168
169-undefine-macro=
170C ObjC C++ ObjC++ Joined Alias(U) MissingArgError(macro name missing after %qs)
171
172-user-dependencies
173C ObjC C++ ObjC++ Alias(MM)
174
175-verbose
176Common C ObjC C++ ObjC++ Alias(v)
177
178-write-dependencies
179C ObjC C++ ObjC++ NoDriverArg Separate Alias(MD) MissingArgError(missing filename after %qs)
180
181-write-user-dependencies
182C ObjC C++ ObjC++ NoDriverArg Separate Alias(MMD) MissingArgError(missing filename after %qs)
183
fef3106c 184A
61ff2bdc 185C ObjC C++ ObjC++ Joined Separate MissingArgError(assertion missing after %qs)
72de27ea 186-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>
fef3106c
NB
187
188C
189C ObjC C++ ObjC++
72de27ea 190Do not discard comments
fef3106c
NB
191
192CC
193C ObjC C++ ObjC++
72de27ea 194Do not discard comments in macro expansions
fef3106c
NB
195
196D
61ff2bdc 197C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
72de27ea 198-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1
fef3106c
NB
199
200E
5498f011 201C ObjC C++ ObjC++ Undocumented Var(flag_preprocess_only)
fef3106c 202
94d1613b 203F
bd837408 204Driver C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
4e994432 205-F <dir> Add <dir> to the end of the main framework include path
94d1613b 206
fef3106c
NB
207H
208C ObjC C++ ObjC++
72de27ea 209Print the name of header files as they are used
fef3106c
NB
210
211I
61ff2bdc 212C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
4bed3787 213-I <dir> Add <dir> to the end of the main include path
fef3106c
NB
214
215M
216C ObjC C++ ObjC++
72de27ea 217Generate make dependencies
fef3106c 218
c878765b
JM
219MD
220C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
221Generate make dependencies and compile
fef3106c
NB
222
223MF
61ff2bdc 224C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
72de27ea 225-MF <file> Write dependency output to the given file
fef3106c
NB
226
227MG
228C ObjC C++ ObjC++
72de27ea 229Treat missing header files as generated files
fef3106c
NB
230
231MM
232C ObjC C++ ObjC++
72de27ea 233Like -M but ignore system header files
fef3106c 234
c878765b
JM
235MMD
236C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs)
237Like -MD but ignore system header files
fef3106c
NB
238
239MP
240C ObjC C++ ObjC++
72de27ea 241Generate phony targets for all headers
fef3106c
NB
242
243MQ
61ff2bdc 244C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
72de27ea 245-MQ <target> Add a MAKE-quoted target
fef3106c
NB
246
247MT
61ff2bdc 248C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
72de27ea 249-MT <target> Add an unquoted target
fef3106c
NB
250
251P
252C ObjC C++ ObjC++
72de27ea 253Do not generate #line directives
fef3106c
NB
254
255U
61ff2bdc 256C ObjC C++ ObjC++ Joined Separate MissingArgError(macro name missing after %qs)
72de27ea 257-U<macro> Undefine <macro>
fef3106c
NB
258
259Wabi
d7f09764 260C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
7619c085 261Warn about things that will change when compiling with an ABI-compliant compiler
fef3106c 262
bce08d50 263Wpsabi
d7f09764 264C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented
bce08d50 265
c116cd05
MLI
266Waddress
267C ObjC C++ ObjC++ Var(warn_address) Warning
268Warn about suspicious uses of memory addresses
269
fef3106c 270Wall
c662432e 271C ObjC C++ ObjC++ Warning
5a170a05 272Enable most warning messages
fef3106c 273
6e955430 274Wassign-intercept
c662432e 275ObjC ObjC++ Var(warn_assign_intercept) Warning
6e955430
ZL
276Warn whenever an Objective-C assignment is being intercepted by the garbage collector
277
fef3106c 278Wbad-function-cast
c662432e 279C ObjC Var(warn_bad_function_cast) Warning
5a170a05 280Warn about casting functions to incompatible types
fef3106c 281
c047ce93
SB
282Wbuiltin-macro-redefined
283C ObjC C++ ObjC++ Warning
284Warn when a built-in preprocessor macro is undefined or redefined
285
b7e20b53 286Wc++-compat
2cbac420 287C ObjC Var(warn_cxx_compat) Warning
b7e20b53
GDR
288Warn about C constructs that are not in the common subset of C and C++
289
e1f1ee86 290Wc++0x-compat
21af5cdf 291C++ ObjC++ Var(warn_cxx0x_compat) Warning
e1f1ee86 292Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x
b7e20b53 293
fef3106c 294Wcast-qual
c662432e 295C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
5a170a05 296Warn about casts which discard qualifiers
fef3106c
NB
297
298Wchar-subscripts
c662432e 299C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning
5a170a05 300Warn about subscripts whose type is \"char\"
fef3106c 301
2b001724 302Wclobbered
c662432e 303C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning
2b001724
MLI
304Warn about variables that might be changed by \"longjmp\" or \"vfork\"
305
fef3106c 306Wcomment
c662432e 307C ObjC C++ ObjC++ Warning
72de27ea 308Warn about possibly nested block comments, and C++ comments spanning more than one physical line
fef3106c
NB
309
310Wcomments
5de8299c 311C ObjC C++ ObjC++ Warning Alias(Wcomment)
72de27ea 312Synonym for -Wcomment
fef3106c
NB
313
314Wconversion
c662432e 315C ObjC C++ ObjC++ Var(warn_conversion) Warning
05170031 316Warn for implicit type conversions that may change a value
fef3106c 317
17251338
MLI
318Wconversion-null
319C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
320Warn for converting NULL from/to a non-pointer type
321
7060db96
MLI
322Wsign-conversion
323C ObjC C++ ObjC++ Var(warn_sign_conversion) Init(-1)
324Warn for implicit type conversions between signed and unsigned integers
325
fef3106c 326Wctor-dtor-privacy
c662432e 327C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
bae92bf3 328Warn when all constructors and destructors are private
fef3106c 329
85617eba 330Wdeclaration-after-statement
c662432e 331C ObjC Var(warn_declaration_after_statement) Warning
85617eba
HPN
332Warn when a declaration is found after a statement
333
014ab419
JW
334Wdelete-non-virtual-dtor
335C++ ObjC++ Var(warn_delnonvdtor) Warning
336Warn about deleting polymorphic objects with non-virtual destructors
337
fef3106c 338Wdeprecated
899015a0 339C C++ ObjC ObjC++ Var(warn_deprecated) Init(1) Warning
9a0f3e86 340Warn if a deprecated compiler feature, class, method, or field is used
fef3106c
NB
341
342Wdiv-by-zero
2cbac420 343C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
5a170a05 344Warn about compile-time integer division by zero
fef3106c
NB
345
346Weffc++
c662432e 347C++ ObjC++ Var(warn_ecpp) Warning
bae92bf3 348Warn about violations of Effective C++ style rules
fef3106c 349
b3b433c5 350Wempty-body
c662432e 351C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning
b3b433c5
MLI
352Warn about an empty body in an if or else statement
353
fef3106c 354Wendif-labels
c662432e 355C ObjC C++ ObjC++ Warning
72de27ea 356Warn about stray tokens after #elif and #endif
fef3106c 357
a3299096 358Wenum-compare
6866c6e8 359C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning
a3299096
MM
360Warn about comparison of different enum types
361
fef3106c
NB
362Werror
363C ObjC C++ ObjC++
72de27ea 364; Documented in common.opt
fef3106c
NB
365
366Werror-implicit-function-declaration
5de8299c 367C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
dc90f45b 368This switch is deprecated; use -Werror=implicit-function-declaration instead
fef3106c
NB
369
370Wfloat-equal
c662432e 371C ObjC C++ ObjC++ Var(warn_float_equal) Warning
5a170a05 372Warn if testing floating point numbers for equality
fef3106c
NB
373
374Wformat
c662432e 375C ObjC C++ ObjC++ Warning
5a170a05 376Warn about printf/scanf/strftime/strfmon format string anomalies
fef3106c
NB
377
378Wformat-extra-args
c662432e 379C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning
5a170a05 380Warn if passing too many arguments to a function for its format string
fef3106c
NB
381
382Wformat-nonliteral
c662432e 383C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning
5a170a05 384Warn about format strings that are not literals
fef3106c 385
ca178f85 386Wformat-contains-nul
6d16b6e7 387C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning
ca178f85
BK
388Warn about format strings that contain NUL bytes
389
fef3106c 390Wformat-security
c662432e 391C ObjC C++ ObjC++ Var(warn_format_security) Warning
5a170a05 392Warn about possible security problems with format functions
fef3106c
NB
393
394Wformat-y2k
c662432e 395C ObjC C++ ObjC++ Var(warn_format_y2k) Warning
5a170a05 396Warn about strftime formats yielding 2-digit years
fef3106c
NB
397
398Wformat-zero-length
4fbbcd7f 399C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning
7619c085 400Warn about zero-length formats
fef3106c
NB
401
402Wformat=
c662432e 403C ObjC C++ ObjC++ Joined Warning
fef3106c 404
5db2e9ca
DK
405Wignored-qualifiers
406C C++ Var(warn_ignored_qualifiers) Init(-1) Warning
407Warn whenever type qualifiers are ignored.
408
3390f9c9 409Winit-self
c662432e 410C ObjC C++ ObjC++ Var(warn_init_self) Warning
ab532386 411Warn about variables which are initialized to themselves
3390f9c9 412
fef3106c 413Wimplicit
3734d960
MLI
414C ObjC Var(warn_implicit) Init(-1) Warning
415Warn about implicit declarations
fef3106c 416
0a0b3574
MM
417Wdouble-promotion
418C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
419Warn about implicit conversions from \"float\" to \"double\"
420
fef3106c 421Wimplicit-function-declaration
dc90f45b 422C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning
5a170a05 423Warn about implicit function declarations
fef3106c
NB
424
425Wimplicit-int
3734d960 426C ObjC Var(warn_implicit_int) Init(-1) Warning
5a170a05 427Warn when a declaration does not specify a type
fef3106c
NB
428
429Wimport
2d2bd949 430C ObjC C++ ObjC++ Undocumented Ignore
fef3106c 431
53a2494e 432Wint-to-pointer-cast
dc8d2739 433C ObjC C++ ObjC++ Var(warn_int_to_pointer_cast) Init(1) Warning
53a2494e
JM
434Warn when there is a cast to a pointer from an integer of a different size
435
fef3106c 436Winvalid-offsetof
c662432e 437C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
bae92bf3 438Warn about invalid uses of the \"offsetof\" macro
fef3106c
NB
439
440Winvalid-pch
c662432e 441C ObjC C++ ObjC++ Warning
5a170a05 442Warn about PCH files that are found but not used
fef3106c 443
e1b7793c 444Wjump-misses-init
da667743 445C ObjC Var(warn_jump_misses_init) Init(-1) Warning
e1b7793c
ILT
446Warn when a jump misses a variable initialization
447
ca409efd 448Wlogical-op
7bb27074 449C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
ca409efd
MLI
450Warn when a logical operator is suspiciously always evaluating to true or false
451
fef3106c 452Wlong-long
9c650d90 453C ObjC C++ ObjC++ Var(warn_long_long) Init(-1) Warning
5a170a05 454Do not warn about using \"long long\" when -pedantic
fef3106c
NB
455
456Wmain
4003301d 457C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning
5a170a05 458Warn about suspicious declarations of \"main\"
fef3106c
NB
459
460Wmissing-braces
c662432e 461C ObjC C++ ObjC++ Var(warn_missing_braces) Warning
5a170a05 462Warn about possibly missing braces around initializers
fef3106c
NB
463
464Wmissing-declarations
c662432e 465C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
5a170a05 466Warn about global functions without previous declarations
fef3106c 467
eaac4679 468Wmissing-field-initializers
c662432e 469C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning
eaac4679
RS
470Warn about missing fields in struct initializers
471
fef3106c 472Wmissing-format-attribute
c662432e 473C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning
5a170a05 474Warn about functions which might be candidates for format attributes
fef3106c 475
b02398bd 476Wmissing-include-dirs
c662432e 477C ObjC C++ ObjC++ Warning
b02398bd
BE
478Warn about user-specified include directories that do not exist
479
cb4af25a 480Wmissing-parameter-type
c662432e 481C ObjC Var(warn_missing_parameter_type) Init(-1) Warning
cb4af25a
MLI
482Warn about function parameters declared without a type specifier in K&R-style functions
483
fef3106c 484Wmissing-prototypes
c662432e 485C ObjC Var(warn_missing_prototypes) Warning
5a170a05 486Warn about global functions without prototypes
fef3106c
NB
487
488Wmultichar
c662432e 489C ObjC C++ ObjC++ Warning
5a170a05 490Warn about use of multi-character character constants
fef3106c 491
76f86d00
JM
492Wnarrowing
493C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(1)
494-Wno-narrowing In C++0x mode, ignore ill-formed narrowing conversions within { }
495
fef3106c 496Wnested-externs
c662432e 497C ObjC Var(warn_nested_externs) Warning
5a170a05 498Warn about \"extern\" declarations not at file scope
fef3106c 499
59f9c2ed
JM
500Wnoexcept
501C++ ObjC++ Var(warn_noexcept) Warning
3c820dcd 502Warn when a noexcept expression evaluates to false even though the expression can't actually throw
59f9c2ed 503
fef3106c 504Wnon-template-friend
c662432e 505C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
bae92bf3 506Warn when non-templatized friend functions are declared within a template
fef3106c
NB
507
508Wnon-virtual-dtor
c662432e 509C++ ObjC++ Var(warn_nonvdtor) Warning
bae92bf3 510Warn about non-virtual destructors
fef3106c
NB
511
512Wnonnull
c662432e 513C ObjC Var(warn_nonnull) Warning
7619c085 514Warn about NULL being passed to argument slots marked as requiring non-NULL
fef3106c 515
50668cf6 516Wnormalized=
c662432e 517C ObjC C++ ObjC++ Joined Warning
50668cf6
GK
518-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
519
fef3106c 520Wold-style-cast
c662432e 521C++ ObjC++ Var(warn_old_style_cast) Warning
bae92bf3 522Warn if a C-style cast is used in a program
fef3106c 523
b1ed4cb4 524Wold-style-declaration
c662432e 525C ObjC Var(warn_old_style_declaration) Init(-1) Warning
b1ed4cb4
MLI
526Warn for obsolescent usage in a declaration
527
c034f121 528Wold-style-definition
c662432e 529C ObjC Var(warn_old_style_definition) Warning
c034f121
AJ
530Warn if an old-style parameter definition is used
531
89a42ac8 532Woverlength-strings
c662432e 533C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warning
89a42ac8
ZW
534Warn if a string is longer than the maximum portable length specified by the standard
535
fef3106c 536Woverloaded-virtual
c662432e 537C++ ObjC++ Var(warn_overloaded_virtual) Warning
bae92bf3 538Warn about overloaded virtual function names
fef3106c 539
7ed322d7 540Woverride-init
c662432e 541C ObjC Var(warn_override_init) Init(-1) Warning
7ed322d7
JM
542Warn about overriding initializers without side effects
543
2cd36c22 544Wpacked-bitfield-compat
bee6fa6d 545C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
2cd36c22
AN
546Warn about packed bit-fields whose offset changed in GCC 4.4
547
fef3106c 548Wparentheses
c662432e 549C ObjC C++ ObjC++ Var(warn_parentheses) Warning
5a170a05 550Warn about possibly missing parentheses
fef3106c
NB
551
552Wpmf-conversions
c662432e 553C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
bae92bf3 554Warn when converting the type of pointers to member functions
fef3106c
NB
555
556Wpointer-arith
c662432e 557C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning
5a170a05 558Warn about function pointer arithmetic
fef3106c 559
53a2494e 560Wpointer-to-int-cast
c662432e 561C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
53a2494e
JM
562Warn when a pointer is cast to an integer of a different size
563
b9b8dde3 564Wpragmas
c662432e 565C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
b9b8dde3
DD
566Warn about misuses of pragmas
567
9a179d01
NP
568Wproperty-assign-default
569ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
570Warn if a property for an Objective-C object has no assign semantics specified
571
fef3106c 572Wprotocol
c662432e 573ObjC ObjC++ Var(warn_protocol) Init(1) Warning
f2ac9964 574Warn if inherited methods are unimplemented
fef3106c
NB
575
576Wredundant-decls
c662432e 577C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
5a170a05 578Warn about multiple declarations of the same object
fef3106c
NB
579
580Wreorder
c662432e 581C++ ObjC++ Var(warn_reorder) Warning
bae92bf3 582Warn when the compiler reorders code
fef3106c
NB
583
584Wreturn-type
c662432e 585C ObjC C++ ObjC++ Var(warn_return_type) Warning
bae92bf3 586Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
fef3106c
NB
587
588Wselector
c662432e 589ObjC ObjC++ Var(warn_selector) Warning
f2ac9964 590Warn if a selector has multiple methods
fef3106c
NB
591
592Wsequence-point
c662432e 593C ObjC C++ ObjC++ Var(warn_sequence_point) Warning
5a170a05 594Warn about possible violations of sequence point rules
fef3106c
NB
595
596Wsign-compare
c662432e 597C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warning
5a170a05 598Warn about signed-unsigned comparisons
fef3106c
NB
599
600Wsign-promo
c662432e 601C++ ObjC++ Var(warn_sign_promo) Warning
bae92bf3 602Warn when overload promotes from unsigned to signed
fef3106c 603
b2f97e4a 604Wstrict-null-sentinel
5498f011 605C++ ObjC++ Warning Var(warn_strict_null_sentinel)
b2f97e4a
MM
606Warn about uncasted NULL used as sentinel
607
fef3106c 608Wstrict-prototypes
c662432e 609C ObjC Var(warn_strict_prototypes) Warning
5a170a05 610Warn about unprototyped function declarations
fef3106c 611
6e955430 612Wstrict-selector-match
c662432e 613ObjC ObjC++ Var(warn_strict_selector_match) Warning
6e955430
ZL
614Warn if type signatures of candidate methods do not match exactly
615
23462d4d
UB
616Wsync-nand
617C C++ Var(warn_sync_nand) Init(1) Warning
618Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
619
fef3106c 620Wsynth
c662432e 621C++ ObjC++ Var(warn_synth) Warning
802e3f8c 622Deprecated. This switch has no effect
fef3106c
NB
623
624Wsystem-headers
c662432e 625C ObjC C++ ObjC++ Warning
9a0f3e86 626; Documented in common.opt
fef3106c
NB
627
628Wtraditional
c662432e 629C ObjC Var(warn_traditional) Warning
72de27ea 630Warn about features not present in traditional C
fef3106c 631
05170031 632Wtraditional-conversion
c662432e 633C ObjC Var(warn_traditional_conversion) Warning
05170031
MLI
634Warn of prototypes causing type conversions different from what would happen in the absence of prototype
635
fef3106c 636Wtrigraphs
c662432e 637C ObjC C++ ObjC++ Warning
72de27ea 638Warn if trigraphs are encountered that might affect the meaning of the program
fef3106c
NB
639
640Wundeclared-selector
c662432e 641ObjC ObjC++ Var(warn_undeclared_selector) Warning
7619c085 642Warn about @selector()s without previously declared methods
fef3106c
NB
643
644Wundef
c662432e 645C ObjC C++ ObjC++ Warning
72de27ea 646Warn if an undefined macro is used in an #if directive
fef3106c
NB
647
648Wunknown-pragmas
c662432e 649C ObjC C++ ObjC++ Warning
5a170a05 650Warn about unrecognized pragmas
fef3106c 651
6ec637a4
JJ
652Wunsuffixed-float-constants
653C ObjC Var(warn_unsuffixed_float_constants) Warning
654Warn about unsuffixed float constants
655
3797cb21
DS
656Wunused-local-typedefs
657C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning
658Warn about
659
fef3106c 660Wunused-macros
c662432e 661C ObjC C++ ObjC++ Warning
72de27ea 662Warn about macros defined in the main file that are not used
fef3106c 663
156f545a
MLI
664Wunused-result
665C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
666Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
667
e5b79219 668Wvariadic-macros
c662432e 669C ObjC C++ ObjC++ Warning
e5b79219
RH
670Do not warn about using variadic macros when -pedantic
671
50d50fc7
SP
672Wvla
673C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
674Warn if a variable length array is used
675
16302daf
MLI
676Wvolatile-register-var
677C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning
678Warn when a register variable is declared volatile
679
fef3106c 680Wwrite-strings
c662432e 681C ObjC C++ ObjC++ Var(warn_write_strings) Warning
d8a07487 682In 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 683
f2fd3821 684Wpointer-sign
c662432e 685C ObjC Var(warn_pointer_sign) Init(-1) Warning
c85ce869 686Warn when a pointer differs in signedness in an assignment
f2fd3821 687
fef3106c
NB
688ansi
689C ObjC C++ ObjC++
c85ce869 690A synonym for -std=c89 (for C) or -std=c++98 (for C++)
fef3106c
NB
691
692d
693C ObjC C++ ObjC++ Joined
72de27ea 694; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 695
fef3106c 696faccess-control
5498f011 697C++ ObjC++ Var(flag_access_control) Init(1)
bae92bf3 698Enforce class member access control semantics
fef3106c
NB
699
700fall-virtual
2d2bd949 701C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 702
6637388f
TG
703fallow-parameterless-variadic-functions
704C ObjC Var(flag_allow_parameterless_variadic_functions)
705Allow variadic functions without named parameter
706
fef3106c 707falt-external-templates
2d2bd949 708C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 709No longer supported
fef3106c
NB
710
711fasm
5498f011 712C ObjC C++ ObjC++ Var(flag_no_asm, 0)
5a170a05 713Recognize the \"asm\" keyword
fef3106c 714
10e48e39
RO
715; Define extra predefined macros for use in libgcc.
716fbuilding-libgcc
717C ObjC C++ ObjC++ Undocumented Var(flag_building_libgcc)
718
fef3106c 719fbuiltin
5498f011 720C ObjC C++ ObjC++ Var(flag_no_builtin, 0)
5a170a05 721Recognize built-in functions
fef3106c
NB
722
723fbuiltin-
724C ObjC C++ ObjC++ Joined
725
726fcheck-new
5498f011 727C++ ObjC++ Var(flag_check_new)
bae92bf3 728Check the return value of new
fef3106c
NB
729
730fcond-mismatch
731C ObjC C++ ObjC++
5a170a05 732Allow the arguments of the '?' operator to have different types
fef3106c
NB
733
734fconserve-space
5498f011 735C++ ObjC++ Var(flag_conserve_space)
bae92bf3 736Reduce the size of object files
fef3106c 737
fef3106c 738fconstant-string-class=
61ff2bdc 739ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
f2ac9964 740-fconst-string-class=<name> Use class <name> for constant strings
fef3106c 741
17bc631c 742fconstexpr-depth=
49a000c3
JM
743C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
744-fconstexpr-depth=<number> Specify maximum constexpr recursion depth
17bc631c 745
5f5babf1
JM
746fdeduce-init-list
747C++ ObjC++ Var(flag_deduce_init_list) Init(1)
748-fno-deduce-init-list disable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
749
fef3106c 750fdefault-inline
2d2bd949 751C++ ObjC++ Ignore
5498f011 752Does nothing. Preserved for backward compatibility.
fef3106c 753
ccfc4c91
OW
754fdirectives-only
755C ObjC C++ ObjC++
756Preprocess directives only.
757
fef3106c
NB
758fdollars-in-identifiers
759C ObjC C++ ObjC++
72de27ea 760Permit '$' as an identifier character
fef3106c 761
fef3106c 762felide-constructors
5498f011 763C++ ObjC++ Var(flag_elide_constructors) Init(1)
fef3106c
NB
764
765fenforce-eh-specs
5498f011 766C++ ObjC++ Var(flag_enforce_eh_specs) Init(1)
bae92bf3 767Generate code to check exception specifications
fef3106c
NB
768
769fenum-int-equiv
2d2bd949 770C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 771
e6cc3a24
ZW
772fexec-charset=
773C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 774-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
e6cc3a24 775
af15a2fe
JM
776fextended-identifiers
777C ObjC C++ ObjC++
778Permit universal character names (\\u and \\U) in identifiers
779
16dd5cfe
EC
780finput-charset=
781C ObjC C++ ObjC++ Joined RejectNegative
c85ce869 782-finput-charset=<cset> Specify the default character set for source files
16dd5cfe
EC
783
784
fef3106c 785fexternal-templates
2d2bd949 786C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 787
fef3106c 788ffor-scope
5498f011 789C++ ObjC++ Var(flag_new_for_scope) Init(1)
bae92bf3 790Scope of for-init-statement variables is local to the loop
fef3106c
NB
791
792ffreestanding
820b51ae 793C ObjC C++ ObjC++
5a170a05 794Do not assume that standard C libraries and \"main\" exist
fef3106c
NB
795
796fgnu-keywords
5498f011 797C++ ObjC++ Var(flag_no_gnu_keywords, 0)
bae92bf3 798Recognize GNU-defined keywords
fef3106c
NB
799
800fgnu-runtime
801ObjC ObjC++
f2ac9964 802Generate code for GNU runtime environment
fef3106c 803
da1c7394 804fgnu89-inline
2cbac420 805C ObjC Var(flag_gnu89_inline) Init(-1)
da1c7394
ILT
806Use traditional GNU semantics for inline functions
807
fef3106c 808fguiding-decls
2d2bd949 809C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
810
811fhandle-exceptions
2d2bd949 812C++ ObjC++ Optimization Alias(fexceptions) Warn({-fhandle-exceptions has been renamed -fexceptions (and is now on by default)})
fef3106c
NB
813
814fhonor-std
2d2bd949 815C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
816
817fhosted
818C ObjC
5a170a05 819Assume normal C execution environment
fef3106c
NB
820
821fhuge-objects
2d2bd949 822C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 823No longer supported
fef3106c
NB
824
825fimplement-inlines
5498f011 826C++ ObjC++ Var(flag_implement_inlines) Init(1)
bae92bf3 827Export functions even if they can be inlined
fef3106c
NB
828
829fimplicit-inline-templates
5498f011 830C++ ObjC++ Var(flag_implicit_inline_templates) Init(1)
bae92bf3 831Emit implicit instantiations of inline templates
fef3106c
NB
832
833fimplicit-templates
5498f011 834C++ ObjC++ Var(flag_implicit_templates) Init(1)
bae92bf3 835Emit implicit instantiations of templates
fef3106c 836
d63d5d0c 837ffriend-injection
2cbac420 838C++ ObjC++ Var(flag_friend_injection)
d63d5d0c
ILT
839Inject friend functions into enclosing namespace
840
47ea1edf
DK
841fkeep-inline-dllexport
842C C++ ObjC ObjC++ Var(flag_keep_inline_dllexport) Init(1) Report Condition(TARGET_DLLIMPORT_DECL_ATTRIBUTES)
843Don't emit dllexported inline functions unless needed
844
fef3106c 845flabels-ok
2d2bd949 846C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 847
00c8e9f6 848flax-vector-conversions
5498f011 849C ObjC C++ ObjC++ Var(flag_lax_vector_conversions)
00c8e9f6
MS
850Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
851
fef3106c 852fms-extensions
5498f011 853C ObjC C++ ObjC++ Var(flag_ms_extensions)
bae92bf3 854Don't warn about uses of Microsoft extensions
fef3106c
NB
855
856fname-mangling-version-
2d2bd949 857C++ ObjC++ Joined Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
858
859fnew-abi
2d2bd949 860C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
861
862fnext-runtime
863ObjC ObjC++
264fa2db
ZL
864Generate code for NeXT (Apple Mac OS X) runtime environment
865
866fnil-receivers
5498f011 867ObjC ObjC++ Var(flag_nil_receivers) Init(1)
264fa2db 868Assume that receivers of Objective-C messages may be nil
fef3106c
NB
869
870fnonansi-builtins
5498f011 871C++ ObjC++ Var(flag_no_nonansi_builtin, 0)
fef3106c
NB
872
873fnonnull-objects
2d2bd949 874C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 875
9feb3d6a
JM
876fnothrow-opt
877C++ ObjC++ Optimization Var(flag_nothrow_opt)
878Treat a throw() exception specification as noexcept to improve code size
879
0a256240
NP
880fobjc-abi-version=
881ObjC ObjC++ Joined Report RejectNegative UInteger Var(flag_objc_abi)
882Specify which ABI to use for Objective-C family code and meta-data generation.
883
6e955430
ZL
884; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
885; to initialize any non-POD ivars in Objective-C++ classes.
886fobjc-call-cxx-cdtors
887ObjC++ Var(flag_objc_call_cxx_cdtors)
888Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
889
890fobjc-direct-dispatch
891ObjC ObjC++ Var(flag_objc_direct_dispatch)
892Allow fast jumps to the message dispatcher
893
894; Nonzero means that we will allow new ObjC exception syntax (@throw,
895; @try, etc.) in source code.
264fa2db 896fobjc-exceptions
6e955430 897ObjC ObjC++ Var(flag_objc_exceptions)
264fa2db
ZL
898Enable Objective-C exception and synchronization syntax
899
6e955430
ZL
900fobjc-gc
901ObjC ObjC++ Var(flag_objc_gc)
902Enable garbage collection (GC) in Objective-C/Objective-C++ programs
903
0a256240
NP
904fobjc-nilcheck
905ObjC ObjC++ Var(flag_objc_nilcheck,1)
906Enable inline checks for nil receivers with the NeXT runtime and ABI version 2.
907
6e955430 908; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 909fobjc-sjlj-exceptions
6e955430 910ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
093c7153
RH
911Enable Objective-C setjmp exception handling runtime
912
22d8d616
NP
913fobjc-std=objc1
914ObjC ObjC++ Var(flag_objc1_only)
915Conform to the Objective-C 1.0 language as implemented in GCC 4.0
916
953ff289
DN
917fopenmp
918C ObjC C++ ObjC++ Var(flag_openmp)
9a0f3e86 919Enable OpenMP (implies -frecursive in Fortran)
953ff289 920
fef3106c
NB
921foperator-names
922C++ ObjC++
1cbc62c0 923Recognize C++ keywords like \"compl\" and \"xor\"
fef3106c
NB
924
925foptional-diags
2d2bd949 926C++ ObjC++ Ignore
5498f011 927Does nothing. Preserved for backward compatibility.
fef3106c
NB
928
929fpch-deps
930C ObjC C++ ObjC++
931
c0d578e6
GK
932fpch-preprocess
933C ObjC C++ ObjC++
934Look for and use PCH files even when preprocessing
935
fef3106c
NB
936fpermissive
937C++ ObjC++
bae92bf3 938Downgrade conformance errors to warnings
fef3106c 939
478a1c5b
ILT
940fplan9-extensions
941C ObjC Var(flag_plan9_extensions)
942Enable Plan 9 language extensions
943
fef3106c
NB
944fpreprocessed
945C ObjC C++ ObjC++
72de27ea 946Treat the input file as already preprocessed
fef3106c 947
6ea2bd47 948fpretty-templates
5498f011 949C++ ObjC++ Var(flag_pretty_templates) Init(1)
6ea2bd47
JM
950-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
951
264fa2db 952freplace-objc-classes
5498f011 953ObjC ObjC++ Var(flag_replace_objc_classes)
264fa2db
ZL
954Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
955
fef3106c
NB
956frepo
957C++ ObjC++
bae92bf3 958Enable automatic template instantiation
fef3106c
NB
959
960frtti
5498f011 961C++ ObjC++ Optimization Var(flag_rtti) Init(1)
bae92bf3 962Generate run time type descriptor information
fef3106c
NB
963
964fshort-double
5498f011 965C ObjC C++ ObjC++ Optimization Var(flag_short_double)
5a170a05 966Use the same size for double as for float
fef3106c
NB
967
968fshort-enums
5498f011 969C ObjC C++ ObjC++ Optimization Var(flag_short_enums)
5a170a05 970Use the narrowest integer type possible for enumeration types
fef3106c
NB
971
972fshort-wchar
5498f011 973C ObjC C++ ObjC++ Optimization Var(flag_short_wchar)
5a170a05 974Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fef3106c 975
fef3106c 976fsigned-bitfields
5498f011 977C ObjC C++ ObjC++ Var(flag_signed_bitfields) Init(1)
5a170a05 978When \"signed\" or \"unsigned\" is not given make the bitfield signed
fef3106c
NB
979
980fsigned-char
5498f011 981C ObjC C++ ObjC++ LTO Var(flag_signed_char)
5a170a05 982Make \"char\" signed by default
fef3106c
NB
983
984fsquangle
2d2bd949 985C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
986
987fstats
5498f011 988C++ ObjC++ Var(flag_detailed_statistics)
bae92bf3 989Display statistics accumulated during compilation
fef3106c 990
cbb4feb3
JM
991fstrict-enums
992C++ ObjC++ Optimization Var(flag_strict_enums)
993Assume that values of enumeration type are always within the minimum range of that type
994
fef3106c 995fstrict-prototype
2d2bd949 996C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c
NB
997
998ftabstop=
7b086b11 999C ObjC C++ ObjC++ Joined RejectNegative UInteger
72de27ea 1000-ftabstop=<number> Distance between tab stops for column reporting
fef3106c
NB
1001
1002ftemplate-depth-
5de8299c 1003C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
124e0d27
MLI
1004
1005ftemplate-depth=
c22cacf3 1006C++ ObjC++ Joined RejectNegative UInteger
124e0d27 1007-ftemplate-depth=<number> Specify maximum template instantiation depth
fef3106c
NB
1008
1009fthis-is-variable
2d2bd949 1010C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fef3106c 1011
40aac948 1012fthreadsafe-statics
5498f011 1013C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
c85ce869 1014-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
40aac948 1015
fef3106c 1016funsigned-bitfields
f0036cca 1017C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
5a170a05 1018When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
fef3106c
NB
1019
1020funsigned-char
f0036cca 1021C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
5a170a05 1022Make \"char\" unsigned by default
fef3106c
NB
1023
1024fuse-cxa-atexit
5498f011 1025C++ ObjC++ Var(flag_use_cxa_atexit) Init(DEFAULT_USE_CXA_ATEXIT)
bae92bf3 1026Use __cxa_atexit to register destructors
fef3106c 1027
c7b5e395 1028fuse-cxa-get-exception-ptr
5498f011 1029C++ ObjC++ Var(flag_use_cxa_get_exception_ptr) Init(2)
c7b5e395
GK
1030Use __cxa_get_exception_ptr in exception handling
1031
d7afec4b 1032fvisibility-inlines-hidden
d0b07283 1033C++ ObjC++
d7afec4b
ND
1034Marks all inlined methods as having hidden visibility
1035
ddbfd28d
GK
1036fvisibility-ms-compat
1037C++ ObjC++ Var(flag_visibility_ms_compat)
1038Changes visibility to match Microsoft Visual Studio by default
1039
fef3106c 1040fvtable-gc
2d2bd949 1041C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1042No longer supported
fef3106c
NB
1043
1044fvtable-thunks
2d2bd949 1045C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1046No longer supported
fef3106c
NB
1047
1048fweak
5498f011 1049C++ ObjC++ Var(flag_weak) Init(1)
bae92bf3 1050Emit common-like symbols as weak symbols
fef3106c 1051
e6cc3a24
ZW
1052fwide-exec-charset=
1053C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 1054-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
e6cc3a24 1055
b20d9f0c 1056fworking-directory
5498f011 1057C ObjC C++ ObjC++ Var(flag_working_directory) Init(-1)
b20d9f0c
AO
1058Generate a #line directive pointing at the current working directory
1059
fef3106c 1060fxref
2d2bd949 1061C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
d1779886 1062No longer supported
fef3106c 1063
264fa2db 1064fzero-link
5498f011 1065ObjC ObjC++ Var(flag_zero_link)
264fa2db
ZL
1066Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
1067
fef3106c 1068gen-decls
5498f011 1069ObjC ObjC++ Var(flag_gen_declaration)
f2ac9964 1070Dump declarations to a .decl file
fef3106c 1071
39ef6592
LC
1072femit-struct-debug-baseonly
1073C ObjC C++ ObjC++
1074-femit-struct-debug-baseonly Aggressive reduced debug info for structs
1075
1076femit-struct-debug-reduced
1077C ObjC C++ ObjC++
1078-femit-struct-debug-reduced Conservative reduced debug info for structs
1079
1080femit-struct-debug-detailed=
1081C ObjC C++ ObjC++ Joined
1082-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
1083
fef3106c 1084idirafter
61ff2bdc 1085C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1086-idirafter <dir> Add <dir> to the end of the system include path
fef3106c
NB
1087
1088imacros
61ff2bdc 1089C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
72de27ea 1090-imacros <file> Accept definition of macros in <file>
fef3106c 1091
2b6dd222
JM
1092imultilib
1093C ObjC C++ ObjC++ Joined Separate
f94e1d66 1094-imultilib <dir> Set <dir> to be the multilib include subdirectory
2b6dd222 1095
fef3106c 1096include
61ff2bdc 1097C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs)
72de27ea 1098-include <file> Include the contents of <file> before other files
fef3106c
NB
1099
1100iprefix
1101C ObjC C++ ObjC++ Joined Separate
72de27ea 1102-iprefix <path> Specify <path> as a prefix for next two options
fef3106c
NB
1103
1104isysroot
61ff2bdc 1105C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1106-isysroot <dir> Set <dir> to be the system root directory
fef3106c
NB
1107
1108isystem
61ff2bdc 1109C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
72de27ea 1110-isystem <dir> Add <dir> to the start of the system include path
fef3106c 1111
4bed3787 1112iquote
61ff2bdc 1113C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
4bed3787
MS
1114-iquote <dir> Add <dir> to the end of the quote include path
1115
fef3106c
NB
1116iwithprefix
1117C ObjC C++ ObjC++ Joined Separate
72de27ea 1118-iwithprefix <dir> Add <dir> to the end of the system include path
fef3106c
NB
1119
1120iwithprefixbefore
1121C ObjC C++ ObjC++ Joined Separate
72de27ea 1122-iwithprefixbefore <dir> Add <dir> to the end of the main include path
fef3106c
NB
1123
1124lang-asm
603349bf 1125C Undocumented RejectDriver
fef3106c 1126
e200444e
JM
1127no-integrated-cpp
1128Driver
1129
fef3106c
NB
1130nostdinc
1131C ObjC C++ ObjC++
72de27ea 1132Do not search standard system include directories (those specified with -isystem will still be used)
fef3106c
NB
1133
1134nostdinc++
72de27ea
NB
1135C++ ObjC++
1136Do not search standard system include directories for C++
fef3106c
NB
1137
1138o
1139C ObjC C++ ObjC++ Joined Separate
72de27ea 1140; Documented in common.opt
fef3106c
NB
1141
1142pedantic
1143C ObjC C++ ObjC++
72de27ea 1144; Documented in common.opt
fef3106c
NB
1145
1146pedantic-errors
1147C ObjC C++ ObjC++
72de27ea 1148; Documented in common.opt
fef3106c
NB
1149
1150print-objc-runtime-info
1151ObjC ObjC++
f2ac9964 1152Generate C header of platform-specific features
fef3106c
NB
1153
1154remap
1155C ObjC C++ ObjC++
72de27ea 1156Remap file names when including files
fef3106c
NB
1157
1158std=c++98
1159C++ ObjC++
c7dc8804
JM
1160Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
1161
1162std=c++03
1163C++ ObjC++ Alias(std=c++98)
1164Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
fef3106c 1165
966541e3
DG
1166std=c++0x
1167C++ ObjC++
1168Conform to the ISO 1998 C++ standard, with extensions that are likely to
1169become a part of the upcoming ISO C++ standard, dubbed C++0x. Note that the
1170extensions enabled by this mode are experimental and may be removed in
1171future releases of GCC.
1172
2778d766
JM
1173std=c1x
1174C ObjC
1175Conform to the ISO 201X C standard draft (experimental and incomplete support)
1176
fef3106c 1177std=c89
5de8299c 1178C ObjC Alias(std=c90)
72de27ea 1179Conform to the ISO 1990 C standard
fef3106c 1180
7e1542b9
MLI
1181std=c90
1182C ObjC
1183Conform to the ISO 1990 C standard
1184
fef3106c
NB
1185std=c99
1186C ObjC
72de27ea 1187Conform to the ISO 1999 C standard
fef3106c
NB
1188
1189std=c9x
5de8299c 1190C ObjC Alias(std=c99)
72de27ea 1191Deprecated in favor of -std=c99
fef3106c
NB
1192
1193std=gnu++98
1194C++ ObjC++
72de27ea 1195Conform to the ISO 1998 C++ standard with GNU extensions
fef3106c 1196
966541e3
DG
1197std=gnu++0x
1198C++ ObjC++
1199Conform to the ISO 1998 C++ standard, with GNU extensions and
1200extensions that are likely to become a part of the upcoming ISO C++
1201standard, dubbed C++0x. Note that the extensions enabled by this mode
1202are experimental and may be removed in future releases of GCC.
1203
2778d766
JM
1204std=gnu1x
1205C ObjC
1206Conform to the ISO 201X C standard draft with GNU extensions (experimental and incomplete support)
1207
fef3106c 1208std=gnu89
5de8299c 1209C ObjC Alias(std=gnu90)
72de27ea 1210Conform to the ISO 1990 C standard with GNU extensions
fef3106c 1211
7e1542b9
MLI
1212std=gnu90
1213C ObjC
1214Conform to the ISO 1990 C standard with GNU extensions
1215
fef3106c
NB
1216std=gnu99
1217C ObjC
72de27ea 1218Conform to the ISO 1999 C standard with GNU extensions
fef3106c
NB
1219
1220std=gnu9x
5de8299c 1221C ObjC Alias(std=gnu99)
72de27ea 1222Deprecated in favor of -std=gnu99
fef3106c
NB
1223
1224std=iso9899:1990
5de8299c 1225C ObjC Alias(std=c90)
3a1e400e 1226Conform to the ISO 1990 C standard
fef3106c
NB
1227
1228std=iso9899:199409
1229C ObjC
72de27ea 1230Conform to the ISO 1990 C standard as amended in 1994
fef3106c
NB
1231
1232std=iso9899:1999
5de8299c 1233C ObjC Alias(std=c99)
3a1e400e 1234Conform to the ISO 1999 C standard
fef3106c
NB
1235
1236std=iso9899:199x
5de8299c 1237C ObjC Alias(std=c99)
3a1e400e 1238Deprecated in favor of -std=iso9899:1999
fef3106c 1239
e200444e
JM
1240traditional
1241Driver
1242
fef3106c
NB
1243traditional-cpp
1244C ObjC C++ ObjC++
72de27ea 1245Enable traditional preprocessing
fef3106c
NB
1246
1247trigraphs
1248C ObjC C++ ObjC++
72de27ea 1249-trigraphs Support ISO C trigraphs
fef3106c
NB
1250
1251undef
5498f011 1252C ObjC C++ ObjC++ Var(flag_undef)
72de27ea 1253Do not predefine system-specific and GCC-specific macros
fef3106c
NB
1254
1255v
d5478783
JM
1256C ObjC C++ ObjC++
1257; Documented in common.opt
fef3106c
NB
1258
1259w
1260C ObjC C++ ObjC++
72de27ea 1261; Documented in common.opt
e11a4ae5
NB
1262
1263; This comment is to ensure we retain the blank line above.