]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c.opt
[multiple changes]
[thirdparty/gcc.git] / gcc / c.opt
CommitLineData
fef3106c 1; Options for the C, ObjC, C++ and ObjC++ front ends.
f2fd3821 2; Copyright (C) 2003, 2004, 2005 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.
10;
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.
15;
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)
5a170a05 154Warn about possibly confusing type conversions
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
7619c085 169C ObjC 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
fef3106c 314Woverloaded-virtual
7619c085 315C++ ObjC++ Var(warn_overloaded_virtual)
bae92bf3 316Warn about overloaded virtual function names
fef3106c
NB
317
318Wparentheses
7619c085 319C ObjC C++ ObjC++ Var(warn_parentheses)
5a170a05 320Warn about possibly missing parentheses
fef3106c
NB
321
322Wpmf-conversions
7619c085 323C++ ObjC++ Var(warn_pmf2ptr) Init(1)
bae92bf3 324Warn when converting the type of pointers to member functions
fef3106c
NB
325
326Wpointer-arith
7619c085 327C ObjC C++ ObjC++ Var(warn_pointer_arith)
5a170a05 328Warn about function pointer arithmetic
fef3106c 329
53a2494e
JM
330Wpointer-to-int-cast
331C ObjC Var(warn_pointer_to_int_cast) Init(1)
332Warn when a pointer is cast to an integer of a different size
333
b9b8dde3
DD
334Wpragmas
335C ObjC C++ ObjC++ Var(warn_pragmas) Init(1)
336Warn about misuses of pragmas
337
fef3106c 338Wprotocol
7619c085 339ObjC ObjC++ Var(warn_protocol) Init(1)
f2ac9964 340Warn if inherited methods are unimplemented
fef3106c
NB
341
342Wredundant-decls
7619c085 343C ObjC C++ ObjC++ Var(warn_redundant_decls)
5a170a05 344Warn about multiple declarations of the same object
fef3106c
NB
345
346Wreorder
7619c085 347C++ ObjC++ Var(warn_reorder)
bae92bf3 348Warn when the compiler reorders code
fef3106c
NB
349
350Wreturn-type
44c21c7f 351C ObjC C++ ObjC++ Var(warn_return_type)
bae92bf3 352Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
fef3106c
NB
353
354Wselector
7619c085 355ObjC ObjC++ Var(warn_selector)
f2ac9964 356Warn if a selector has multiple methods
fef3106c
NB
357
358Wsequence-point
3ff0c9ed 359C ObjC C++ ObjC++ Var(warn_sequence_point)
5a170a05 360Warn about possible violations of sequence point rules
fef3106c
NB
361
362Wsign-compare
7619c085 363C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
5a170a05 364Warn about signed-unsigned comparisons
fef3106c
NB
365
366Wsign-promo
7619c085 367C++ ObjC++ Var(warn_sign_promo)
bae92bf3 368Warn when overload promotes from unsigned to signed
fef3106c 369
b2f97e4a
MM
370Wstrict-null-sentinel
371C++ ObjC++
372Warn about uncasted NULL used as sentinel
373
fef3106c 374Wstrict-prototypes
7619c085 375C ObjC Var(warn_strict_prototypes)
5a170a05 376Warn about unprototyped function declarations
fef3106c 377
6e955430
ZL
378Wstrict-selector-match
379ObjC ObjC++ Var(warn_strict_selector_match)
380Warn if type signatures of candidate methods do not match exactly
381
fef3106c 382Wsynth
7619c085 383C++ ObjC++ Var(warn_synth)
bae92bf3 384Warn when synthesis behavior differs from Cfront
fef3106c
NB
385
386Wsystem-headers
387C ObjC C++ ObjC++
72de27ea 388Do not suppress warnings from system headers
fef3106c
NB
389
390Wtraditional
7619c085 391C ObjC Var(warn_traditional)
72de27ea 392Warn about features not present in traditional C
fef3106c
NB
393
394Wtrigraphs
395C ObjC C++ ObjC++
72de27ea 396Warn if trigraphs are encountered that might affect the meaning of the program
fef3106c
NB
397
398Wundeclared-selector
7619c085
DD
399ObjC ObjC++ Var(warn_undeclared_selector)
400Warn about @selector()s without previously declared methods
fef3106c
NB
401
402Wundef
403C ObjC C++ ObjC++
72de27ea 404Warn if an undefined macro is used in an #if directive
fef3106c
NB
405
406Wunknown-pragmas
407C ObjC C++ ObjC++
5a170a05 408Warn about unrecognized pragmas
fef3106c
NB
409
410Wunused-macros
411C ObjC C++ ObjC++
72de27ea 412Warn about macros defined in the main file that are not used
fef3106c 413
e5b79219
RH
414Wvariadic-macros
415C ObjC C++ ObjC++
416Do not warn about using variadic macros when -pedantic
417
fef3106c
NB
418Wwrite-strings
419C ObjC C++ ObjC++
5a170a05 420Give strings the type \"array of char\"
fef3106c 421
f2fd3821
AJ
422Wpointer-sign
423C ObjC Var(warn_pointer_sign) Init(1)
c85ce869 424Warn when a pointer differs in signedness in an assignment
f2fd3821 425
fef3106c
NB
426ansi
427C ObjC C++ ObjC++
c85ce869 428A synonym for -std=c89 (for C) or -std=c++98 (for C++)
fef3106c
NB
429
430d
431C ObjC C++ ObjC++ Joined
72de27ea 432; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 433
fef3106c
NB
434faccess-control
435C++ ObjC++
bae92bf3 436Enforce class member access control semantics
fef3106c
NB
437
438fall-virtual
439C++ ObjC++
440
441falt-external-templates
442C++ ObjC++
bae92bf3 443Change when template instances are emitted
fef3106c
NB
444
445fasm
446C ObjC C++ ObjC++
5a170a05 447Recognize the \"asm\" keyword
fef3106c
NB
448
449fbuiltin
450C ObjC C++ ObjC++
5a170a05 451Recognize built-in functions
fef3106c
NB
452
453fbuiltin-
454C ObjC C++ ObjC++ Joined
455
456fcheck-new
457C++ ObjC++
bae92bf3 458Check the return value of new
fef3106c
NB
459
460fcond-mismatch
461C ObjC C++ ObjC++
5a170a05 462Allow the arguments of the '?' operator to have different types
fef3106c
NB
463
464fconserve-space
465C++ ObjC++
bae92bf3 466Reduce the size of object files
fef3106c
NB
467
468fconst-strings
469C++ ObjC++
bae92bf3 470Make string literals \"const char[]\" not \"char[]\"
fef3106c
NB
471
472fconstant-string-class=
473ObjC ObjC++ Joined
f2ac9964 474-fconst-string-class=<name> Use class <name> for constant strings
fef3106c
NB
475
476fdefault-inline
477C++ ObjC++
bae92bf3 478Inline member functions by default
fef3106c
NB
479
480fdollars-in-identifiers
481C ObjC C++ ObjC++
72de27ea 482Permit '$' as an identifier character
fef3106c 483
fef3106c
NB
484felide-constructors
485C++ ObjC++
486
487fenforce-eh-specs
488C++ ObjC++
bae92bf3 489Generate code to check exception specifications
fef3106c
NB
490
491fenum-int-equiv
492C++ ObjC++
493
e6cc3a24
ZW
494fexec-charset=
495C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 496-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
e6cc3a24 497
af15a2fe
JM
498fextended-identifiers
499C ObjC C++ ObjC++
500Permit universal character names (\\u and \\U) in identifiers
501
16dd5cfe
EC
502finput-charset=
503C ObjC C++ ObjC++ Joined RejectNegative
c85ce869 504-finput-charset=<cset> Specify the default character set for source files
16dd5cfe
EC
505
506
fef3106c
NB
507fexternal-templates
508C++ ObjC++
509
510ffixed-form
511C ObjC
512
71157977
DE
513ffixed-line-length-none
514C ObjC
515
fef3106c
NB
516ffixed-line-length-
517C ObjC Joined
518
519ffor-scope
520C++ ObjC++
bae92bf3 521Scope of for-init-statement variables is local to the loop
fef3106c
NB
522
523ffreestanding
524C ObjC
5a170a05 525Do not assume that standard C libraries and \"main\" exist
fef3106c
NB
526
527fgnu-keywords
528C++ ObjC++
bae92bf3 529Recognize GNU-defined keywords
fef3106c
NB
530
531fgnu-runtime
532ObjC ObjC++
f2ac9964 533Generate code for GNU runtime environment
fef3106c
NB
534
535fguiding-decls
536C++ ObjC++
537
538fhandle-exceptions
539C++ ObjC++
540
541fhonor-std
542C++ ObjC++
543
544fhosted
545C ObjC
5a170a05 546Assume normal C execution environment
fef3106c
NB
547
548fhuge-objects
549C++ ObjC++
bae92bf3 550Enable support for huge objects
fef3106c
NB
551
552fimplement-inlines
553C++ ObjC++
bae92bf3 554Export functions even if they can be inlined
fef3106c
NB
555
556fimplicit-inline-templates
557C++ ObjC++
bae92bf3 558Emit implicit instantiations of inline templates
fef3106c
NB
559
560fimplicit-templates
561C++ ObjC++
bae92bf3 562Emit implicit instantiations of templates
fef3106c 563
d63d5d0c
ILT
564ffriend-injection
565C++ Var(flag_friend_injection)
566Inject friend functions into enclosing namespace
567
fef3106c
NB
568flabels-ok
569C++ ObjC++
570
571fms-extensions
572C ObjC C++ ObjC++
bae92bf3 573Don't warn about uses of Microsoft extensions
fef3106c
NB
574
575fname-mangling-version-
576C++ ObjC++ Joined
577
578fnew-abi
579C++ ObjC++
580
581fnext-runtime
582ObjC ObjC++
264fa2db
ZL
583Generate code for NeXT (Apple Mac OS X) runtime environment
584
585fnil-receivers
586ObjC ObjC++
587Assume that receivers of Objective-C messages may be nil
fef3106c
NB
588
589fnonansi-builtins
590C++ ObjC++
591
592fnonnull-objects
593C++ ObjC++
594
6e955430
ZL
595; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
596; to initialize any non-POD ivars in Objective-C++ classes.
597fobjc-call-cxx-cdtors
598ObjC++ Var(flag_objc_call_cxx_cdtors)
599Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed
600
601fobjc-direct-dispatch
602ObjC ObjC++ Var(flag_objc_direct_dispatch)
603Allow fast jumps to the message dispatcher
604
605; Nonzero means that we will allow new ObjC exception syntax (@throw,
606; @try, etc.) in source code.
264fa2db 607fobjc-exceptions
6e955430 608ObjC ObjC++ Var(flag_objc_exceptions)
264fa2db
ZL
609Enable Objective-C exception and synchronization syntax
610
6e955430
ZL
611fobjc-gc
612ObjC ObjC++ Var(flag_objc_gc)
613Enable garbage collection (GC) in Objective-C/Objective-C++ programs
614
615; Nonzero means that we generate NeXT setjmp based exceptions.
093c7153 616fobjc-sjlj-exceptions
6e955430 617ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
093c7153
RH
618Enable Objective-C setjmp exception handling runtime
619
953ff289
DN
620fopenmp
621C ObjC C++ ObjC++ Var(flag_openmp)
622Enable OpenMP
623
fef3106c
NB
624foperator-names
625C++ ObjC++
bae92bf3 626Recognize C++ kewords like \"compl\" and \"xor\"
fef3106c
NB
627
628foptional-diags
629C++ ObjC++
bae92bf3 630Enable optional diagnostics
fef3106c
NB
631
632fpch-deps
633C ObjC C++ ObjC++
634
c0d578e6
GK
635fpch-preprocess
636C ObjC C++ ObjC++
637Look for and use PCH files even when preprocessing
638
fef3106c
NB
639fpermissive
640C++ ObjC++
bae92bf3 641Downgrade conformance errors to warnings
fef3106c
NB
642
643fpreprocessed
644C ObjC C++ ObjC++
72de27ea 645Treat the input file as already preprocessed
fef3106c 646
264fa2db
ZL
647freplace-objc-classes
648ObjC ObjC++
649Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
650
fef3106c
NB
651frepo
652C++ ObjC++
bae92bf3 653Enable automatic template instantiation
fef3106c
NB
654
655frtti
656C++ ObjC++
bae92bf3 657Generate run time type descriptor information
fef3106c
NB
658
659fshort-double
660C ObjC C++ ObjC++
5a170a05 661Use the same size for double as for float
fef3106c
NB
662
663fshort-enums
664C ObjC C++ ObjC++
5a170a05 665Use the narrowest integer type possible for enumeration types
fef3106c
NB
666
667fshort-wchar
668C ObjC C++ ObjC++
5a170a05 669Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fef3106c 670
fef3106c
NB
671fsigned-bitfields
672C ObjC C++ ObjC++
5a170a05 673When \"signed\" or \"unsigned\" is not given make the bitfield signed
fef3106c
NB
674
675fsigned-char
676C ObjC C++ ObjC++
5a170a05 677Make \"char\" signed by default
fef3106c
NB
678
679fsquangle
680C++ ObjC++
681
682fstats
683C++ ObjC++
bae92bf3 684Display statistics accumulated during compilation
fef3106c
NB
685
686fstrict-prototype
687C++ ObjC++
688
689ftabstop=
7b086b11 690C ObjC C++ ObjC++ Joined RejectNegative UInteger
72de27ea 691-ftabstop=<number> Distance between tab stops for column reporting
fef3106c
NB
692
693ftemplate-depth-
7b086b11 694C++ ObjC++ Joined RejectNegative UInteger
bae92bf3 695-ftemplate-depth-<number> Specify maximum template instantiation depth
fef3106c
NB
696
697fthis-is-variable
698C++ ObjC++
699
40aac948
JM
700fthreadsafe-statics
701C++ ObjC++
c85ce869 702-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
40aac948 703
fef3106c
NB
704funsigned-bitfields
705C ObjC C++ ObjC++
5a170a05 706When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
fef3106c
NB
707
708funsigned-char
709C ObjC C++ ObjC++
5a170a05 710Make \"char\" unsigned by default
fef3106c
NB
711
712fuse-cxa-atexit
713C++ ObjC++
bae92bf3 714Use __cxa_atexit to register destructors
fef3106c 715
d7afec4b 716fvisibility-inlines-hidden
d0b07283 717C++ ObjC++
d7afec4b
ND
718Marks all inlined methods as having hidden visibility
719
fef3106c
NB
720fvtable-gc
721C++ ObjC++
bae92bf3 722Discard unused virtual functions
fef3106c
NB
723
724fvtable-thunks
725C++ ObjC++
bae92bf3 726Implement vtables using thunks
fef3106c
NB
727
728fweak
729C++ ObjC++
bae92bf3 730Emit common-like symbols as weak symbols
fef3106c 731
e6cc3a24
ZW
732fwide-exec-charset=
733C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 734-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
e6cc3a24 735
b20d9f0c
AO
736fworking-directory
737C ObjC C++ ObjC++
738Generate a #line directive pointing at the current working directory
739
fef3106c
NB
740fxref
741C++ ObjC++
bae92bf3 742Emit cross referencing information
fef3106c 743
264fa2db
ZL
744fzero-link
745ObjC ObjC++
746Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
747
fef3106c
NB
748gen-decls
749ObjC ObjC++
f2ac9964 750Dump declarations to a .decl file
fef3106c
NB
751
752idirafter
753C ObjC C++ ObjC++ Joined Separate
72de27ea 754-idirafter <dir> Add <dir> to the end of the system include path
fef3106c
NB
755
756imacros
757C ObjC C++ ObjC++ Joined Separate
72de27ea 758-imacros <file> Accept definition of macros in <file>
fef3106c
NB
759
760include
761C ObjC C++ ObjC++ Joined Separate
72de27ea 762-include <file> Include the contents of <file> before other files
fef3106c
NB
763
764iprefix
765C ObjC C++ ObjC++ Joined Separate
72de27ea 766-iprefix <path> Specify <path> as a prefix for next two options
fef3106c
NB
767
768isysroot
769C ObjC C++ ObjC++ Joined Separate
72de27ea 770-isysroot <dir> Set <dir> to be the system root directory
fef3106c
NB
771
772isystem
773C ObjC C++ ObjC++ Joined Separate
72de27ea 774-isystem <dir> Add <dir> to the start of the system include path
fef3106c 775
4bed3787
MS
776iquote
777C ObjC C++ ObjC++ Joined Separate
778-iquote <dir> Add <dir> to the end of the quote include path
779
fef3106c
NB
780iwithprefix
781C ObjC C++ ObjC++ Joined Separate
72de27ea 782-iwithprefix <dir> Add <dir> to the end of the system include path
fef3106c
NB
783
784iwithprefixbefore
785C ObjC C++ ObjC++ Joined Separate
72de27ea 786-iwithprefixbefore <dir> Add <dir> to the end of the main include path
fef3106c
NB
787
788lang-asm
f2ac9964 789C Undocumented
fef3106c 790
a67ec6ab
FXC
791lang-fortran
792C Undocumented
793
fef3106c 794lang-objc
f2ac9964 795C ObjC C++ ObjC++ Undocumented
fef3106c
NB
796
797nostdinc
798C ObjC C++ ObjC++
72de27ea 799Do not search standard system include directories (those specified with -isystem will still be used)
fef3106c
NB
800
801nostdinc++
72de27ea
NB
802C++ ObjC++
803Do not search standard system include directories for C++
fef3106c
NB
804
805o
806C ObjC C++ ObjC++ Joined Separate
72de27ea 807; Documented in common.opt
fef3106c
NB
808
809pedantic
810C ObjC C++ ObjC++
72de27ea 811; Documented in common.opt
fef3106c
NB
812
813pedantic-errors
814C ObjC C++ ObjC++
72de27ea 815; Documented in common.opt
fef3106c
NB
816
817print-objc-runtime-info
818ObjC ObjC++
f2ac9964 819Generate C header of platform-specific features
fef3106c 820
3fd30b88
GK
821print-pch-checksum
822C ObjC C++ ObjC++
c85ce869 823Print a checksum of the executable for PCH validity checking, and stop
3fd30b88 824
fef3106c
NB
825remap
826C ObjC C++ ObjC++
72de27ea 827Remap file names when including files
fef3106c
NB
828
829std=c++98
830C++ ObjC++
72de27ea 831Conform to the ISO 1998 C++ standard
fef3106c
NB
832
833std=c89
834C ObjC
72de27ea 835Conform to the ISO 1990 C standard
fef3106c
NB
836
837std=c99
838C ObjC
72de27ea 839Conform to the ISO 1999 C standard
fef3106c
NB
840
841std=c9x
842C ObjC
72de27ea 843Deprecated in favor of -std=c99
fef3106c
NB
844
845std=gnu++98
846C++ ObjC++
72de27ea 847Conform to the ISO 1998 C++ standard with GNU extensions
fef3106c
NB
848
849std=gnu89
850C ObjC
72de27ea 851Conform to the ISO 1990 C standard with GNU extensions
fef3106c
NB
852
853std=gnu99
854C ObjC
72de27ea 855Conform to the ISO 1999 C standard with GNU extensions
fef3106c
NB
856
857std=gnu9x
858C ObjC
72de27ea 859Deprecated in favor of -std=gnu99
fef3106c
NB
860
861std=iso9899:1990
862C ObjC
3a1e400e 863Conform to the ISO 1990 C standard
fef3106c
NB
864
865std=iso9899:199409
866C ObjC
72de27ea 867Conform to the ISO 1990 C standard as amended in 1994
fef3106c
NB
868
869std=iso9899:1999
870C ObjC
3a1e400e 871Conform to the ISO 1999 C standard
fef3106c
NB
872
873std=iso9899:199x
874C ObjC
3a1e400e 875Deprecated in favor of -std=iso9899:1999
fef3106c
NB
876
877traditional-cpp
878C ObjC C++ ObjC++
72de27ea 879Enable traditional preprocessing
fef3106c
NB
880
881trigraphs
882C ObjC C++ ObjC++
72de27ea 883-trigraphs Support ISO C trigraphs
fef3106c
NB
884
885undef
886C ObjC C++ ObjC++
72de27ea 887Do not predefine system-specific and GCC-specific macros
fef3106c
NB
888
889v
890C ObjC C++ ObjC++
72de27ea 891Enable verbose output
fef3106c
NB
892
893w
894C ObjC C++ ObjC++
72de27ea 895; Documented in common.opt
e11a4ae5
NB
896
897; This comment is to ensure we retain the blank line above.