c.opt 23.3 KB
Newer Older
1
; Options for the C, ObjC, C++ and ObjC++ front ends.
2
; Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
3 4 5 6 7
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
8
; Software Foundation; either version 3, or (at your option) any later
9
; version.
Mike Stump committed
10
;
11 12 13 14
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
; for more details.
Mike Stump committed
15
;
16
; You should have received a copy of the GNU General Public License
17 18
; along with GCC; see the file COPYING3.  If not see
; <http://www.gnu.org/licenses/>.
19

20
; See the GCC internals manual for a description of this file's format.
21 22 23

; Please try to keep this file in ASCII collating order.

24 25 26 27 28 29 30 31 32 33 34 35
Language
C

Language
ObjC

Language
C++

Language
ObjC++

36 37 38 39 40
-output-pch=
C ObjC C++ ObjC++ Joined Separate

A
C ObjC C++ ObjC++ Joined Separate
41
-A<question>=<answer>	Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>
42 43 44

C
C ObjC C++ ObjC++
45
Do not discard comments
46 47 48

CC
C ObjC C++ ObjC++
49
Do not discard comments in macro expansions
50 51 52

D
C ObjC C++ ObjC++ Joined Separate
53
-D<macro>[=<val>]	Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1
54 55

E
56
C ObjC C++ ObjC++ Undocumented
57

58 59
F
C ObjC C++ ObjC++ Joined Separate
60
-F <dir>	Add <dir> to the end of the main framework include path
61

62 63
H
C ObjC C++ ObjC++
64
Print the name of header files as they are used
65 66 67

I
C ObjC C++ ObjC++ Joined Separate
68
-I <dir>	Add <dir> to the end of the main include path
69 70 71

M
C ObjC C++ ObjC++
72
Generate make dependencies
73 74 75

MD
C ObjC C++ ObjC++ Separate
76
Generate make dependencies and compile
77 78 79

MF
C ObjC C++ ObjC++ Joined Separate
80
-MF <file>	Write dependency output to the given file
81 82 83

MG
C ObjC C++ ObjC++
84
Treat missing header files as generated files
85 86 87

MM
C ObjC C++ ObjC++
88
Like -M but ignore system header files
89 90 91

MMD
C ObjC C++ ObjC++ Separate
92
Like -MD but ignore system header files
93 94 95

MP
C ObjC C++ ObjC++
96
Generate phony targets for all headers
97 98 99

MQ
C ObjC C++ ObjC++ Joined Separate
100
-MQ <target>	Add a MAKE-quoted target
101 102 103

MT
C ObjC C++ ObjC++ Joined Separate
104
-MT <target>	Add an unquoted target
105 106 107

P
C ObjC C++ ObjC++
108
Do not generate #line directives
109 110 111

U
C ObjC C++ ObjC++ Joined Separate
112
-U<macro>	Undefine <macro>
113 114

Wabi
115
C++ ObjC++ Var(warn_abi) Warning
116
Warn about things that will change when compiling with an ABI-compliant compiler
117

118 119 120 121
Waddress
C ObjC C++ ObjC++ Var(warn_address) Warning
Warn about suspicious uses of memory addresses

122
Wall
123
C ObjC C++ ObjC++ Warning
124
Enable most warning messages
125

126
Wassign-intercept
127
ObjC ObjC++ Var(warn_assign_intercept) Warning
128 129
Warn whenever an Objective-C assignment is being intercepted by the garbage collector

130
Wbad-function-cast
131
C ObjC Var(warn_bad_function_cast) Warning
132
Warn about casting functions to incompatible types
133

134
Wc++-compat
135
C ObjC Var(warn_cxx_compat) Warning
136 137
Warn about C constructs that are not in the common subset of C and C++

138
Wc++0x-compat
139
C++ ObjC++ Var(warn_cxx0x_compat) Warning
140
Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x
141

142
Wcast-qual
143
C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
144
Warn about casts which discard qualifiers
145 146

Wchar-subscripts
147
C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning
148
Warn about subscripts whose type is \"char\"
149

150
Wclobbered
151
C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning
152 153
Warn about variables that might be changed by \"longjmp\" or \"vfork\"

154
Wcomment
155
C ObjC C++ ObjC++ Warning
156
Warn about possibly nested block comments, and C++ comments spanning more than one physical line
157 158

