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