]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c.opt
basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
[thirdparty/gcc.git] / gcc / c.opt
CommitLineData
fef3106c 1; Options for the C, ObjC, C++ and ObjC++ front ends.
ca2b05ba 2; Copyright (C) 2003, 2004 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
18; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19; 02111-1307, USA.
20
21
22; This file is processed by the script opts.sh. It is a database of
23; command line options, with each record separated by a blank line,
24; and each field appearing on its own line. The first field is the
25; command-line switch with the leading "-" removed. All options
26; beginning with "f" or "W" are implicitly assumed to take a "no-"
c83857ff
NB
27; form; this form should not be listed. If you do not want this
28; negative form and you want it to be automatically rejected, add
29; RejectNegative to the second field.
fef3106c
NB
30
31; The second field is a space-separated list of which parts of the
be43ab4e
NB
32; compiler recognize the switch, as declared by "Language" entries.
33; If the switch takes an argument, then you should also specify
34; "Joined" and/or "Separate" to indicate where the argument can
7b086b11
NB
35; appear. If a Joined argument can legitimately be omitted, specify
36; "JoinedOrMissing" instead of "Joined". If the argument to a switch
37; is a non-negative integer, you can specify "UInteger" and the switch
38; decoder will convert the argument for you, or complain to the user
50431bc4
ZD
39; if the argument is invalid. "Var(name,set)" creates an integer
40; variable "name". The variable is declared and initialized to value
41; given by "Init(value)" (or zero if this property is not defined).
42; When the option is passed to compiler, this variable is set to "set"
43; if value passed through the flag is nonzero, !"set" if value is zero,
44; or to value if "set" is omitted. If "VarExists" is specified, the
45; declaration for the variable is not created. If "Report" is specified,
46; the flag is output with -fverbose-asm.
fef3106c 47
cf03fd63
NB
48; The third field is the help text to output with --help. This is
49; automatically line-wrapped on output. Normally the switch is output
50; automatically, with the help text on the right hand side of the
51; output. However, if the help text contains a tab character, the
52; text to the left of the tab is output instead of the switch, and the
53; text to its right forms the help. This is useful for elaborating on
f2ac9964
NB
54; what type of argument a switch takes, for example. If the second
55; field contains "Undocumented" then nothing is output with --help.
56; Only do this with good reason like the switch being internal between
57; the driver and the front end - it is not an excuse to leave a switch
58; undocumented.
cf03fd63 59
fef3106c
NB
60; Comments can appear on their own line anwhere in the file, preceded
61; by a semicolon. Whitespace is permitted before the semicolon.
62
63; For each switch XXX below, an enumeration constant is created by the
64; script opts.sh spelt OPT_XXX, but with all non-alphanumeric
65; characters replaced with an underscore.
66
67; Please try to keep this file in ASCII collating order.
68
be43ab4e
NB
69Language
70C
71
72Language
73ObjC
74
75Language
76C++
77
78Language
79ObjC++
80
fef3106c
NB
81-output-pch=
82C ObjC C++ ObjC++ Joined Separate
83
84A
85C ObjC C++ ObjC++ Joined Separate
72de27ea 86-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>
fef3106c
NB
87
88C
89C ObjC C++ ObjC++
72de27ea 90Do not discard comments
fef3106c
NB
91
92CC
93C ObjC C++ ObjC++
72de27ea 94Do not discard comments in macro expansions
fef3106c
NB
95
96D
97C ObjC C++ ObjC++ Joined Separate
72de27ea 98-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1
fef3106c
NB
99
100E
f2ac9964 101C ObjC C++ ObjC++ Undocumented
fef3106c 102
94d1613b
MS
103F
104C ObjC C++ ObjC++ Joined Separate
105-F <dir> Add <dir> to the end of the main framework include path
106
fef3106c
NB
107H
108C ObjC C++ ObjC++
72de27ea 109Print the name of header files as they are used
fef3106c
NB
110
111I
112C ObjC C++ ObjC++ Joined Separate
4bed3787 113-I <dir> Add <dir> to the end of the main include path
fef3106c
NB
114
115M
116C ObjC C++ ObjC++
72de27ea 117Generate make dependencies
fef3106c
NB
118
119MD
120C ObjC C++ ObjC++ Separate
72de27ea 121Generate make dependencies and compile
fef3106c
NB
122
123MF
124C ObjC C++ ObjC++ Joined Separate
72de27ea 125-MF <file> Write dependency output to the given file
fef3106c
NB
126
127MG
128C ObjC C++ ObjC++
72de27ea 129Treat missing header files as generated files
fef3106c
NB
130
131MM
132C ObjC C++ ObjC++
72de27ea 133Like -M but ignore system header files
fef3106c
NB
134
135MMD
136C ObjC C++ ObjC++ Separate
72de27ea 137Like -MD but ignore system header files
fef3106c
NB
138
139MP
140C ObjC C++ ObjC++
72de27ea 141Generate phony targets for all headers
fef3106c
NB
142
143MQ
144C ObjC C++ ObjC++ Joined Separate
72de27ea 145-MQ <target> Add a MAKE-quoted target
fef3106c
NB
146
147MT
148C ObjC C++ ObjC++ Joined Separate
72de27ea 149-MT <target> Add an unquoted target
fef3106c
NB
150
151P
152C ObjC C++ ObjC++
72de27ea 153Do not generate #line directives
fef3106c
NB
154
155U
156C ObjC C++ ObjC++ Joined Separate
72de27ea 157-U<macro> Undefine <macro>
fef3106c
NB
158
159Wabi
7619c085
DD
160C++ ObjC++ Var(warn_abi)
161Warn about things that will change when compiling with an ABI-compliant compiler
fef3106c
NB
162
163Wall
164C ObjC C++ ObjC++
5a170a05 165Enable most warning messages
fef3106c
NB
166
167Wbad-function-cast
7619c085 168C ObjC Var(warn_bad_function_cast)
5a170a05 169Warn about casting functions to incompatible types
fef3106c
NB
170
171Wcast-qual
7619c085 172C ObjC C++ ObjC++ Var(warn_cast_qual)
5a170a05 173Warn about casts which discard qualifiers
fef3106c
NB
174
175Wchar-subscripts
7619c085 176C ObjC C++ ObjC++ Var(warn_char_subscripts)
5a170a05 177Warn about subscripts whose type is \"char\"
fef3106c
NB
178
179Wcomment
180C ObjC C++ ObjC++
72de27ea 181Warn about possibly nested block comments, and C++ comments spanning more than one physical line
fef3106c
NB
182
183Wcomments
184C ObjC C++ ObjC++
72de27ea 185Synonym for -Wcomment
fef3106c
NB
186
187Wconversion
7619c085 188C ObjC C++ ObjC++ Var(warn_conversion)
5a170a05 189Warn about possibly confusing type conversions
fef3106c
NB
190
191Wctor-dtor-privacy
7619c085 192C++ ObjC++ Var(warn_ctor_dtor_privacy)
bae92bf3 193Warn when all constructors and destructors are private
fef3106c 194
85617eba 195Wdeclaration-after-statement
7619c085 196C ObjC Var(warn_declaration_after_statement)
85617eba
HPN
197Warn when a declaration is found after a statement
198
fef3106c 199Wdeprecated
7619c085 200C++ ObjC++ Var(warn_deprecated) Init(1)
bae92bf3 201Warn about deprecated compiler features
fef3106c
NB
202
203Wdiv-by-zero
7619c085 204C ObjC Var(warn_div_by_zero) Init(1)
5a170a05 205Warn about compile-time integer division by zero
fef3106c
NB
206
207Weffc++
7619c085 208C++ ObjC++ Var(warn_ecpp)
bae92bf3 209Warn about violations of Effective C++ style rules
fef3106c
NB
210
211Wendif-labels
212C ObjC C++ ObjC++
72de27ea 213Warn about stray tokens after #elif and #endif
fef3106c
NB
214
215Werror
216C ObjC C++ ObjC++
72de27ea 217; Documented in common.opt
fef3106c
NB
218
219Werror-implicit-function-declaration
c83857ff 220C ObjC RejectNegative
5a170a05 221Make implicit function declarations an error
fef3106c
NB
222
223Wfloat-equal
7619c085 224C ObjC C++ ObjC++ Var(warn_float_equal)
5a170a05 225Warn if testing floating point numbers for equality
fef3106c
NB
226
227Wformat
228C ObjC C++ ObjC++
5a170a05 229Warn about printf/scanf/strftime/strfmon format string anomalies
fef3106c
NB
230
231Wformat-extra-args
7619c085 232C ObjC C++ ObjC++ Var(warn_format_extra_args)
5a170a05 233Warn if passing too many arguments to a function for its format string
fef3106c
NB
234
235Wformat-nonliteral
7619c085 236C ObjC C++ ObjC++ Var(warn_format_nonliteral)
5a170a05 237Warn about format strings that are not literals
fef3106c
NB
238
239Wformat-security
7619c085 240C ObjC C++ ObjC++ Var(warn_format_security)
5a170a05 241Warn about possible security problems with format functions
fef3106c
NB
242
243Wformat-y2k
7619c085 244C ObjC C++ ObjC++ Var(warn_format_y2k)
5a170a05 245Warn about strftime formats yielding 2-digit years
fef3106c
NB
246
247Wformat-zero-length
7619c085
DD
248C ObjC Var(warn_format_zero_length)
249Warn about zero-length formats
fef3106c
NB
250
251Wformat=
252C ObjC C++ ObjC++ Joined
253
3390f9c9 254Winit-self
7619c085 255C ObjC C++ ObjC++ Var(warn_init_self)
3390f9c9
AP
256Warn about variables which are initialized to themselves.
257
fef3106c
NB
258Wimplicit
259C ObjC C++ ObjC++
260
261Wimplicit-function-declaration
7619c085 262C ObjC Var(mesg_implicit_function_declaration) Init(-1)
5a170a05 263Warn about implicit function declarations
fef3106c
NB
264
265Wimplicit-int
7619c085 266C ObjC Var(warn_implicit_int)
5a170a05 267Warn when a declaration does not specify a type
fef3106c
NB
268
269Wimport
270C ObjC C++ ObjC++
bf42e45b 271Deprecated. This switch has no effect.
fef3106c
NB
272
273Winvalid-offsetof
7619c085 274C++ ObjC++ Var(warn_invalid_offsetof) Init(1)
bae92bf3 275Warn about invalid uses of the \"offsetof\" macro
fef3106c
NB
276
277Winvalid-pch
278C ObjC C++ ObjC++
5a170a05 279Warn about PCH files that are found but not used
fef3106c
NB
280
281Wlong-long
7619c085 282C ObjC C++ ObjC++ Var(warn_long_long) Init(1)
5a170a05 283Do not warn about using \"long long\" when -pedantic
fef3106c
NB
284
285Wmain
286C ObjC
5a170a05 287Warn about suspicious declarations of \"main\"
fef3106c
NB
288
289Wmissing-braces
7619c085 290C ObjC C++ ObjC++ Var(warn_missing_braces)
5a170a05 291Warn about possibly missing braces around initializers
fef3106c
NB
292
293Wmissing-declarations
7619c085 294C ObjC Var(warn_missing_declarations)
5a170a05 295Warn about global functions without previous declarations
fef3106c
NB
296
297Wmissing-format-attribute
7619c085 298C ObjC C++ ObjC++ Var(warn_missing_format_attribute)
5a170a05 299Warn about functions which might be candidates for format attributes
fef3106c 300
b02398bd
BE
301Wmissing-include-dirs
302C ObjC C++ ObjC++
303Warn about user-specified include directories that do not exist
304
fef3106c 305Wmissing-prototypes
7619c085 306C ObjC Var(warn_missing_prototypes)
5a170a05 307Warn about global functions without prototypes
fef3106c
NB
308
309Wmultichar
310C ObjC C++ ObjC++
5a170a05 311Warn about use of multi-character character constants
fef3106c
NB
312
313Wnested-externs
7619c085 314C ObjC Var(warn_nested_externs)
5a170a05 315Warn about \"extern\" declarations not at file scope
fef3106c
NB
316
317Wnon-template-friend
7619c085 318C++ ObjC++ Var(warn_nontemplate_friend) Init(1)
bae92bf3 319Warn when non-templatized friend functions are declared within a template
fef3106c
NB
320
321Wnon-virtual-dtor
7619c085 322C++ ObjC++ Var(warn_nonvdtor)
bae92bf3 323Warn about non-virtual destructors
fef3106c
NB
324
325Wnonnull
7619c085
DD
326C ObjC Var(warn_nonnull)
327Warn about NULL being passed to argument slots marked as requiring non-NULL
fef3106c
NB
328
329Wold-style-cast
7619c085 330C++ ObjC++ Var(warn_old_style_cast)
bae92bf3 331Warn if a C-style cast is used in a program
fef3106c 332
c034f121 333Wold-style-definition
7619c085 334C ObjC Var(warn_old_style_definition)
c034f121
AJ
335Warn if an old-style parameter definition is used
336
fef3106c 337Woverloaded-virtual
7619c085 338C++ ObjC++ Var(warn_overloaded_virtual)
bae92bf3 339Warn about overloaded virtual function names
fef3106c
NB
340
341Wparentheses
7619c085 342C ObjC C++ ObjC++ Var(warn_parentheses)
5a170a05 343Warn about possibly missing parentheses
fef3106c
NB
344
345Wpmf-conversions
7619c085 346C++ ObjC++ Var(warn_pmf2ptr) Init(1)
bae92bf3 347Warn when converting the type of pointers to member functions
fef3106c
NB
348
349Wpointer-arith
7619c085 350C ObjC C++ ObjC++ Var(warn_pointer_arith)
5a170a05 351Warn about function pointer arithmetic
fef3106c
NB
352
353Wprotocol
7619c085 354ObjC ObjC++ Var(warn_protocol) Init(1)
f2ac9964 355Warn if inherited methods are unimplemented
fef3106c
NB
356
357Wredundant-decls
7619c085 358C ObjC C++ ObjC++ Var(warn_redundant_decls)
5a170a05 359Warn about multiple declarations of the same object
fef3106c
NB
360
361Wreorder
7619c085 362C++ ObjC++ Var(warn_reorder)
bae92bf3 363Warn when the compiler reorders code
fef3106c
NB
364
365Wreturn-type
366C ObjC C++ ObjC++
bae92bf3 367Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
fef3106c
NB
368
369Wselector
7619c085 370ObjC ObjC++ Var(warn_selector)
f2ac9964 371Warn if a selector has multiple methods
fef3106c
NB
372
373Wsequence-point
3ff0c9ed 374C ObjC C++ ObjC++ Var(warn_sequence_point)
5a170a05 375Warn about possible violations of sequence point rules
fef3106c
NB
376
377Wsign-compare
7619c085 378C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
5a170a05 379Warn about signed-unsigned comparisons
fef3106c
NB
380
381Wsign-promo
7619c085 382C++ ObjC++ Var(warn_sign_promo)
bae92bf3 383Warn when overload promotes from unsigned to signed
fef3106c
NB
384
385Wstrict-prototypes
7619c085 386C ObjC Var(warn_strict_prototypes)
5a170a05 387Warn about unprototyped function declarations
fef3106c
NB
388
389Wsynth
7619c085 390C++ ObjC++ Var(warn_synth)
bae92bf3 391Warn when synthesis behavior differs from Cfront
fef3106c
NB
392
393Wsystem-headers
394C ObjC C++ ObjC++
72de27ea 395Do not suppress warnings from system headers
fef3106c
NB
396
397Wtraditional
7619c085 398C ObjC Var(warn_traditional)
72de27ea 399Warn about features not present in traditional C
fef3106c
NB
400
401Wtrigraphs
402C ObjC C++ ObjC++
72de27ea 403Warn if trigraphs are encountered that might affect the meaning of the program
fef3106c
NB
404
405Wundeclared-selector
7619c085
DD
406ObjC ObjC++ Var(warn_undeclared_selector)
407Warn about @selector()s without previously declared methods
fef3106c
NB
408
409Wundef
410C ObjC C++ ObjC++
72de27ea 411Warn if an undefined macro is used in an #if directive
fef3106c
NB
412
413Wunknown-pragmas
414C ObjC C++ ObjC++
5a170a05 415Warn about unrecognized pragmas
fef3106c
NB
416
417Wunused-macros
418C ObjC C++ ObjC++
72de27ea 419Warn about macros defined in the main file that are not used
fef3106c 420
e5b79219
RH
421Wvariadic-macros
422C ObjC C++ ObjC++
423Do not warn about using variadic macros when -pedantic
424
fef3106c
NB
425Wwrite-strings
426C ObjC C++ ObjC++
5a170a05 427Give strings the type \"array of char\"
fef3106c
NB
428
429ansi
430C ObjC C++ ObjC++
5a170a05 431A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead
fef3106c
NB
432
433d
434C ObjC C++ ObjC++ Joined
72de27ea 435; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
fef3106c 436
fef3106c
NB
437faccess-control
438C++ ObjC++
bae92bf3 439Enforce class member access control semantics
fef3106c
NB
440
441fall-virtual
442C++ ObjC++
443
444falt-external-templates
445C++ ObjC++
bae92bf3 446Change when template instances are emitted
fef3106c
NB
447
448fasm
449C ObjC C++ ObjC++
5a170a05 450Recognize the \"asm\" keyword
fef3106c
NB
451
452fbuiltin
453C ObjC C++ ObjC++
5a170a05 454Recognize built-in functions
fef3106c
NB
455
456fbuiltin-
457C ObjC C++ ObjC++ Joined
458
459fcheck-new
460C++ ObjC++
bae92bf3 461Check the return value of new
fef3106c
NB
462
463fcond-mismatch
464C ObjC C++ ObjC++
5a170a05 465Allow the arguments of the '?' operator to have different types
fef3106c
NB
466
467fconserve-space
468C++ ObjC++
bae92bf3 469Reduce the size of object files
fef3106c
NB
470
471fconst-strings
472C++ ObjC++
bae92bf3 473Make string literals \"const char[]\" not \"char[]\"
fef3106c
NB
474
475fconstant-string-class=
476ObjC ObjC++ Joined
f2ac9964 477-fconst-string-class=<name> Use class <name> for constant strings
fef3106c
NB
478
479fdefault-inline
480C++ ObjC++
bae92bf3 481Inline member functions by default
fef3106c
NB
482
483fdollars-in-identifiers
484C ObjC C++ ObjC++
72de27ea 485Permit '$' as an identifier character
fef3106c 486
fef3106c
NB
487felide-constructors
488C++ ObjC++
489
490fenforce-eh-specs
491C++ ObjC++
bae92bf3 492Generate code to check exception specifications
fef3106c
NB
493
494fenum-int-equiv
495C++ ObjC++
496
e6cc3a24
ZW
497fexec-charset=
498C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 499-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
e6cc3a24 500
16dd5cfe
EC
501finput-charset=
502C ObjC C++ ObjC++ Joined RejectNegative
503-finput-charset=<cset> Specify the default character set for source files.
504
505
fef3106c
NB
506fexternal-templates
507C++ ObjC++
508
509ffixed-form
510C ObjC
511
512ffixed-line-length-
513C ObjC Joined
514
515ffor-scope
516C++ ObjC++
bae92bf3 517Scope of for-init-statement variables is local to the loop
fef3106c
NB
518
519ffreestanding
520C ObjC
5a170a05 521Do not assume that standard C libraries and \"main\" exist
fef3106c
NB
522
523fgnu-keywords
524C++ ObjC++
bae92bf3 525Recognize GNU-defined keywords
fef3106c
NB
526
527fgnu-runtime
528ObjC ObjC++
f2ac9964 529Generate code for GNU runtime environment
fef3106c
NB
530
531fguiding-decls
532C++ ObjC++
533
534fhandle-exceptions
535C++ ObjC++
536
537fhonor-std
538C++ ObjC++
539
540fhosted
541C ObjC
5a170a05 542Assume normal C execution environment
fef3106c
NB
543
544fhuge-objects
545C++ ObjC++
bae92bf3 546Enable support for huge objects
fef3106c
NB
547
548fimplement-inlines
549C++ ObjC++
bae92bf3 550Export functions even if they can be inlined
fef3106c
NB
551
552fimplicit-inline-templates
553C++ ObjC++
bae92bf3 554Emit implicit instantiations of inline templates
fef3106c
NB
555
556fimplicit-templates
557C++ ObjC++
bae92bf3 558Emit implicit instantiations of templates
fef3106c
NB
559
560flabels-ok
561C++ ObjC++
562
563fms-extensions
564C ObjC C++ ObjC++
bae92bf3 565Don't warn about uses of Microsoft extensions
fef3106c
NB
566
567fname-mangling-version-
568C++ ObjC++ Joined
569
570fnew-abi
571C++ ObjC++
572
573fnext-runtime
574ObjC ObjC++
264fa2db
ZL
575Generate code for NeXT (Apple Mac OS X) runtime environment
576
577fnil-receivers
578ObjC ObjC++
579Assume that receivers of Objective-C messages may be nil
fef3106c
NB
580
581fnonansi-builtins
582C++ ObjC++
583
584fnonnull-objects
585C++ ObjC++
586
264fa2db
ZL
587fobjc-exceptions
588ObjC ObjC++
589Enable Objective-C exception and synchronization syntax
590
093c7153
RH
591fobjc-sjlj-exceptions
592ObjC ObjC++
593Enable Objective-C setjmp exception handling runtime
594
fef3106c
NB
595foperator-names
596C++ ObjC++
bae92bf3 597Recognize C++ kewords like \"compl\" and \"xor\"
fef3106c
NB
598
599foptional-diags
600C++ ObjC++
bae92bf3 601Enable optional diagnostics
fef3106c
NB
602
603fpch-deps
604C ObjC C++ ObjC++
605
c0d578e6
GK
606fpch-preprocess
607C ObjC C++ ObjC++
608Look for and use PCH files even when preprocessing
609
fef3106c
NB
610fpermissive
611C++ ObjC++
bae92bf3 612Downgrade conformance errors to warnings
fef3106c
NB
613
614fpreprocessed
615C ObjC C++ ObjC++
72de27ea 616Treat the input file as already preprocessed
fef3106c 617
264fa2db
ZL
618freplace-objc-classes
619ObjC ObjC++
620Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
621
fef3106c
NB
622frepo
623C++ ObjC++
bae92bf3 624Enable automatic template instantiation
fef3106c
NB
625
626frtti
627C++ ObjC++
bae92bf3 628Generate run time type descriptor information
fef3106c
NB
629
630fshort-double
631C ObjC C++ ObjC++
5a170a05 632Use the same size for double as for float
fef3106c
NB
633
634fshort-enums
635C ObjC C++ ObjC++
5a170a05 636Use the narrowest integer type possible for enumeration types
fef3106c
NB
637
638fshort-wchar
639C ObjC C++ ObjC++
5a170a05 640Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fef3106c
NB
641
642fshow-column
643C ObjC C++ ObjC++
644
645fsigned-bitfields
646C ObjC C++ ObjC++
5a170a05 647When \"signed\" or \"unsigned\" is not given make the bitfield signed
fef3106c
NB
648
649fsigned-char
650C ObjC C++ ObjC++
5a170a05 651Make \"char\" signed by default
fef3106c
NB
652
653fsquangle
654C++ ObjC++
655
656fstats
657C++ ObjC++
bae92bf3 658Display statistics accumulated during compilation
fef3106c
NB
659
660fstrict-prototype
661C++ ObjC++
662
663ftabstop=
7b086b11 664C ObjC C++ ObjC++ Joined RejectNegative UInteger
72de27ea 665-ftabstop=<number> Distance between tab stops for column reporting
fef3106c
NB
666
667ftemplate-depth-
7b086b11 668C++ ObjC++ Joined RejectNegative UInteger
bae92bf3 669-ftemplate-depth-<number> Specify maximum template instantiation depth
fef3106c
NB
670
671fthis-is-variable
672C++ ObjC++
673
674funsigned-bitfields
675C ObjC C++ ObjC++
5a170a05 676When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
fef3106c
NB
677
678funsigned-char
679C ObjC C++ ObjC++
5a170a05 680Make \"char\" unsigned by default
fef3106c
NB
681
682fuse-cxa-atexit
683C++ ObjC++
bae92bf3 684Use __cxa_atexit to register destructors
fef3106c
NB
685
686fvtable-gc
687C++ ObjC++
bae92bf3 688Discard unused virtual functions
fef3106c
NB
689
690fvtable-thunks
691C++ ObjC++
bae92bf3 692Implement vtables using thunks
fef3106c
NB
693
694fweak
695C++ ObjC++
bae92bf3 696Emit common-like symbols as weak symbols
fef3106c 697
e6cc3a24
ZW
698fwide-exec-charset=
699C ObjC C++ ObjC++ Joined RejectNegative
72de27ea 700-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>
e6cc3a24 701
b20d9f0c
AO
702fworking-directory
703C ObjC C++ ObjC++
704Generate a #line directive pointing at the current working directory
705
fef3106c
NB
706fxref
707C++ ObjC++
bae92bf3 708Emit cross referencing information
fef3106c 709
264fa2db
ZL
710fzero-link
711ObjC ObjC++
712Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
713
fef3106c
NB
714gen-decls
715ObjC ObjC++
f2ac9964 716Dump declarations to a .decl file
fef3106c
NB
717
718idirafter
719C ObjC C++ ObjC++ Joined Separate
72de27ea 720-idirafter <dir> Add <dir> to the end of the system include path
fef3106c
NB
721
722imacros
723C ObjC C++ ObjC++ Joined Separate
72de27ea 724-imacros <file> Accept definition of macros in <file>
fef3106c
NB
725
726include
727C ObjC C++ ObjC++ Joined Separate
72de27ea 728-include <file> Include the contents of <file> before other files
fef3106c
NB
729
730iprefix
731C ObjC C++ ObjC++ Joined Separate
72de27ea 732-iprefix <path> Specify <path> as a prefix for next two options
fef3106c
NB
733
734isysroot
735C ObjC C++ ObjC++ Joined Separate
72de27ea 736-isysroot <dir> Set <dir> to be the system root directory
fef3106c
NB
737
738isystem
739C ObjC C++ ObjC++ Joined Separate
72de27ea 740-isystem <dir> Add <dir> to the start of the system include path
fef3106c 741
4bed3787
MS
742iquote
743C ObjC C++ ObjC++ Joined Separate
744-iquote <dir> Add <dir> to the end of the quote include path
745
fef3106c
NB
746iwithprefix
747C ObjC C++ ObjC++ Joined Separate
72de27ea 748-iwithprefix <dir> Add <dir> to the end of the system include path
fef3106c
NB
749
750iwithprefixbefore
751C ObjC C++ ObjC++ Joined Separate
72de27ea 752-iwithprefixbefore <dir> Add <dir> to the end of the main include path
fef3106c
NB
753
754lang-asm
f2ac9964 755C Undocumented
fef3106c
NB
756
757lang-objc
f2ac9964 758C ObjC C++ ObjC++ Undocumented
fef3106c
NB
759
760nostdinc
761C ObjC C++ ObjC++
72de27ea 762Do not search standard system include directories (those specified with -isystem will still be used)
fef3106c
NB
763
764nostdinc++
72de27ea
NB
765C++ ObjC++
766Do not search standard system include directories for C++
fef3106c
NB
767
768o
769C ObjC C++ ObjC++ Joined Separate
72de27ea 770; Documented in common.opt
fef3106c
NB
771
772pedantic
773C ObjC C++ ObjC++
72de27ea 774; Documented in common.opt
fef3106c
NB
775
776pedantic-errors
777C ObjC C++ ObjC++
72de27ea 778; Documented in common.opt
fef3106c
NB
779
780print-objc-runtime-info
781ObjC ObjC++
f2ac9964 782Generate C header of platform-specific features
fef3106c
NB
783
784remap
785C ObjC C++ ObjC++
72de27ea 786Remap file names when including files
fef3106c
NB
787
788std=c++98
789C++ ObjC++
72de27ea 790Conform to the ISO 1998 C++ standard
fef3106c
NB
791
792std=c89
793C ObjC
72de27ea 794Conform to the ISO 1990 C standard
fef3106c
NB
795
796std=c99
797C ObjC
72de27ea 798Conform to the ISO 1999 C standard
fef3106c
NB
799
800std=c9x
801C ObjC
72de27ea 802Deprecated in favor of -std=c99
fef3106c
NB
803
804std=gnu++98
805C++ ObjC++
72de27ea 806Conform to the ISO 1998 C++ standard with GNU extensions
fef3106c
NB
807
808std=gnu89
809C ObjC
72de27ea 810Conform to the ISO 1990 C standard with GNU extensions
fef3106c
NB
811
812std=gnu99
813C ObjC
72de27ea 814Conform to the ISO 1999 C standard with GNU extensions
fef3106c
NB
815
816std=gnu9x
817C ObjC
72de27ea 818Deprecated in favor of -std=gnu99
fef3106c
NB
819
820std=iso9899:1990
821C ObjC
72de27ea 822Deprecated in favor of -std=c89
fef3106c
NB
823
824std=iso9899:199409
825C ObjC
72de27ea 826Conform to the ISO 1990 C standard as amended in 1994
fef3106c
NB
827
828std=iso9899:1999
829C ObjC
72de27ea 830Deprecated in favor of -std=c99
fef3106c
NB
831
832std=iso9899:199x
833C ObjC
72de27ea 834Deprecated in favor of -std=c99
fef3106c
NB
835
836traditional-cpp
837C ObjC C++ ObjC++
72de27ea 838Enable traditional preprocessing
fef3106c
NB
839
840trigraphs
841C ObjC C++ ObjC++
72de27ea 842-trigraphs Support ISO C trigraphs
fef3106c
NB
843
844undef
845C ObjC C++ ObjC++
72de27ea 846Do not predefine system-specific and GCC-specific macros
fef3106c
NB
847
848v
849C ObjC C++ ObjC++
72de27ea 850Enable verbose output
fef3106c
NB
851
852w
853C ObjC C++ ObjC++
72de27ea 854; Documented in common.opt
e11a4ae5
NB
855
856; This comment is to ensure we retain the blank line above.