Wcomments
159
C ObjC C++ ObjC++ Warning
160
Synonym for -Wcomment
161 162

Wconversion
163
C ObjC C++ ObjC++ Var(warn_conversion) Warning
164
Warn for implicit type conversions that may change a value
165

166 167 168 169
Wsign-conversion
C ObjC C++ ObjC++ Var(warn_sign_conversion) Init(-1)
Warn for implicit type conversions between signed and unsigned integers

170
Wctor-dtor-privacy
171
C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
172
Warn when all constructors and destructors are private
173

174
Wdeclaration-after-statement
175
C ObjC Var(warn_declaration_after_statement) Warning
176 177
Warn when a declaration is found after a statement

178
Wdeprecated
179
C++ ObjC++ Var(warn_deprecated) Init(1) Warning
180
Warn about deprecated compiler features
181 182

Wdiv-by-zero
183
C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
184
Warn about compile-time integer division by zero
185 186

Weffc++
187
C++ ObjC++ Var(warn_ecpp) Warning
188
Warn about violations of Effective C++ style rules
189

190
Wempty-body
191
C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning
192 193
Warn about an empty body in an if or else statement

194
Wendif-labels
195
C ObjC C++ ObjC++ Warning
196
Warn about stray tokens after #elif and #endif
197 198 199

Werror
C ObjC C++ ObjC++
200
; Documented in common.opt
201 202

Werror-implicit-function-declaration
203
C ObjC RejectNegative Warning
204
This switch is deprecated; use -Werror=implicit-function-declaration instead
205 206

Wfloat-equal
207
C ObjC C++ ObjC++ Var(warn_float_equal) Warning
208
Warn if testing floating point numbers for equality
209 210

Wformat
211
C ObjC C++ ObjC++ Warning
212
Warn about printf/scanf/strftime/strfmon format string anomalies
213 214

Wformat-extra-args
215
C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning
216
Warn if passing too many arguments to a function for its format string
217 218

Wformat-nonliteral
219
C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning
220
Warn about format strings that are not literals
221

222
Wformat-contains-nul
223
C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning
224 225
Warn about format strings that contain NUL bytes

226
Wformat-security
227
C ObjC C++ ObjC++ Var(warn_format_security) Warning
228
Warn about possible security problems with format functions
229 230

Wformat-y2k
231
C ObjC C++ ObjC++ Var(warn_format_y2k) Warning
232
Warn about strftime formats yielding 2-digit years
233 234

Wformat-zero-length
235
C ObjC Var(warn_format_zero_length) Warning
236
Warn about zero-length formats
237 238

Wformat=
239
C ObjC C++ ObjC++ Joined Warning
240

241 242 243 244
Wignored-qualifiers
C C++ Var(warn_ignored_qualifiers) Init(-1) Warning
Warn whenever type qualifiers are ignored.

Andrew Pinski committed
245
Winit-self
246
C ObjC C++ ObjC++ Var(warn_init_self) Warning
247
Warn about variables which are initialized to themselves
Andrew Pinski committed
248

249
Wimplicit
250
C ObjC C++ ObjC++ Warning
251 252

Wimplicit-function-declaration
253
C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning
254
Warn about implicit function declarations
255 256

Wimplicit-int
257
C ObjC Var(warn_implicit_int) Warning
258
Warn when a declaration does not specify a type
259 260 261

Wimport
C ObjC C++ ObjC++
262
Deprecated.  This switch has no effect
263

264
Wint-to-pointer-cast
265
C ObjC Var(warn_int_to_pointer_cast) Init(1) Warning
266 267
Warn when there is a cast to a pointer from an integer of a different size

268
Winvalid-offsetof
269
C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
270
Warn about invalid uses of the \"offsetof\" macro
271 272

Winvalid-pch
273
C ObjC C++ ObjC++ Warning
274
Warn about PCH files that are found but not used
275 276

Wlong-long
277
C ObjC C++ ObjC++ Var(warn_long_long) Init(1) Warning
278
Do not warn about using \"long long\" when -pedantic
279 280

Wmain
281
C ObjC C++ ObjC++ Warning
282
Warn about suspicious declarations of \"main\"
283 284

Wmissing-braces
285
C ObjC C++ ObjC++ Var(warn_missing_braces) Warning
286
Warn about possibly missing braces around initializers
287 288

