* tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
[official-gcc.git] / gcc / c.opt
blob4467df3eb80765bd8bd4018481a18821d975cb68
1 ; Options for the C, ObjC, C++ and ObjC++ front ends.
2 ; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
4 ; This file is part of GCC.
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.
21 ; See the GCC internals manual for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
25 Language
28 Language
29 ObjC
31 Language
32 C++
34 Language
35 ObjC++
37 -output-pch=
38 C ObjC C++ ObjC++ Joined Separate
41 C ObjC C++ ObjC++ Joined Separate
42 -A<question>=<answer>   Assert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>
45 C ObjC C++ ObjC++
46 Do not discard comments
49 C ObjC C++ ObjC++
50 Do not discard comments in macro expansions
53 C ObjC C++ ObjC++ Joined Separate
54 -D<macro>[=<val>]       Define a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1
57 C ObjC C++ ObjC++ Undocumented
60 C ObjC C++ ObjC++ Joined Separate
61 -F <dir>        Add <dir> to the end of the main framework include path
64 C ObjC C++ ObjC++
65 Print the name of header files as they are used
68 C ObjC C++ ObjC++ Joined Separate
69 -I <dir>        Add <dir> to the end of the main include path
72 C ObjC C++ ObjC++
73 Generate make dependencies
76 C ObjC C++ ObjC++ Separate
77 Generate make dependencies and compile
80 C ObjC C++ ObjC++ Joined Separate
81 -MF <file>      Write dependency output to the given file
84 C ObjC C++ ObjC++
85 Treat missing header files as generated files
88 C ObjC C++ ObjC++
89 Like -M but ignore system header files
91 MMD
92 C ObjC C++ ObjC++ Separate
93 Like -MD but ignore system header files
96 C ObjC C++ ObjC++
97 Generate phony targets for all headers
100 C ObjC C++ ObjC++ Joined Separate
101 -MQ <target>    Add a MAKE-quoted target
104 C ObjC C++ ObjC++ Joined Separate
105 -MT <target>    Add an unquoted target
108 C ObjC C++ ObjC++
109 Do not generate #line directives
112 C ObjC C++ ObjC++ Joined Separate
113 -U<macro>       Undefine <macro>
115 Wabi
116 C++ ObjC++ Var(warn_abi)
117 Warn about things that will change when compiling with an ABI-compliant compiler
119 Wall
120 C ObjC C++ ObjC++
121 Enable most warning messages
123 Wbad-function-cast
124 C ObjC Var(warn_bad_function_cast)
125 Warn about casting functions to incompatible types
127 Wcast-qual
128 C ObjC C++ ObjC++ Var(warn_cast_qual)
129 Warn about casts which discard qualifiers
131 Wchar-subscripts
132 C ObjC C++ ObjC++ Var(warn_char_subscripts)
133 Warn about subscripts whose type is \"char\"
135 Wcomment
136 C ObjC C++ ObjC++
137 Warn about possibly nested block comments, and C++ comments spanning more than one physical line
139 Wcomments
140 C ObjC C++ ObjC++
141 Synonym for -Wcomment
143 Wconversion
144 C ObjC C++ ObjC++ Var(warn_conversion)
145 Warn about possibly confusing type conversions
147 Wctor-dtor-privacy
148 C++ ObjC++ Var(warn_ctor_dtor_privacy)
149 Warn when all constructors and destructors are private
151 Wdeclaration-after-statement
152 C ObjC Var(warn_declaration_after_statement)
153 Warn when a declaration is found after a statement
155 Wdeprecated
156 C++ ObjC++ Var(warn_deprecated) Init(1)
157 Warn about deprecated compiler features
159 Wdiv-by-zero
160 C ObjC Var(warn_div_by_zero) Init(1)
161 Warn about compile-time integer division by zero
163 Weffc++
164 C++ ObjC++ Var(warn_ecpp)
165 Warn about violations of Effective C++ style rules
167 Wendif-labels
168 C ObjC C++ ObjC++
169 Warn about stray tokens after #elif and #endif
171 Werror
172 C ObjC C++ ObjC++
173 ; Documented in common.opt
175 Werror-implicit-function-declaration
176 C ObjC RejectNegative
177 Make implicit function declarations an error
179 Wfloat-equal
180 C ObjC C++ ObjC++ Var(warn_float_equal)
181 Warn if testing floating point numbers for equality
183 Wformat
184 C ObjC C++ ObjC++
185 Warn about printf/scanf/strftime/strfmon format string anomalies
187 Wformat-extra-args
188 C ObjC C++ ObjC++ Var(warn_format_extra_args)
189 Warn if passing too many arguments to a function for its format string
191 Wformat-nonliteral
192 C ObjC C++ ObjC++ Var(warn_format_nonliteral)
193 Warn about format strings that are not literals
195 Wformat-security
196 C ObjC C++ ObjC++ Var(warn_format_security)
197 Warn about possible security problems with format functions
199 Wformat-y2k
200 C ObjC C++ ObjC++ Var(warn_format_y2k)
201 Warn about strftime formats yielding 2-digit years
203 Wformat-zero-length
204 C ObjC Var(warn_format_zero_length)
205 Warn about zero-length formats
207 Wformat=
208 C ObjC C++ ObjC++ Joined
210 Winit-self
211 C ObjC C++ ObjC++ Var(warn_init_self)
212 Warn about variables which are initialized to themselves.
214 Wimplicit
215 C ObjC C++ ObjC++
217 Wimplicit-function-declaration
218 C ObjC Var(mesg_implicit_function_declaration) Init(-1)
219 Warn about implicit function declarations
221 Wimplicit-int
222 C ObjC Var(warn_implicit_int)
223 Warn when a declaration does not specify a type
225 Wimport
226 C ObjC C++ ObjC++
227 Deprecated.  This switch has no effect.
229 Wint-to-pointer-cast
230 C ObjC Var(warn_int_to_pointer_cast) Init(1)
231 Warn when there is a cast to a pointer from an integer of a different size
233 Winvalid-offsetof
234 C++ ObjC++ Var(warn_invalid_offsetof) Init(1)
235 Warn about invalid uses of the \"offsetof\" macro
237 Winvalid-pch
238 C ObjC C++ ObjC++
239 Warn about PCH files that are found but not used
241 Wlong-long
242 C ObjC C++ ObjC++ Var(warn_long_long) Init(1)
243 Do not warn about using \"long long\" when -pedantic
245 Wmain
246 C ObjC
247 Warn about suspicious declarations of \"main\"
249 Wmissing-braces
250 C ObjC C++ ObjC++ Var(warn_missing_braces)
251 Warn about possibly missing braces around initializers
253 Wmissing-declarations
254 C ObjC Var(warn_missing_declarations)
255 Warn about global functions without previous declarations
257 Wmissing-field-initializers
258 C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1)
259 Warn about missing fields in struct initializers
261 Wmissing-format-attribute
262 C ObjC C++ ObjC++ Var(warn_missing_format_attribute)
263 Warn about functions which might be candidates for format attributes
265 Wmissing-include-dirs
266 C ObjC C++ ObjC++
267 Warn about user-specified include directories that do not exist
269 Wmissing-prototypes
270 C ObjC Var(warn_missing_prototypes)
271 Warn about global functions without prototypes
273 Wmultichar
274 C ObjC C++ ObjC++
275 Warn about use of multi-character character constants
277 Wnested-externs
278 C ObjC Var(warn_nested_externs)
279 Warn about \"extern\" declarations not at file scope
281 Wnon-template-friend
282 C++ ObjC++ Var(warn_nontemplate_friend) Init(1)
283 Warn when non-templatized friend functions are declared within a template
285 Wnon-virtual-dtor
286 C++ ObjC++ Var(warn_nonvdtor)
287 Warn about non-virtual destructors
289 Wnonnull
290 C ObjC Var(warn_nonnull)
291 Warn about NULL being passed to argument slots marked as requiring non-NULL
293 Wnormalized=
294 C ObjC C++ ObjC++ Joined
295 -Wnormalized=<id|nfc|nfkc>      Warn about non-normalised Unicode strings
297 Wold-style-cast
298 C++ ObjC++ Var(warn_old_style_cast)
299 Warn if a C-style cast is used in a program
301 Wold-style-definition
302 C ObjC Var(warn_old_style_definition)
303 Warn if an old-style parameter definition is used
305 Woverloaded-virtual
306 C++ ObjC++ Var(warn_overloaded_virtual)
307 Warn about overloaded virtual function names
309 Wparentheses
310 C ObjC C++ ObjC++ Var(warn_parentheses)
311 Warn about possibly missing parentheses
313 Wpmf-conversions
314 C++ ObjC++ Var(warn_pmf2ptr) Init(1)
315 Warn when converting the type of pointers to member functions
317 Wpointer-arith
318 C ObjC C++ ObjC++ Var(warn_pointer_arith)
319 Warn about function pointer arithmetic
321 Wpointer-to-int-cast
322 C ObjC Var(warn_pointer_to_int_cast) Init(1)
323 Warn when a pointer is cast to an integer of a different size
325 Wprotocol
326 ObjC ObjC++ Var(warn_protocol) Init(1)
327 Warn if inherited methods are unimplemented
329 Wredundant-decls
330 C ObjC C++ ObjC++ Var(warn_redundant_decls)
331 Warn about multiple declarations of the same object
333 Wreorder
334 C++ ObjC++ Var(warn_reorder)
335 Warn when the compiler reorders code
337 Wreturn-type
338 C ObjC C++ ObjC++
339 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
341 Wselector
342 ObjC ObjC++ Var(warn_selector)
343 Warn if a selector has multiple methods
345 Wsequence-point
346 C ObjC C++ ObjC++ Var(warn_sequence_point)
347 Warn about possible violations of sequence point rules
349 Wsign-compare
350 C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
351 Warn about signed-unsigned comparisons
353 Wsign-promo
354 C++ ObjC++ Var(warn_sign_promo)
355 Warn when overload promotes from unsigned to signed
357 Wstrict-null-sentinel
358 C++ ObjC++
359 Warn about uncasted NULL used as sentinel
361 Wstrict-prototypes
362 C ObjC Var(warn_strict_prototypes)
363 Warn about unprototyped function declarations
365 Wsynth
366 C++ ObjC++ Var(warn_synth)
367 Warn when synthesis behavior differs from Cfront
369 Wsystem-headers
370 C ObjC C++ ObjC++
371 Do not suppress warnings from system headers
373 Wtraditional
374 C ObjC Var(warn_traditional)
375 Warn about features not present in traditional C
377 Wtrigraphs
378 C ObjC C++ ObjC++
379 Warn if trigraphs are encountered that might affect the meaning of the program
381 Wundeclared-selector
382 ObjC ObjC++ Var(warn_undeclared_selector)
383 Warn about @selector()s without previously declared methods
385 Wundef
386 C ObjC C++ ObjC++
387 Warn if an undefined macro is used in an #if directive
389 Wunknown-pragmas
390 C ObjC C++ ObjC++
391 Warn about unrecognized pragmas
393 Wunused-macros
394 C ObjC C++ ObjC++
395 Warn about macros defined in the main file that are not used
397 Wvariadic-macros
398 C ObjC C++ ObjC++
399 Do not warn about using variadic macros when -pedantic
401 Wwrite-strings
402 C ObjC C++ ObjC++
403 Give strings the type \"array of char\"
405 Wpointer-sign
406 C ObjC Var(warn_pointer_sign) Init(1)
407 Warn when a pointer differs in signedness in an assignment.
409 ansi
410 C ObjC C++ ObjC++
411 A synonym for -std=c89 (for C) or -std=c++98 (for C++).
414 C ObjC C++ ObjC++ Joined
415 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
417 faccess-control
418 C++ ObjC++
419 Enforce class member access control semantics
421 fall-virtual
422 C++ ObjC++
424 falt-external-templates
425 C++ ObjC++
426 Change when template instances are emitted
428 fasm
429 C ObjC C++ ObjC++
430 Recognize the \"asm\" keyword
432 fbuiltin
433 C ObjC C++ ObjC++
434 Recognize built-in functions
436 fbuiltin-
437 C ObjC C++ ObjC++ Joined
439 fcheck-new
440 C++ ObjC++
441 Check the return value of new
443 fcond-mismatch
444 C ObjC C++ ObjC++
445 Allow the arguments of the '?' operator to have different types
447 fconserve-space
448 C++ ObjC++
449 Reduce the size of object files
451 fconst-strings
452 C++ ObjC++
453 Make string literals \"const char[]\" not \"char[]\"
455 fconstant-string-class=
456 ObjC ObjC++ Joined
457 -fconst-string-class=<name>     Use class <name> for constant strings
459 fdefault-inline
460 C++ ObjC++
461 Inline member functions by default
463 fdollars-in-identifiers
464 C ObjC C++ ObjC++
465 Permit '$' as an identifier character
467 felide-constructors
468 C++ ObjC++
470 fenforce-eh-specs
471 C++ ObjC++
472 Generate code to check exception specifications
474 fenum-int-equiv
475 C++ ObjC++
477 fexec-charset=
478 C ObjC C++ ObjC++ Joined RejectNegative
479 -fexec-charset=<cset>   Convert all strings and character constants to character set <cset>
481 finput-charset=
482 C ObjC C++ ObjC++ Joined RejectNegative
483 -finput-charset=<cset>  Specify the default character set for source files.
486 fexternal-templates
487 C++ ObjC++
489 ffixed-form
490 C ObjC
492 ffixed-line-length-
493 C ObjC Joined
495 ffor-scope
496 C++ ObjC++
497 Scope of for-init-statement variables is local to the loop
499 ffreestanding
500 C ObjC
501 Do not assume that standard C libraries and \"main\" exist
503 fgnu-keywords
504 C++ ObjC++
505 Recognize GNU-defined keywords
507 fgnu-runtime
508 ObjC ObjC++
509 Generate code for GNU runtime environment
511 fguiding-decls
512 C++ ObjC++
514 fhandle-exceptions
515 C++ ObjC++
517 fhonor-std
518 C++ ObjC++
520 fhosted
521 C ObjC
522 Assume normal C execution environment
524 fhuge-objects
525 C++ ObjC++
526 Enable support for huge objects
528 fimplement-inlines
529 C++ ObjC++
530 Export functions even if they can be inlined
532 fimplicit-inline-templates
533 C++ ObjC++
534 Emit implicit instantiations of inline templates
536 fimplicit-templates
537 C++ ObjC++
538 Emit implicit instantiations of templates
540 flabels-ok
541 C++ ObjC++
543 fms-extensions
544 C ObjC C++ ObjC++
545 Don't warn about uses of Microsoft extensions
547 fname-mangling-version-
548 C++ ObjC++ Joined
550 fnew-abi
551 C++ ObjC++
553 fnext-runtime
554 ObjC ObjC++
555 Generate code for NeXT (Apple Mac OS X) runtime environment
557 fnil-receivers
558 ObjC ObjC++
559 Assume that receivers of Objective-C messages may be nil
561 fnonansi-builtins
562 C++ ObjC++
564 fnonnull-objects
565 C++ ObjC++
567 fobjc-exceptions
568 ObjC ObjC++
569 Enable Objective-C exception and synchronization syntax
571 fobjc-sjlj-exceptions
572 ObjC ObjC++
573 Enable Objective-C setjmp exception handling runtime
575 foperator-names
576 C++ ObjC++
577 Recognize C++ kewords like \"compl\" and \"xor\"
579 foptional-diags
580 C++ ObjC++
581 Enable optional diagnostics
583 fpch-deps
584 C ObjC C++ ObjC++
586 fpch-preprocess
587 C ObjC C++ ObjC++
588 Look for and use PCH files even when preprocessing
590 fpermissive
591 C++ ObjC++
592 Downgrade conformance errors to warnings
594 fpreprocessed
595 C ObjC C++ ObjC++
596 Treat the input file as already preprocessed
598 freplace-objc-classes
599 ObjC ObjC++
600 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
602 frepo
603 C++ ObjC++
604 Enable automatic template instantiation
606 frtti
607 C++ ObjC++
608 Generate run time type descriptor information
610 fshort-double
611 C ObjC C++ ObjC++
612 Use the same size for double as for float
614 fshort-enums
615 C ObjC C++ ObjC++
616 Use the narrowest integer type possible for enumeration types
618 fshort-wchar
619 C ObjC C++ ObjC++
620 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
622 fsigned-bitfields
623 C ObjC C++ ObjC++
624 When \"signed\" or \"unsigned\" is not given make the bitfield signed
626 fsigned-char
627 C ObjC C++ ObjC++
628 Make \"char\" signed by default
630 fsquangle
631 C++ ObjC++
633 fstats
634 C++ ObjC++
635 Display statistics accumulated during compilation
637 fstrict-prototype
638 C++ ObjC++
640 ftabstop=
641 C ObjC C++ ObjC++ Joined RejectNegative UInteger
642 -ftabstop=<number>      Distance between tab stops for column reporting
644 ftemplate-depth-
645 C++ ObjC++ Joined RejectNegative UInteger 
646 -ftemplate-depth-<number>       Specify maximum template instantiation depth
648 fthis-is-variable
649 C++ ObjC++
651 fthreadsafe-statics
652 C++ ObjC++
653 -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
655 funsigned-bitfields
656 C ObjC C++ ObjC++
657 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
659 funsigned-char
660 C ObjC C++ ObjC++
661 Make \"char\" unsigned by default
663 fuse-cxa-atexit
664 C++ ObjC++
665 Use __cxa_atexit to register destructors
667 fvisibility-inlines-hidden
668 C++ ObjC++
669 Marks all inlined methods as having hidden visibility
671 fvtable-gc
672 C++ ObjC++
673 Discard unused virtual functions
675 fvtable-thunks
676 C++ ObjC++
677 Implement vtables using thunks
679 fweak
680 C++ ObjC++
681 Emit common-like symbols as weak symbols
683 fwide-exec-charset=
684 C ObjC C++ ObjC++ Joined RejectNegative
685 -fwide-exec-charset=<cset>      Convert all wide strings and character constants to character set <cset>
687 fworking-directory
688 C ObjC C++ ObjC++
689 Generate a #line directive pointing at the current working directory
691 fxref
692 C++ ObjC++
693 Emit cross referencing information
695 fzero-link
696 ObjC ObjC++
697 Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode
699 gen-decls
700 ObjC ObjC++
701 Dump declarations to a .decl file
703 idirafter
704 C ObjC C++ ObjC++ Joined Separate
705 -idirafter <dir>        Add <dir> to the end of the system include path
707 imacros
708 C ObjC C++ ObjC++ Joined Separate
709 -imacros <file> Accept definition of macros in <file>
711 include
712 C ObjC C++ ObjC++ Joined Separate
713 -include <file> Include the contents of <file> before other files
715 iprefix
716 C ObjC C++ ObjC++ Joined Separate
717 -iprefix <path> Specify <path> as a prefix for next two options
719 isysroot
720 C ObjC C++ ObjC++ Joined Separate
721 -isysroot <dir> Set <dir> to be the system root directory
723 isystem
724 C ObjC C++ ObjC++ Joined Separate
725 -isystem <dir>  Add <dir> to the start of the system include path
727 iquote
728 C ObjC C++ ObjC++ Joined Separate
729 -iquote <dir>   Add <dir> to the end of the quote include path
731 iwithprefix
732 C ObjC C++ ObjC++ Joined Separate
733 -iwithprefix <dir>      Add <dir> to the end of the system include path
735 iwithprefixbefore
736 C ObjC C++ ObjC++ Joined Separate
737 -iwithprefixbefore <dir>        Add <dir> to the end of the main include path
739 lang-asm
740 C Undocumented
742 lang-objc
743 C ObjC C++ ObjC++ Undocumented
745 nostdinc
746 C ObjC C++ ObjC++
747 Do not search standard system include directories (those specified with -isystem will still be used)
749 nostdinc++
750 C++ ObjC++
751 Do not search standard system include directories for C++
754 C ObjC C++ ObjC++ Joined Separate
755 ; Documented in common.opt
757 pedantic
758 C ObjC C++ ObjC++
759 ; Documented in common.opt
761 pedantic-errors
762 C ObjC C++ ObjC++
763 ; Documented in common.opt
765 print-objc-runtime-info
766 ObjC ObjC++
767 Generate C header of platform-specific features
769 remap
770 C ObjC C++ ObjC++
771 Remap file names when including files
773 std=c++98
774 C++ ObjC++
775 Conform to the ISO 1998 C++ standard
777 std=c89
778 C ObjC
779 Conform to the ISO 1990 C standard
781 std=c99
782 C ObjC
783 Conform to the ISO 1999 C standard
785 std=c9x
786 C ObjC
787 Deprecated in favor of -std=c99
789 std=gnu++98
790 C++ ObjC++
791 Conform to the ISO 1998 C++ standard with GNU extensions
793 std=gnu89
794 C ObjC
795 Conform to the ISO 1990 C standard with GNU extensions
797 std=gnu99
798 C ObjC
799 Conform to the ISO 1999 C standard with GNU extensions
801 std=gnu9x
802 C ObjC
803 Deprecated in favor of -std=gnu99
805 std=iso9899:1990
806 C ObjC
807 Conform to the ISO 1990 C standard
809 std=iso9899:199409
810 C ObjC
811 Conform to the ISO 1990 C standard as amended in 1994
813 std=iso9899:1999
814 C ObjC
815 Conform to the ISO 1999 C standard
817 std=iso9899:199x
818 C ObjC
819 Deprecated in favor of -std=iso9899:1999
821 traditional-cpp
822 C ObjC C++ ObjC++
823 Enable traditional preprocessing
825 trigraphs
826 C ObjC C++ ObjC++
827 -trigraphs      Support ISO C trigraphs
829 undef
830 C ObjC C++ ObjC++
831 Do not predefine system-specific and GCC-specific macros
834 C ObjC C++ ObjC++
835 Enable verbose output
838 C ObjC C++ ObjC++
839 ; Documented in common.opt
841 ; This comment is to ensure we retain the blank line above.