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