Wmissing-declarations
289
C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
290
Warn about global functions without previous declarations
291

292
Wmissing-field-initializers
293
C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning
294 295
Warn about missing fields in struct initializers

296
Wmissing-format-attribute
297
C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning
298
Warn about functions which might be candidates for format attributes
299

300
Wmissing-include-dirs
301
C ObjC C++ ObjC++ Warning
302 303
Warn about user-specified include directories that do not exist

304
Wmissing-parameter-type
305
C ObjC Var(warn_missing_parameter_type) Init(-1) Warning
306 307
Warn about function parameters declared without a type specifier in K&R-style functions

308
Wmissing-prototypes
309
C ObjC Var(warn_missing_prototypes) Warning
310
Warn about global functions without prototypes
311 312

Wmultichar
313
C ObjC C++ ObjC++ Warning
314
Warn about use of multi-character character constants
315 316

Wnested-externs
317
C ObjC Var(warn_nested_externs) Warning
318
Warn about \"extern\" declarations not at file scope
319 320

Wnon-template-friend
321
C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
322
Warn when non-templatized friend functions are declared within a template
323 324

Wnon-virtual-dtor
325
C++ ObjC++ Var(warn_nonvdtor) Warning
326
Warn about non-virtual destructors
327 328

Wnonnull
329
C ObjC Var(warn_nonnull) Warning
330
Warn about NULL being passed to argument slots marked as requiring non-NULL
331

Geoffrey Keating committed
332
Wnormalized=
333
C ObjC C++ ObjC++ Joined Warning
Geoffrey Keating committed
334 335
-Wnormalized=<id|nfc|nfkc>	Warn about non-normalised Unicode strings

336
Wold-style-cast
337
C++ ObjC++ Var(warn_old_style_cast) Warning
338
Warn if a C-style cast is used in a program
339

340
Wold-style-declaration
341
C ObjC Var(warn_old_style_declaration) Init(-1) Warning
342 343
Warn for obsolescent usage in a declaration

344
Wold-style-definition
345
C ObjC Var(warn_old_style_definition) Warning
346 347
Warn if an old-style parameter definition is used

348
Woverlength-strings
349
C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warning
350 351
Warn if a string is longer than the maximum portable length specified by the standard

352
Woverloaded-virtual
353
C++ ObjC++ Var(warn_overloaded_virtual) Warning
354
Warn about overloaded virtual function names
355

356
Woverride-init
357
C ObjC Var(warn_override_init) Init(-1) Warning
358 359
Warn about overriding initializers without side effects

360
Wparentheses
361
C ObjC C++ ObjC++ Var(warn_parentheses) Warning
362
Warn about possibly missing parentheses
363 364

Wpmf-conversions
365
C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
366
Warn when converting the type of pointers to member functions
367 368

Wpointer-arith
369
C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning
370
Warn about function pointer arithmetic
371

372
Wpointer-to-int-cast
373
C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
374 375
Warn when a pointer is cast to an integer of a different size

376
Wpragmas
377
C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
378 379
Warn about misuses of pragmas

380
Wprotocol
381
ObjC ObjC++ Var(warn_protocol) Init(1) Warning
382
Warn if inherited methods are unimplemented
383 384

Wredundant-decls
385
C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
386
Warn about multiple declarations of the same object
387 388

Wreorder
389
C++ ObjC++ Var(warn_reorder) Warning
390
Warn when the compiler reorders code
391 392

Wreturn-type
393
C ObjC C++ ObjC++ Var(warn_return_type) Warning
394
Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
395 396

Wselector
397
ObjC ObjC++ Var(warn_selector) Warning
398
Warn if a selector has multiple methods
399 400

Wsequence-point
401
C ObjC C++ ObjC++ Var(warn_sequence_point) Warning
402
Warn about possible violations of sequence point rules
403 404

Wsign-compare
405
C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warning
406
Warn about signed-unsigned comparisons
407 408

Wsign-promo
409
C++ ObjC++ Var(warn_sign_promo) Warning
410
Warn when overload promotes from unsigned to signed
411

412
Wstrict-null-sentinel
413
C++ ObjC++ Warning
414 415
Warn about uncasted NULL used as sentinel

