]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c.opt
alias.c (record_set, [...]): Constify.
[thirdparty/gcc.git] / gcc / c.opt
CommitLineData
fef3106c 1; Options for the C, ObjC, C++ and ObjC++ front ends.
da1c7394 2; Copyright (C) 2003, 2004, 2005, 2006, 2007 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
fef3106c
NB
36-output-pch=
37C ObjC C++ ObjC++ Joined Separate
38
39A
40C ObjC C++ ObjC++ Joined Separate
72de27ea 41-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>
fef3106c
NB
42
43C
44C ObjC C++ ObjC++
72de27ea 45Do not discard comments
fef3106c
NB
46
47CC
48C ObjC C++ ObjC++
72de27ea 49Do not discard comments in macro expansions
fef3106c
NB
50
51D
52C ObjC C++ ObjC++ Joined Separate
72de27ea 53-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1
fef3106c
NB
54
55E
f2ac9964 56C ObjC C++ ObjC++ Undocumented
fef3106c 57
94d1613b
MS
58F
59C ObjC C++ ObjC++ Joined Separate
4e994432 60-F <dir> Add <dir> to the end of the main framework include path
94d1613b 61
fef3106c
NB
62H
63C ObjC C++ ObjC++
72de27ea 64Print the name of header files as they are used
fef3106c
NB
65
66I
67C ObjC C++ ObjC++ Joined Separate
4bed3787 68-I <dir> Add <dir> to the end of the main include path
fef3106c
NB
69
70M
71C ObjC C++ ObjC++
72de27ea 72Generate make dependencies
fef3106c
NB
73
74MD
75C ObjC C++ ObjC++ Separate
72de27ea 76Generate make dependencies and compile
fef3106c
NB
77
78MF
79C ObjC C++ ObjC++ Joined Separate
72de27ea 80-MF <file> Write dependency output to the given file
fef3106c
NB
81
82MG
83C ObjC C++ ObjC++
72de27ea 84Treat missing header files as generated files
fef3106c
NB
85
86MM
87C ObjC C++ ObjC++
72de27ea 88Like -M but ignore system header files
fef3106c
NB
89
90MMD
91C ObjC C++ ObjC++ Separate
72de27ea 92Like -MD but ignore system header files
fef3106c
NB
93
94MP
95C ObjC C++ ObjC++
72de27ea 96Generate phony targets for all headers
fef3106c
NB
97
98MQ
99C ObjC C++ ObjC++ Joined Separate
72de27ea 100-MQ <target> Add a MAKE-quoted target
fef3106c
NB
101
102MT
103C ObjC C++ ObjC++ Joined Separate
72de27ea 104-MT <target> Add an unquoted target
fef3106c
NB
105
106P
107C ObjC C++ ObjC++
72de27ea 108Do not generate #line directives
fef3106c
NB
109
110U
111C ObjC C++ ObjC++ Joined Separate
72de27ea 112-U<macro> Undefine <macro>
fef3106c
NB
113
114Wabi
c662432e 115C++ ObjC++ Var(warn_abi) Warning
7619c085 116Warn about things that will change when compiling with an ABI-compliant compiler
fef3106c 117
c116cd05
MLI
118Waddress
119C ObjC C++ ObjC++ Var(warn_address) Warning
120Warn about suspicious uses of memory addresses
121
fef3106c 122Wall
c662432e 123C ObjC C++ ObjC++ Warning
5a170a05 124Enable most warning messages
fef3106c 125
f6aa72dd
MLI
126Wtype-limits
127C ObjC C++ ObjC++ Var(warn_type_limits) Init(-1) Warning
128Warn if a comparison is always true or always false due to the limited range of the data type
129
6e955430 130Wassign-intercept
c662432e 131ObjC ObjC++ Var(warn_assign_intercept) Warning
6e955430
ZL
132Warn whenever an Objective-C assignment is being intercepted by the garbage collector
133
fef3106c 134Wbad-function-cast
c662432e 135C ObjC Var(warn_bad_function_cast) Warning
5a170a05 136Warn about casting functions to incompatible types
fef3106c 137
b7e20b53 138Wc++-compat
2cbac420 139C ObjC Var(warn_cxx_compat) Warning
b7e20b53
GDR
140Warn about C constructs that are not in the common subset of C and C++
141
e1f1ee86 142Wc++0x-compat
21af5cdf 143C++ ObjC++ Var(warn_cxx0x_compat) Warning
e1f1ee86 144Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x
b7e20b53 145
fef3106c 146Wcast-qual
c662432e 147C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
5a170a05 148Warn about casts which discard qualifiers
fef3106c
NB
149
150Wchar-subscripts
c662432e 151C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning
5a170a05 152Warn about subscripts whose type is \"char\"
fef3106c 153
2b001724 154Wclobbered
c662432e 155C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning
2b001724
MLI
156Warn about variables that might be changed by \"longjmp\" or \"vfork\"
157
fef3106c 158Wcomment
c662432e 159C ObjC C++ ObjC++ Warning
72de27ea 160Warn about possibly nested block comments, and C++ comments spanning more than one physical line
fef3106c
NB
161
162Wcomments
c662432e 163C ObjC C++ ObjC++ Warning
72de27ea 164Synonym for -Wcomment
fef3106c
NB
165
166Wconversion
c662432e 167C ObjC C++ ObjC++ Var(warn_conversion) Warning
05170031 168Warn for implicit type conversions that may change a value
fef3106c 169
7060db96
MLI
170Wsign-conversion
171C ObjC C++ ObjC++ Var(warn_sign_conversion) Init(-1)
172Warn for implicit type conversions between signed and unsigned integers
173
fef3106c 174Wctor-dtor-privacy
c662432e 175C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
bae92bf3 176Warn when all constructors and destructors are private
fef3106c 177
85617eba 178Wdeclaration-after-statement
c662432e 179C ObjC Var(warn_declaration_after_statement) Warning
85617eba
HPN
180Warn when a declaration is found after a statement
181
fef3106c 182Wdeprecated
c662432e 183C++ ObjC++ Var(warn_deprecated) Init(1) Warning
bae92bf3 184Warn about deprecated compiler features
fef3106c
NB
185
186Wdiv-by-zero
2cbac420 187C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
5a170a05 188Warn about compile-time integer division by zero
fef3106c
NB
189
190Weffc++
c662432e 191C++ ObjC++ Var(warn_ecpp) Warning
bae92bf3 192Warn about violations of Effective C++ style rules
fef3106c 193
b3b433c5 194Wempty-body
c662432e 195C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning
b3b433c5
MLI
196Warn about an empty body in an if or else statement
197
fef3106c 198Wendif-labels
c662432e 199C ObjC C++ ObjC++ Warning
72de27ea 200Warn about stray tokens after #elif and #endif
fef3106c
NB
201
202Werror
203C ObjC C++ ObjC++
72de27ea 204; Documented in common.opt
fef3106c
NB
205
206Werror-implicit-function-declaration
c662432e 207C ObjC RejectNegative Warning
dc90f45b 208This switch is deprecated; use -Werror=implicit-function-declaration instead
fef3106c
NB
209
210Wfloat-equal
c662432e 211C ObjC C++ ObjC++ Var(warn_float_equal) Warning
5a170a05 212Warn if testing floating point numbers for equality
fef3106c
NB
213
214Wformat
c662432e 215C ObjC C++ ObjC++ Warning
5a170a05 216Warn about printf/scanf/strftime/strfmon format string anomalies
fef3106c
NB
217
218Wformat-extra-args
c662432e 219C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning
5a170a05 220Warn if passing too many arguments to a function for its format string
fef3106c
NB
221
222Wformat-nonliteral
c662432e 223C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning
5a170a05 224Warn about format strings that are not literals
fef3106c 225
ca178f85 226Wformat-contains-nul
6d16b6e7 227C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning
ca178f85
BK
228Warn about format strings that contain NUL bytes
229
fef3106c 230Wformat-security
c662432e 231C ObjC C++ ObjC++ Var(warn_format_security) Warning
5a170a05 232Warn about possible security problems with format functions
fef3106c
NB
233
234Wformat-y2k
c662432e 235C ObjC C++ ObjC++ Var(warn_format_y2k) Warning
5a170a05 236Warn about strftime formats yielding 2-digit years
fef3106c
NB
237
238Wformat-zero-length
c662432e 239C ObjC Var(warn_format_zero_length) Warning
7619c085 240Warn about zero-length formats
fef3106c
NB
241
242Wformat=
c662432e 243C ObjC C++ ObjC++ Joined Warning
fef3106c 244
3390f9c9 245Winit-self
c662432e 246C ObjC C++ ObjC++ Var(warn_init_self) Warning
ab532386 247Warn about variables which are initialized to themselves
3390f9c9 248
fef3106c 249Wimplicit
c662432e 250C ObjC C++ ObjC++ Warning
fef3106c
NB
251
252Wimplicit-function-declaration
dc90f45b 253C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning
5a170a05 254Warn about implicit function declarations
fef3106c
NB
255
256Wimplicit-int
c662432e 257C ObjC Var(warn_implicit_int) Warning
5a170a05 258Warn when a declaration does not specify a type
fef3106c
NB
259
260Wimport
261C ObjC C++ ObjC++
ab532386 262Deprecated. This switch has no effect
fef3106c 263
53a2494e 264Wint-to-pointer-cast
c662432e 265C ObjC Var(warn_int_to_pointer_cast) Init(1) Warning
53a2494e
JM
266Warn when there is a cast to a pointer from an integer of a different size
267
fef3106c 268Winvalid-offsetof
c662432e 269C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
bae92bf3 270Warn about invalid uses of the \"offsetof\" macro
fef3106c
NB
271
272Winvalid-pch
c662432e 273C ObjC C++ ObjC++ Warning
5a170a05 274Warn about PCH files that are found but not used
fef3106c
NB
275
276Wlong-long
c662432e 277C ObjC C++ ObjC++ Var(warn_long_long) Init(1) Warning
5a170a05 278Do not warn about using \"long long\" when -pedantic
fef3106c
NB
279
280Wmain
820b51ae 281C ObjC C++ ObjC++ Warning
5a170a05 282Warn about suspicious declarations of \"main\"
fef3106c
NB
283
284Wmissing-braces
c662432e 285C ObjC C++ ObjC++ Var(warn_missing_braces) Warning
5a170a05 286Warn about possibly missing braces around initializers
fef3106c
NB
287
288Wmissing-declarations
c662432e 289C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
5a170a05 290Warn about global functions without previous declarations
fef3106c 291
eaac4679 292Wmissing-field-initializers
c662432e 293C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning
eaac4679
RS
294Warn about missing fields in struct initializers
295
fef3106c 296Wmissing-format-attribute
c662432e 297C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning
5a170a05 298Warn about functions which might be candidates for format attributes
fef3106c 299
b02398bd 300Wmissing-include-dirs
c662432e 301C ObjC C++ ObjC++ Warning
b02398bd
BE
302Warn about user-specified include directories that do not exist
303
cb4af25a 304Wmissing-parameter-type
c662432e 305C ObjC Var(warn_missing_parameter_type) Init(-1) Warning
cb4af25a
MLI
306Warn about function parameters declared without a type specifier in K&R-style functions
307
fef3106c 308Wmissing-prototypes
c662432e 309C ObjC Var(warn_missing_prototypes) Warning
5a170a05 310Warn about global functions without prototypes
fef3106c
NB
311
312Wmultichar
c662432e 313C ObjC C++ ObjC++ Warning
5a170a05 314Warn about use of multi-character character constants
fef3106c
NB
315
316Wnested-externs
c662432e 317C ObjC Var(warn_nested_externs) Warning
5a170a05 318Warn about \"extern\" declarations not at file scope
fef3106c
NB
319
320Wnon-template-friend
c662432e 321C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
bae92bf3 322Warn when non-templatized friend functions are declared within a template
fef3106c
NB
323
324Wnon-virtual-dtor
c662432e 325C++ ObjC++ Var(warn_nonvdtor) Warning
bae92bf3 326Warn about non-virtual destructors
fef3106c
NB
327
328Wnonnull
c662432e 329C ObjC Var(warn_nonnull) Warning
7619c085 330Warn about NULL being passed to argument slots marked as requiring non-NULL
fef3106c 331
50668cf6 332Wnormalized=
c662432e 333C ObjC C++ ObjC++ Joined Warning
50668cf6
GK
334-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
335
fef3106c 336Wold-style-cast
c662432e 337C++ ObjC++ Var(warn_old_style_cast) Warning
bae92bf3 338Warn if a C-style cast is used in a program
fef3106c 339
b1ed4cb4 340Wold-style-declaration
c662432e 341C ObjC Var(warn_old_style_declaration) Init(-1) Warning
b1ed4cb4
MLI
342Warn for obsolescent usage in a declaration
343
c034f121 344Wold-style-definition
c662432e 345C ObjC Var(warn_old_style_definition) Warning
c034f121
AJ
346Warn if an old-style parameter definition is used
347
89a42ac8 348Woverlength-strings
c662432e 349C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warning
89a42ac8
ZW
350Warn if a string is longer than the maximum portable length specified by the standard
351
fef3106c 352Woverloaded-virtual
c662432e 353C++ ObjC++ Var(warn_overloaded_virtual) Warning
bae92bf3 354Warn about overloaded virtual function names
fef3106c 355
7ed322d7 356Woverride-init
c662432e 357C ObjC Var(warn_override_init) Init(-1) Warning
7ed322d7
JM
358Warn about overriding initializers without side effects
359
fef3106c 360Wparentheses
c662432e 361C ObjC C++ ObjC++ Var(warn_parentheses) Warning
5a170a05 362Warn about possibly missing parentheses
fef3106c
NB
363
364Wpmf-conversions
c662432e 365C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
bae92bf3 366Warn when converting the type of pointers to member functions
fef3106c
NB
367
368Wpointer-arith
c662432e 369C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning
5a170a05 370Warn about function pointer arithmetic
fef3106c 371
53a2494e 372Wpointer-to-int-cast
c662432e 373C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
53a2494e
JM
374Warn when a pointer is cast to an integer of a different size
375
b9b8dde3 376Wpragmas
c662432e 377C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
b9b8dde3
DD
378Warn about misuses of pragmas
379
fef3106c 380Wprotocol
c662432e 381ObjC ObjC++ Var(warn_protocol) Init(1) Warning
f2ac9964 382Warn if inherited methods are unimplemented
fef3106c
NB
383
384Wredundant-decls
c662432e 385C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
5a170a05 386Warn about multiple declarations of the same object
fef3106c
NB
387
388Wreorder
c662432e 389C++ ObjC++ Var(warn_reorder) Warning
bae92bf3 390Warn when the compiler reorders code
fef3106c
NB
391
392Wreturn-type
c662432e 393C ObjC C++ ObjC++ Var(warn_return_type) Warning
bae92bf3 394Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
fef3106c
NB
395
396Wselector
c662432e 397ObjC ObjC++ Var(warn_selector) Warning
f2ac9964 398Warn if a selector has multiple methods
fef3106c
NB
399
400Wsequence-point
c662432e 401C ObjC C++ ObjC++ Var(warn_sequence_point) Warning
5a170a05 402Warn about possible violations of sequence point rules
fef3106c
NB
403
404Wsign-compare
c662432e 405C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warning
5a170a05 406Warn about signed-unsigned comparisons
fef3106c
NB
407
408Wsign-promo
c662432e 409C++ ObjC++ Var(warn_sign_promo) Warning
bae92bf3 410Warn when overload promotes from unsigned to signed
fef3106c 411
b2f97e4a 412Wstrict-null-sentinel
c662432e 413C++ ObjC++ Warning
b2f97e4a
MM
414Warn about uncasted NULL used as sentinel
415
fef3106c 416Wstrict-prototypes
c662432e 417C ObjC Var(warn_strict_prototypes) Warning
5a170a05 418Warn about unprototyped function declarations
fef3106c 419
6e955430 420Wstrict-selector-match
c662432e 421ObjC ObjC++ Var(warn_strict_selector_match) Warning
6e955430
ZL
422Warn if type signatures of candidate methods do not match exactly
423
fef3106c 424Wsynth
c662432e 425C++ ObjC++ Var(warn_synth) Warning
bae92bf3 426Warn when synthesis behavior differs from Cfront
fef3106c
NB
427
428Wsystem-headers
c662432e 429C ObjC C++ ObjC++ Warning
72de27ea 430Do not suppress warnings from system headers
fef3106c
NB
431
432Wtraditional
c662432e 433C ObjC Var(warn_traditional) Warning
72de27ea 434Warn about features not present in traditional C
fef3106c 435
05170031 436Wtraditional-conversion
c662432e 437C ObjC Var(warn_traditional_conversion) Warning
05170031
MLI
438Warn of prototypes causing type conversions different from what would happen in the absence of prototype
439
fef3106c 440Wtrigraphs
c662432e 441C ObjC C++ ObjC++ Warning
72de27ea 442Warn if trigraphs are encountered that might affect the meaning of the program
fef3106c
NB
443
444Wundeclared-selector
c662432e 445ObjC ObjC++ Var(warn_undeclared_selector) Warning
7619c085 446Warn about @selector()s without previously declared methods
fef3106c
NB
447
448Wundef
c662432e 449C ObjC C++ ObjC++ Warning
72de27ea 450Warn if an undefined macro is used in an #if directive
fef3106c
NB
451
452Wunknown-pragmas
c662432e 453C ObjC C++ ObjC++ Warning
5a170a05 454Warn about unrecognized pragmas
fef3106c
NB
455
456Wunused-macros
c662432e 457C ObjC C++ ObjC++ Warning
72de27ea 458Warn about macros defined in the main file that are not used
fef3106c 459
e5b79219 460Wvariadic-macros
c662432e 461C ObjC C++ ObjC++ Warning
e5b79219
RH
462Do not warn about using variadic macros when -pedantic
463
50d50fc7
SP
464Wvla
465C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
466Warn if a variable length array is used
467
fef3106c 468Wwrite-strings
c662432e 469C ObjC C++ ObjC++ Var(warn_write_strings) Warning
d539b114 470In 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 471
f2fd3821 472Wpointer-sign
c662432e 473C ObjC Var(warn_pointer_sign) Init(-1) Warning
c85ce869 474Warn when a pointer differs in signedness in an assignment
f2fd3821 475
fef3106c
NB
476ansi
477C ObjC C++ ObjC++
c85ce869 478A synonym for -std=c89 (for C) or -std=c++98 (for C++)
fef3106c
NB
479
480d
481C ObjC C++ ObjC++ Joined
72de27ea 482; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 483
fef3106c
NB
484faccess-control
485C++ ObjC++
bae92bf3 486Enforce class member access control semantics
fef3106c
NB
487
488fall-virtual
489C++ ObjC++
490
491falt-external-templates
492C++ ObjC++
bae92bf3 493Change when template instances are emitted
fef3106c
NB
494
495fasm
496C ObjC C++ ObjC++
5a170a05 497Recognize the \"asm\" keyword
fef3106c
NB
498
499fbuiltin
500C ObjC C++ ObjC++
5a170a05 501Recognize built-in functions
fef3106c
NB
502
503fbuiltin-
504C ObjC C++ ObjC++ Joined
505
506fcheck-new
507C++ ObjC++
bae92bf3 508Check the return value of new
fef3106c
NB
509
510fcond-mismatch
511C ObjC C++ ObjC++
5a170a05 512Allow the arguments of the '?' operator to have different types
fef3106c
NB
513
514fconserve-space
515C++ ObjC++
bae92bf3 516Reduce the size of object files
fef3106c 517
fef3106c
NB
518fconstant-string-class=
519ObjC ObjC++ Joined
f2ac9964 520-fconst-string-class=<name> Use class <name> for constant strings
fef3106c
NB
521
522fdefault-inline
523C++ ObjC++
bae92bf3 524Inline member functions by default
fef3106c
NB
525
526fdollars-in-identifiers
527C ObjC C++ ObjC++
72de27ea 528Permit '$' as an identifier character
fef3106c 529
fef3106c
NB
530felide-constructors
531C++ ObjC++
532
533fenforce-eh-specs
534C++ ObjC++
bae92bf3 535Generate code to check exception specifications
fef3106c
NB
536
537fenum-int-equiv
538C++ ObjC++
539
e6cc3a24
ZW
540fexec-charset=
541C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 542-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
e6cc3a24 543
af15a2fe
JM
544fextended-identifiers
545C ObjC C++ ObjC++
546Permit universal character names (\\u and \\U) in identifiers
547
16dd5cfe
EC
548finput-charset=
549C ObjC C++ ObjC++ Joined RejectNegative
c85ce869 550-finput-charset=<cset> Specify the default character set for source files
16dd5cfe
EC
551
552
fef3106c
NB
553fexternal-templates
554C++ ObjC++
555
fef3106c
NB
556ffor-scope
557C++ ObjC++
bae92bf3 558Scope of for-init-statement variables is local to the loop
fef3106c
NB
559
560ffreestanding
820b51ae 561C ObjC C++ ObjC++
5a170a05 562Do not assume that standard C libraries and \"main\" exist
fef3106c
NB
563
564fgnu-keywords
565C++ ObjC++
bae92bf3 566Recognize GNU-defined keywords
fef3106c
NB
567
568fgnu-runtime
569ObjC ObjC++
f2ac9964 570Generate code for GNU runtime environment
fef3106c 571
da1c7394 572fgnu89-inline
2cbac420 573C ObjC Var(flag_gnu89_inline) Init(-1)
da1c7394
ILT
574Use traditional GNU semantics for inline functions
575
fef3106c
NB
576fguiding-decls
577C++ ObjC++
578
579fhandle-exceptions
c662432e 580C++ ObjC++ Optimization
fef3106c
NB
581
582fhonor-std
583C++ ObjC++
584
585fhosted
586C ObjC
5a170a05 587Assume normal C execution environment
fef3106c
NB
588
589fhuge-objects
590C++ ObjC++
bae92bf3 591Enable support for huge objects
fef3106c
NB
592
593fimplement-inlines
594C++ ObjC++
bae92bf3 595Export functions even if they can be inlined
fef3106c
NB
596
597fimplicit-inline-templates
598C++ ObjC++
bae92bf3 599Emit implicit instantiations of inline templates
fef3106c
NB
600
601fimplicit-templates
602C++ ObjC++
bae92bf3 603Emit implicit instantiations of templates
fef3106c 604
d63d5d0c 605ffriend-injection
2cbac420 606C++ ObjC++ Var(flag_friend_injection)
d63d5d0c
ILT
607Inject friend functions into enclosing namespace
608
fef3106c
NB
609flabels-ok
610C++ ObjC++
611
00c8e9f6
MS
612flax-vector-conversions
613C ObjC C++ ObjC++
614Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
615
fef3106c
NB
616fms-extensions
617C ObjC C++ ObjC++
bae92bf3 618Don't warn about uses of Microsoft extensions
fef3106c
NB
619
620fname-mangling-version-
621C++ ObjC++ Joined
622
623fnew-abi
624C++ ObjC++
625
626fnext-runtime
627ObjC ObjC++
264fa2db
ZL
628Generate code for NeXT (Apple Mac OS X) runtime environment
629
630fnil-receivers
631ObjC ObjC++
632Assume that receivers of Objective-C messages may be nil
fef3106c
NB
633
634fnonansi-builtins
635C++ ObjC++
636
637fnonnull-objects
638C++ ObjC++
639
6e955430
ZL
640; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
641; to initialize any non-POD ivars in Objective-C++ classes.
642fobjc-call-cxx-cdtors
643ObjC++ Var(flag_objc_call_cxx_cdtors)
644Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
645
646fobjc-direct-dispatch
647ObjC ObjC++ Var(flag_objc_direct_dispatch)
648Allow fast jumps to the message dispatcher
649
650; Nonzero means that we will allow new ObjC exception syntax (@throw,
651; @try, etc.) in source code.
264fa2db 652fobjc-exceptions
6e955430 653ObjC ObjC++ Var(flag_objc_exceptions)
264fa2db
ZL
654Enable Objective-C exception and synchronization syntax
655
6e955430
ZL
656fobjc-gc
657ObjC ObjC++ Var(flag_objc_gc)
658Enable garbage collection (GC) in Objective-C/Objective-C++ programs
659
660; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 661fobjc-sjlj-exceptions
6e955430 662ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
093c7153
RH
663Enable Objective-C setjmp exception handling runtime
664
953ff289
DN
665fopenmp
666C ObjC C++ ObjC++ Var(flag_openmp)
667Enable OpenMP
668
fef3106c
NB
669foperator-names
670C++ ObjC++
bae92bf3 671Recognize C++ kewords like \"compl\" and \"xor\"
fef3106c
NB
672
673foptional-diags
674C++ ObjC++
bae92bf3 675Enable optional diagnostics
fef3106c
NB
676
677fpch-deps
678C ObjC C++ ObjC++
679
c0d578e6
GK
680fpch-preprocess
681C ObjC C++ ObjC++
682Look for and use PCH files even when preprocessing
683
fef3106c
NB
684fpermissive
685C++ ObjC++
bae92bf3 686Downgrade conformance errors to warnings
fef3106c
NB
687
688fpreprocessed
689C ObjC C++ ObjC++
72de27ea 690Treat the input file as already preprocessed
fef3106c 691
264fa2db
ZL
692freplace-objc-classes
693ObjC ObjC++
694Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
695
fef3106c
NB
696frepo
697C++ ObjC++
bae92bf3 698Enable automatic template instantiation
fef3106c
NB
699
700frtti
c662432e 701C++ ObjC++ Optimization
bae92bf3 702Generate run time type descriptor information
fef3106c
NB
703
704fshort-double
c662432e 705C ObjC C++ ObjC++ Optimization
5a170a05 706Use the same size for double as for float
fef3106c
NB
707
708fshort-enums
c662432e 709C ObjC C++ ObjC++ Optimization
5a170a05 710Use the narrowest integer type possible for enumeration types
fef3106c
NB
711
712fshort-wchar
c662432e 713C ObjC C++ ObjC++ Optimization
5a170a05 714Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fef3106c 715
fef3106c
NB
716fsigned-bitfields
717C ObjC C++ ObjC++
5a170a05 718When \"signed\" or \"unsigned\" is not given make the bitfield signed
fef3106c
NB
719
720fsigned-char
721C ObjC C++ ObjC++
5a170a05 722Make \"char\" signed by default
fef3106c
NB
723
724fsquangle
725C++ ObjC++
726
727fstats
728C++ ObjC++
bae92bf3 729Display statistics accumulated during compilation
fef3106c
NB
730
731fstrict-prototype
732C++ ObjC++
733
734ftabstop=
7b086b11 735C ObjC C++ ObjC++ Joined RejectNegative UInteger
72de27ea 736-ftabstop=<number> Distance between tab stops for column reporting
fef3106c
NB
737
738ftemplate-depth-
c22cacf3 739C++ ObjC++ Joined RejectNegative UInteger
bae92bf3 740-ftemplate-depth-<number> Specify maximum template instantiation depth
fef3106c
NB
741
742fthis-is-variable
743C++ ObjC++
744
40aac948 745fthreadsafe-statics
c662432e 746C++ ObjC++ Optimization
c85ce869 747-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
40aac948 748
fef3106c
NB
749funsigned-bitfields
750C ObjC C++ ObjC++
5a170a05 751When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
fef3106c
NB
752
753funsigned-char
754C ObjC C++ ObjC++
5a170a05 755Make \"char\" unsigned by default
fef3106c
NB
756
757fuse-cxa-atexit
758C++ ObjC++
bae92bf3 759Use __cxa_atexit to register destructors
fef3106c 760
c7b5e395
GK
761fuse-cxa-get-exception-ptr
762C++ ObjC++
763Use __cxa_get_exception_ptr in exception handling
764
d7afec4b 765fvisibility-inlines-hidden
d0b07283 766C++ ObjC++
d7afec4b
ND
767Marks all inlined methods as having hidden visibility
768
ddbfd28d
GK
769fvisibility-ms-compat
770C++ ObjC++ Var(flag_visibility_ms_compat)
771Changes visibility to match Microsoft Visual Studio by default
772
fef3106c
NB
773fvtable-gc
774C++ ObjC++
bae92bf3 775Discard unused virtual functions
fef3106c
NB
776
777fvtable-thunks
778C++ ObjC++
bae92bf3 779Implement vtables using thunks
fef3106c
NB
780
781fweak
782C++ ObjC++
bae92bf3 783Emit common-like symbols as weak symbols
fef3106c 784
e6cc3a24
ZW
785fwide-exec-charset=
786C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 787-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
e6cc3a24 788
b20d9f0c
AO
789fworking-directory
790C ObjC C++ ObjC++
791Generate a #line directive pointing at the current working directory
792
fef3106c
NB
793fxref
794C++ ObjC++
bae92bf3 795Emit cross referencing information
fef3106c 796
264fa2db
ZL
797fzero-link
798ObjC ObjC++
799Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
800
fef3106c
NB
801gen-decls
802ObjC ObjC++
f2ac9964 803Dump declarations to a .decl file
fef3106c 804
39ef6592
LC
805femit-struct-debug-baseonly
806C ObjC C++ ObjC++
807-femit-struct-debug-baseonly Aggressive reduced debug info for structs
808
809femit-struct-debug-reduced
810C ObjC C++ ObjC++
811-femit-struct-debug-reduced Conservative reduced debug info for structs
812
813femit-struct-debug-detailed=
814C ObjC C++ ObjC++ Joined
815-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs
816
fef3106c
NB
817idirafter
818C ObjC C++ ObjC++ Joined Separate
72de27ea 819-idirafter <dir> Add <dir> to the end of the system include path
fef3106c
NB
820
821imacros
822C ObjC C++ ObjC++ Joined Separate
72de27ea 823-imacros <file> Accept definition of macros in <file>
fef3106c 824
2b6dd222
JM
825imultilib
826C ObjC C++ ObjC++ Joined Separate
827-imultilib <dir> Set <dir> to be the multilib include subdirectory
828
fef3106c
NB
829include
830C ObjC C++ ObjC++ Joined Separate
72de27ea 831-include <file> Include the contents of <file> before other files
fef3106c
NB
832
833iprefix
834C ObjC C++ ObjC++ Joined Separate
72de27ea 835-iprefix <path> Specify <path> as a prefix for next two options
fef3106c
NB
836
837isysroot
838C ObjC C++ ObjC++ Joined Separate
72de27ea 839-isysroot <dir> Set <dir> to be the system root directory
fef3106c
NB
840
841isystem
842C ObjC C++ ObjC++ Joined Separate
72de27ea 843-isystem <dir> Add <dir> to the start of the system include path
fef3106c 844
4bed3787
MS
845iquote
846C ObjC C++ ObjC++ Joined Separate
847-iquote <dir> Add <dir> to the end of the quote include path
848
fef3106c
NB
849iwithprefix
850C ObjC C++ ObjC++ Joined Separate
72de27ea 851-iwithprefix <dir> Add <dir> to the end of the system include path
fef3106c
NB
852
853iwithprefixbefore
854C ObjC C++ ObjC++ Joined Separate
72de27ea 855-iwithprefixbefore <dir> Add <dir> to the end of the main include path
fef3106c
NB
856
857lang-asm
f2ac9964 858C Undocumented
fef3106c 859
a67ec6ab
FXC
860lang-fortran
861C Undocumented
862
fef3106c 863lang-objc
f2ac9964 864C ObjC C++ ObjC++ Undocumented
fef3106c
NB
865
866nostdinc
867C ObjC C++ ObjC++
72de27ea 868Do not search standard system include directories (those specified with -isystem will still be used)
fef3106c
NB
869
870nostdinc++
72de27ea
NB
871C++ ObjC++
872Do not search standard system include directories for C++
fef3106c
NB
873
874o
875C ObjC C++ ObjC++ Joined Separate
72de27ea 876; Documented in common.opt
fef3106c
NB
877
878pedantic
879C ObjC C++ ObjC++
72de27ea 880; Documented in common.opt
fef3106c
NB
881
882pedantic-errors
883C ObjC C++ ObjC++
72de27ea 884; Documented in common.opt
fef3106c
NB
885
886print-objc-runtime-info
887ObjC ObjC++
f2ac9964 888Generate C header of platform-specific features
fef3106c 889
3fd30b88
GK
890print-pch-checksum
891C ObjC C++ ObjC++
c85ce869 892Print a checksum of the executable for PCH validity checking, and stop
3fd30b88 893
fef3106c
NB
894remap
895C ObjC C++ ObjC++
72de27ea 896Remap file names when including files
fef3106c
NB
897
898std=c++98
899C++ ObjC++
72de27ea 900Conform to the ISO 1998 C++ standard
fef3106c 901
966541e3
DG
902std=c++0x
903C++ ObjC++
904Conform to the ISO 1998 C++ standard, with extensions that are likely to
905become a part of the upcoming ISO C++ standard, dubbed C++0x. Note that the
906extensions enabled by this mode are experimental and may be removed in
907future releases of GCC.
908
fef3106c
NB
909std=c89
910C ObjC
72de27ea 911Conform to the ISO 1990 C standard
fef3106c
NB
912
913std=c99
914C ObjC
72de27ea 915Conform to the ISO 1999 C standard
fef3106c
NB
916
917std=c9x
918C ObjC
72de27ea 919Deprecated in favor of -std=c99
fef3106c
NB
920
921std=gnu++98
922C++ ObjC++
72de27ea 923Conform to the ISO 1998 C++ standard with GNU extensions
fef3106c 924
966541e3
DG
925std=gnu++0x
926C++ ObjC++
927Conform to the ISO 1998 C++ standard, with GNU extensions and
928extensions that are likely to become a part of the upcoming ISO C++
929standard, dubbed C++0x. Note that the extensions enabled by this mode
930are experimental and may be removed in future releases of GCC.
931
fef3106c
NB
932std=gnu89
933C ObjC
72de27ea 934Conform to the ISO 1990 C standard with GNU extensions
fef3106c
NB
935
936std=gnu99
937C ObjC
72de27ea 938Conform to the ISO 1999 C standard with GNU extensions
fef3106c
NB
939
940std=gnu9x
941C ObjC
72de27ea 942Deprecated in favor of -std=gnu99
fef3106c
NB
943
944std=iso9899:1990
945C ObjC
3a1e400e 946Conform to the ISO 1990 C standard
fef3106c
NB
947
948std=iso9899:199409
949C ObjC
72de27ea 950Conform to the ISO 1990 C standard as amended in 1994
fef3106c
NB
951
952std=iso9899:1999
953C ObjC
3a1e400e 954Conform to the ISO 1999 C standard
fef3106c
NB
955
956std=iso9899:199x
957C ObjC
3a1e400e 958Deprecated in favor of -std=iso9899:1999
fef3106c
NB
959
960traditional-cpp
961C ObjC C++ ObjC++
72de27ea 962Enable traditional preprocessing
fef3106c
NB
963
964trigraphs
965C ObjC C++ ObjC++
72de27ea 966-trigraphs Support ISO C trigraphs
fef3106c
NB
967
968undef
969C ObjC C++ ObjC++
72de27ea 970Do not predefine system-specific and GCC-specific macros
fef3106c
NB
971
972v
973C ObjC C++ ObjC++
72de27ea 974Enable verbose output
fef3106c
NB
975
976w
977C ObjC C++ ObjC++
72de27ea 978; Documented in common.opt
e11a4ae5
NB
979
980; This comment is to ensure we retain the blank line above.