416
Wstrict-prototypes
417
C ObjC Var(warn_strict_prototypes) Warning
418
Warn about unprototyped function declarations
419

420
Wstrict-selector-match
421
ObjC ObjC++ Var(warn_strict_selector_match) Warning
422 423
Warn if type signatures of candidate methods do not match exactly

424
Wsynth
425
C++ ObjC++ Var(warn_synth) Warning
426
Deprecated.  This switch has no effect
427 428

Wsystem-headers
429
C ObjC C++ ObjC++ Warning
430
Do not suppress warnings from system headers
431 432

Wtraditional
433
C ObjC Var(warn_traditional) Warning
434
Warn about features not present in traditional C
435

436
Wtraditional-conversion
437
C ObjC Var(warn_traditional_conversion) Warning
438 439
Warn of prototypes causing type conversions different from what would happen in the absence of prototype

440
Wtrigraphs
441
C ObjC C++ ObjC++ Warning
442
Warn if trigraphs are encountered that might affect the meaning of the program
443 444

Wundeclared-selector
445
ObjC ObjC++ Var(warn_undeclared_selector) Warning
446
Warn about @selector()s without previously declared methods
447 448

Wundef
449
C ObjC C++ ObjC++ Warning
450
Warn if an undefined macro is used in an #if directive
451 452

Wunknown-pragmas
453
C ObjC C++ ObjC++ Warning
454
Warn about unrecognized pragmas
455 456

Wunused-macros
457
C ObjC C++ ObjC++ Warning
458
Warn about macros defined in the main file that are not used
459

460
Wvariadic-macros
461
C ObjC C++ ObjC++ Warning
462 463
Do not warn about using variadic macros when -pedantic

464 465 466 467
Wvla
C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
Warn if a variable length array is used

468 469 470 471
Wvolatile-register-var
C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning
Warn when a register variable is declared volatile

472
Wwrite-strings
473
C ObjC C++ ObjC++ Var(warn_write_strings) Warning
474
In 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.
475

Andreas Jaeger committed
476
Wpointer-sign
477
C ObjC Var(warn_pointer_sign) Init(-1) Warning
478
Warn when a pointer differs in signedness in an assignment
Andreas Jaeger committed
479

480 481
ansi
C ObjC C++ ObjC++
482
A synonym for -std=c89 (for C) or -std=c++98 (for C++)
483 484 485

d
C ObjC C++ ObjC++ Joined
486
; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
487 488 489

faccess-control
C++ ObjC++
490
Enforce class member access control semantics
491 492 493 494 495 496

fall-virtual
C++ ObjC++

falt-external-templates
C++ ObjC++
497
Change when template instances are emitted
498 499 500

fasm
C ObjC C++ ObjC++
501
Recognize the \"asm\" keyword
502 503 504

fbuiltin
C ObjC C++ ObjC++
505
Recognize built-in functions
506 507 508 509 510 511

fbuiltin-
C ObjC C++ ObjC++ Joined

fcheck-new
C++ ObjC++
512
Check the return value of new
513 514 515

fcond-mismatch
C ObjC C++ ObjC++
516
Allow the arguments of the '?' operator to have different types
517 518 519

fconserve-space
C++ ObjC++
520
Reduce the size of object files
521 522 523

fconstant-string-class=
ObjC ObjC++ Joined
524
-fconst-string-class=<name>	Use class <name> for constant strings
525 526 527

fdefault-inline
C++ ObjC++
528
Inline member functions by default
529

530 531 532 533
fdirectives-only
C ObjC C++ ObjC++
Preprocess directives only.

534 535
fdollars-in-identifiers
C ObjC C++ ObjC++
536
Permit '$' as an identifier character
537 538 539 540 541 542

felide-constructors
C++ ObjC++

fenforce-eh-specs
C++ ObjC++
543
Generate code to check exception specifications
544 545 546 547

fenum-int-equiv
C++ ObjC++

548 549
fexec-charset=
C ObjC C++ ObjC++ Joined RejectNegative
550
-fexec-charset=<cset>	Convert all strings and character constants to character set <cset>
551

552 553 554 555
fextended-identifiers
C ObjC C++ ObjC++
Permit universal character names (\\u and \\U) in identifiers

Eric Christopher committed
556 557
finput-charset=
C ObjC C++ ObjC++ Joined RejectNegative
558
-finput-charset=<cset>	Specify the default character set for source files
Eric Christopher committed
559 560


561 562 563 564 565
fexternal-templates
C++ ObjC++

ffor-scope
C++ ObjC++
566
Scope of for-init-statement variables is local to the loop
567 568

ffreestanding
569
C ObjC C++ ObjC++
570
Do not assume that standard C libraries and \"main\" exist
571 572 573

fgnu-keywords
C++ ObjC++
574
Recognize GNU-defined keywords
575 576 577

fgnu-runtime
ObjC ObjC++
578
Generate code for GNU runtime environment
579

580
fgnu89-inline
581
C ObjC Var(flag_gnu89_inline) Init(-1)
582 583
Use traditional GNU semantics for inline functions

584 585 586 587
fguiding-decls
C++ ObjC++

fhandle-exceptions
588
C++ ObjC++ Optimization
589 590 591 592 593 594

fhonor-std
C++ ObjC++

fhosted
C ObjC
595
Assume normal C execution environment
596 597 598

fhuge-objects
C++ ObjC++
599
Enable support for huge objects
600 601 602

fimplement-inlines
C++ ObjC++
603
Export functions even if they can be inlined
604 605 606

fimplicit-inline-templates
C++ ObjC++
607
Emit implicit instantiations of inline templates
608 609 610

fimplicit-templates
C++ ObjC++
611
Emit implicit instantiations of templates
612

613
ffriend-injection
614
C++ ObjC++ Var(flag_friend_injection)
615 616
Inject friend functions into enclosing namespace

617 618 619
flabels-ok
C++ ObjC++

620 621 622 623
flax-vector-conversions
C ObjC C++ ObjC++
Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.

624 625
fms-extensions
C ObjC C++ ObjC++
626
Don't warn about uses of Microsoft extensions
627 628 629 630 631 632 633 634 635

fname-mangling-version-
C++ ObjC++ Joined

fnew-abi
C++ ObjC++

fnext-runtime
ObjC ObjC++
636 637 638 639 640
Generate code for NeXT (Apple Mac OS X) runtime environment

fnil-receivers
ObjC ObjC++
Assume that receivers of Objective-C messages may be nil
641 642 643 644 645 646 647

fnonansi-builtins
C++ ObjC++

fnonnull-objects
C++ ObjC++

648 649 650 651 652 653 654 655 656 657 658 659
; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
; to initialize any non-POD ivars in Objective-C++ classes.
fobjc-call-cxx-cdtors
ObjC++ Var(flag_objc_call_cxx_cdtors)
Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed

fobjc-direct-dispatch
ObjC ObjC++ Var(flag_objc_direct_dispatch)
Allow fast jumps to the message dispatcher

; Nonzero means that we will allow new ObjC exception syntax (@throw,
; @try, etc.) in source code.
660
fobjc-exceptions
661
ObjC ObjC++ Var(flag_objc_exceptions)
662 663
Enable Objective-C exception and synchronization syntax

664 665 666 667 668
fobjc-gc
ObjC ObjC++ Var(flag_objc_gc)
Enable garbage collection (GC) in Objective-C/Objective-C++ programs

; Nonzero means that we generate NeXT setjmp based exceptions.
669
fobjc-sjlj-exceptions
670
ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
671 672
Enable Objective-C setjmp exception handling runtime

Diego Novillo committed
673 674 675 676
fopenmp
C ObjC C++ ObjC++ Var(flag_openmp)
Enable OpenMP

677 678
foperator-names
C++ ObjC++
679
Recognize C++ kewords like \"compl\" and \"xor\"
680 681 682

foptional-diags
C++ ObjC++
683
Enable optional diagnostics
684 685 686 687

fpch-deps
C ObjC C++ ObjC++

688 689 690 691
fpch-preprocess
C ObjC C++ ObjC++
Look for and use PCH files even when preprocessing

692 693
fpermissive
C++ ObjC++
694
Downgrade conformance errors to warnings
695 696 697

fpreprocessed
C ObjC C++ ObjC++
698
Treat the input file as already preprocessed
699

700 701 702 703
freplace-objc-classes
ObjC ObjC++
Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime

704 705
frepo
C++ ObjC++
706
Enable automatic template instantiation
707 708

frtti
709
C++ ObjC++ Optimization
710
Generate run time type descriptor information
711 712

fshort-double
713
C ObjC C++ ObjC++ Optimization
714
Use the same size for double as for float
715 716

fshort-enums
717
C ObjC C++ ObjC++ Optimization
718
Use the narrowest integer type possible for enumeration types
719 720

fshort-wchar
721
C ObjC C++ ObjC++ Optimization
722
Force the underlying type for \"wchar_t\" to be \"unsigned short\"
723 724 725

fsigned-bitfields
C ObjC C++ ObjC++
726
When \"signed\" or \"unsigned\" is not given make the bitfield signed
727 728 729

fsigned-char
C ObjC C++ ObjC++
730
Make \"char\" signed by default
731 732 733 734 735 736

fsquangle
C++ ObjC++

fstats
C++ ObjC++
737
Display statistics accumulated during compilation
738 739 740 741 742

fstrict-prototype
C++ ObjC++

ftabstop=
743
C ObjC C++ ObjC++ Joined RejectNegative UInteger
744
-ftabstop=<number>	Distance between tab stops for column reporting
745 746

ftemplate-depth-
Mike Stump committed
747
C++ ObjC++ Joined RejectNegative UInteger
748
-ftemplate-depth-<number>	Specify maximum template instantiation depth
749 750 751 752

fthis-is-variable
C++ ObjC++

753
fthreadsafe-statics
754
C++ ObjC++ Optimization
755
-fno-threadsafe-statics	Do not generate thread-safe code for initializing local statics
756

757 758
funsigned-bitfields
C ObjC C++ ObjC++
759
When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
760 761 762

funsigned-char
C ObjC C++ ObjC++
763
Make \"char\" unsigned by default
764 765 766

fuse-cxa-atexit
C++ ObjC++
767
Use __cxa_atexit to register destructors
768

Geoffrey Keating committed
769 770 771 772
fuse-cxa-get-exception-ptr
C++ ObjC++
Use __cxa_get_exception_ptr in exception handling

773
fvisibility-inlines-hidden
774
C++ ObjC++
775 776
Marks all inlined methods as having hidden visibility

Geoffrey Keating committed
777 778 779 780
fvisibility-ms-compat
C++ ObjC++ Var(flag_visibility_ms_compat)
Changes visibility to match Microsoft Visual Studio by default

781 782
fvtable-gc
C++ ObjC++
783
Discard unused virtual functions
784 785 786

fvtable-thunks
C++ ObjC++
787
Implement vtables using thunks
788 789 790

fweak
C++ ObjC++
791
Emit common-like symbols as weak symbols
792

793 794
fwide-exec-charset=
C ObjC C++ ObjC++ Joined RejectNegative
795
-fwide-exec-charset=<cset>	Convert all wide strings and character constants to character set <cset>
796

797 798 799 800
fworking-directory
C ObjC C++ ObjC++
Generate a #line directive pointing at the current working directory

801 802
fxref
C++ ObjC++
803
Emit cross referencing information
804

805 806 807 808
fzero-link
ObjC ObjC++
Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode

809 810
gen-decls
ObjC ObjC++
811
Dump declarations to a .decl file
812

813 814 815 816 817 818 819 820 821 822 823 824
femit-struct-debug-baseonly
C ObjC C++ ObjC++
-femit-struct-debug-baseonly	Aggressive reduced debug info for structs

femit-struct-debug-reduced
C ObjC C++ ObjC++
-femit-struct-debug-reduced	Conservative reduced debug info for structs

femit-struct-debug-detailed=
C ObjC C++ ObjC++ Joined
-femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs

825 826
idirafter
C ObjC C++ ObjC++ Joined Separate
827
-idirafter <dir>	Add <dir> to the end of the system include path
828 829 830

imacros
C ObjC C++ ObjC++ Joined Separate
831
-imacros <file>	Accept definition of macros in <file>
832

833 834 835 836
imultilib
C ObjC C++ ObjC++ Joined Separate
-imultilib <dir> Set <dir> to be the multilib include subdirectory

837 838
include
C ObjC C++ ObjC++ Joined Separate
839
-include <file>	Include the contents of <file> before other files
840 841 842

iprefix
C ObjC C++ ObjC++ Joined Separate
843
-iprefix <path>	Specify <path> as a prefix for next two options
844 845 846

isysroot
C ObjC C++ ObjC++ Joined Separate
847
-isysroot <dir>	Set <dir> to be the system root directory
848 849 850

isystem
C ObjC C++ ObjC++ Joined Separate
851
-isystem <dir>	Add <dir> to the start of the system include path
852

853 854 855 856
iquote
C ObjC C++ ObjC++ Joined Separate
-iquote <dir>	Add <dir> to the end of the quote include path

857 858
iwithprefix
C ObjC C++ ObjC++ Joined Separate
859
-iwithprefix <dir>	Add <dir> to the end of the system include path
860 861 862

iwithprefixbefore
C ObjC C++ ObjC++ Joined Separate
863
-iwithprefixbefore <dir>	Add <dir> to the end of the main include path
864 865

lang-asm
866
C Undocumented
867

868 869 870
lang-fortran
C Undocumented

871
lang-objc
872
C ObjC C++ ObjC++ Undocumented
873 874 875

nostdinc
C ObjC C++ ObjC++
876
Do not search standard system include directories (those specified with -isystem will still be used)
877 878

nostdinc++
879 880
C++ ObjC++
Do not search standard system include directories for C++
881 882 883

o
C ObjC C++ ObjC++ Joined Separate
884
; Documented in common.opt
885 886 887

pedantic
C ObjC C++ ObjC++
888
; Documented in common.opt
889 890 891

pedantic-errors
C ObjC C++ ObjC++
892
; Documented in common.opt
893 894 895

print-objc-runtime-info
ObjC ObjC++
896
Generate C header of platform-specific features
897

898 899
print-pch-checksum
C ObjC C++ ObjC++
900
Print a checksum of the executable for PCH validity checking, and stop
901

902 903
remap
C ObjC C++ ObjC++
904
Remap file names when including files
905 906 907

std=c++98
C++ ObjC++
908
Conform to the ISO 1998 C++ standard
909

910 911 912 913 914 915 916
std=c++0x
C++ ObjC++
Conform to the ISO 1998 C++ standard, with extensions that are likely to
become a part of the upcoming ISO C++ standard, dubbed C++0x. Note that the
extensions enabled by this mode are experimental and may be removed in
future releases of GCC.

917 918
std=c89
C ObjC
919
Conform to the ISO 1990 C standard
920 921 922

std=c99
C ObjC
923
Conform to the ISO 1999 C standard
924 925 926

std=c9x
C ObjC
927
Deprecated in favor of -std=c99
928 929 930

std=gnu++98
C++ ObjC++
931
Conform to the ISO 1998 C++ standard with GNU extensions
932

933 934 935 936 937 938 939
std=gnu++0x
C++ ObjC++
Conform to the ISO 1998 C++ standard, with GNU extensions and
extensions that are likely to become a part of the upcoming ISO C++
standard, dubbed C++0x. Note that the extensions enabled by this mode
are experimental and may be removed in future releases of GCC.

940 941
std=gnu89
C ObjC
942
Conform to the ISO 1990 C standard with GNU extensions
943 944 945

std=gnu99
C ObjC
946
Conform to the ISO 1999 C standard with GNU extensions
947 948 949

std=gnu9x
C ObjC
950
Deprecated in favor of -std=gnu99
951 952 953

std=iso9899:1990
C ObjC
954
Conform to the ISO 1990 C standard
955 956 957

std=iso9899:199409
C ObjC
958
Conform to the ISO 1990 C standard as amended in 1994
959 960 961

std=iso9899:1999
C ObjC
962
Conform to the ISO 1999 C standard
963 964 965

std=iso9899:199x
C ObjC
966
Deprecated in favor of -std=iso9899:1999
967 968 969

traditional-cpp
C ObjC C++ ObjC++
970
Enable traditional preprocessing
971 972 973

trigraphs
C ObjC C++ ObjC++
974
-trigraphs	Support ISO C trigraphs
975 976 977

undef
C ObjC C++ ObjC++
978
Do not predefine system-specific and GCC-specific macros
979 980

v
981
Common C ObjC C++ ObjC++
982
Enable verbose output
983 984 985

w
C ObjC C++ ObjC++
986
; Documented in common.opt
987 988

; This comment is to ensure we retain the blank line above.