X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fc.opt;h=c93fe7e895a538716a6e82baa17d322d17ce71d7;hb=1e5fcbe2009a34584768d8b8833756bc8de97dc3;hp=c09104ee81a2b180935af47cd6a692a9a6956dc2;hpb=1ab8a92425501c81153cb2a78dab40e537a97844;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/c.opt b/gcc/c.opt index c09104ee81a..c93fe7e895a 100644 --- a/gcc/c.opt +++ b/gcc/c.opt @@ -1,5 +1,5 @@ ; Options for the C, ObjC, C++ and ObjC++ front ends. -; Copyright (C) 2003 Free Software Foundation, Inc. +; Copyright (C) 2003, 2004 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -24,13 +24,38 @@ ; and each field appearing on its own line. The first field is the ; command-line switch with the leading "-" removed. All options ; beginning with "f" or "W" are implicitly assumed to take a "no-" -; form; this form should not be listed. +; form; this form should not be listed. If you do not want this +; negative form and you want it to be automatically rejected, add +; RejectNegative to the second field. ; The second field is a space-separated list of which parts of the -; compiler recognize the switch. Current valid entries are "C", -; "ObjC", "C++" and "ObjC++". If the switch takes an argument, then -; you should also specify "Joined" and/or "Separate" to indicate where -; the argument can appear. +; compiler recognize the switch, as declared by "Language" entries. +; If the switch takes an argument, then you should also specify +; "Joined" and/or "Separate" to indicate where the argument can +; appear. If a Joined argument can legitimately be omitted, specify +; "JoinedOrMissing" instead of "Joined". If the argument to a switch +; is a non-negative integer, you can specify "UInteger" and the switch +; decoder will convert the argument for you, or complain to the user +; if the argument is invalid. "Var(name,set)" creates an integer +; variable "name". The variable is declared and initialized to value +; given by "Init(value)" (or zero if this property is not defined). +; When the option is passed to compiler, this variable is set to "set" +; if value passed through the flag is nonzero, !"set" if value is zero, +; or to value if "set" is omitted. If "VarExists" is specified, the +; declaration for the variable is not created. If "Report" is specified, +; the flag is output with -fverbose-asm. + +; The third field is the help text to output with --help. This is +; automatically line-wrapped on output. Normally the switch is output +; automatically, with the help text on the right hand side of the +; output. However, if the help text contains a tab character, the +; text to the left of the tab is output instead of the switch, and the +; text to its right forms the help. This is useful for elaborating on +; what type of argument a switch takes, for example. If the second +; field contains "Undocumented" then nothing is output with --help. +; Only do this with good reason like the switch being internal between +; the driver and the front end - it is not an excuse to leave a switch +; undocumented. ; Comments can appear on their own line anwhere in the file, preceded ; by a semicolon. Whitespace is permitted before the semicolon. @@ -41,315 +66,447 @@ ; Please try to keep this file in ASCII collating order. --help -C ObjC C++ ObjC++ +Language +C + +Language +ObjC + +Language +C++ + +Language +ObjC++ -output-pch= C ObjC C++ ObjC++ Joined Separate A C ObjC C++ ObjC++ Joined Separate +-A= Assert the to . Putting '-' before disables the to C C ObjC C++ ObjC++ +Do not discard comments CC C ObjC C++ ObjC++ +Do not discard comments in macro expansions D C ObjC C++ ObjC++ Joined Separate +-D[=] Define a with as its value. If just is given, is taken to be 1 E -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Undocumented + +F +C ObjC C++ ObjC++ Joined Separate +-F Add to the end of the main framework include path H C ObjC C++ ObjC++ +Print the name of header files as they are used I C ObjC C++ ObjC++ Joined Separate +-I Add to the end of the main include path M C ObjC C++ ObjC++ +Generate make dependencies MD C ObjC C++ ObjC++ Separate +Generate make dependencies and compile MF C ObjC C++ ObjC++ Joined Separate +-MF Write dependency output to the given file MG C ObjC C++ ObjC++ +Treat missing header files as generated files MM C ObjC C++ ObjC++ +Like -M but ignore system header files MMD C ObjC C++ ObjC++ Separate +Like -MD but ignore system header files MP C ObjC C++ ObjC++ +Generate phony targets for all headers MQ C ObjC C++ ObjC++ Joined Separate +-MQ Add a MAKE-quoted target MT C ObjC C++ ObjC++ Joined Separate +-MT Add an unquoted target P C ObjC C++ ObjC++ +Do not generate #line directives U C ObjC C++ ObjC++ Joined Separate +-U Undefine Wabi -C++ ObjC++ +C++ ObjC++ Var(warn_abi) +Warn about things that will change when compiling with an ABI-compliant compiler Wall C ObjC C++ ObjC++ +Enable most warning messages Wbad-function-cast -C ObjC +C ObjC Var(warn_bad_function_cast) +Warn about casting functions to incompatible types Wcast-qual -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_cast_qual) +Warn about casts which discard qualifiers Wchar-subscripts -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_char_subscripts) +Warn about subscripts whose type is \"char\" Wcomment C ObjC C++ ObjC++ +Warn about possibly nested block comments, and C++ comments spanning more than one physical line Wcomments C ObjC C++ ObjC++ +Synonym for -Wcomment Wconversion -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_conversion) +Warn about possibly confusing type conversions Wctor-dtor-privacy -C++ ObjC++ +C++ ObjC++ Var(warn_ctor_dtor_privacy) +Warn when all constructors and destructors are private + +Wdeclaration-after-statement +C ObjC Var(warn_declaration_after_statement) +Warn when a declaration is found after a statement Wdeprecated -C++ ObjC++ +C++ ObjC++ Var(warn_deprecated) Init(1) +Warn about deprecated compiler features Wdiv-by-zero -C ObjC +C ObjC Var(warn_div_by_zero) Init(1) +Warn about compile-time integer division by zero Weffc++ -C++ ObjC++ +C++ ObjC++ Var(warn_ecpp) +Warn about violations of Effective C++ style rules Wendif-labels C ObjC C++ ObjC++ +Warn about stray tokens after #elif and #endif Werror C ObjC C++ ObjC++ +; Documented in common.opt Werror-implicit-function-declaration -C ObjC +C ObjC RejectNegative +Make implicit function declarations an error Wfloat-equal -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_float_equal) +Warn if testing floating point numbers for equality Wformat C ObjC C++ ObjC++ +Warn about printf/scanf/strftime/strfmon format string anomalies Wformat-extra-args -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_format_extra_args) +Warn if passing too many arguments to a function for its format string Wformat-nonliteral -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_format_nonliteral) +Warn about format strings that are not literals Wformat-security -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_format_security) +Warn about possible security problems with format functions Wformat-y2k -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_format_y2k) +Warn about strftime formats yielding 2-digit years Wformat-zero-length -C ObjC +C ObjC Var(warn_format_zero_length) +Warn about zero-length formats Wformat= C ObjC C++ ObjC++ Joined +Winit-self +C ObjC C++ ObjC++ Var(warn_init_self) +Warn about variables which are initialized to themselves. + Wimplicit C ObjC C++ ObjC++ Wimplicit-function-declaration -C ObjC +C ObjC Var(mesg_implicit_function_declaration) Init(-1) +Warn about implicit function declarations Wimplicit-int -C ObjC +C ObjC Var(warn_implicit_int) +Warn when a declaration does not specify a type Wimport C ObjC C++ ObjC++ +Deprecated. This switch has no effect. Winvalid-offsetof -C++ ObjC++ +C++ ObjC++ Var(warn_invalid_offsetof) Init(1) +Warn about invalid uses of the \"offsetof\" macro Winvalid-pch C ObjC C++ ObjC++ +Warn about PCH files that are found but not used Wlong-long -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_long_long) Init(1) +Do not warn about using \"long long\" when -pedantic Wmain C ObjC +Warn about suspicious declarations of \"main\" Wmissing-braces -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_missing_braces) +Warn about possibly missing braces around initializers Wmissing-declarations -C ObjC +C ObjC Var(warn_missing_declarations) +Warn about global functions without previous declarations + +Wmissing-field-initializers +C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) +Warn about missing fields in struct initializers Wmissing-format-attribute +C ObjC C++ ObjC++ Var(warn_missing_format_attribute) +Warn about functions which might be candidates for format attributes + +Wmissing-include-dirs C ObjC C++ ObjC++ +Warn about user-specified include directories that do not exist Wmissing-prototypes -C ObjC +C ObjC Var(warn_missing_prototypes) +Warn about global functions without prototypes Wmultichar C ObjC C++ ObjC++ +Warn about use of multi-character character constants Wnested-externs -C ObjC +C ObjC Var(warn_nested_externs) +Warn about \"extern\" declarations not at file scope Wnon-template-friend -C++ ObjC++ +C++ ObjC++ Var(warn_nontemplate_friend) Init(1) +Warn when non-templatized friend functions are declared within a template Wnon-virtual-dtor -C++ ObjC++ +C++ ObjC++ Var(warn_nonvdtor) +Warn about non-virtual destructors Wnonnull -C ObjC +C ObjC Var(warn_nonnull) +Warn about NULL being passed to argument slots marked as requiring non-NULL Wold-style-cast -C++ ObjC++ +C++ ObjC++ Var(warn_old_style_cast) +Warn if a C-style cast is used in a program + +Wold-style-definition +C ObjC Var(warn_old_style_definition) +Warn if an old-style parameter definition is used Woverloaded-virtual -C++ ObjC++ +C++ ObjC++ Var(warn_overloaded_virtual) +Warn about overloaded virtual function names Wparentheses -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_parentheses) +Warn about possibly missing parentheses Wpmf-conversions -C++ ObjC++ +C++ ObjC++ Var(warn_pmf2ptr) Init(1) +Warn when converting the type of pointers to member functions Wpointer-arith -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_pointer_arith) +Warn about function pointer arithmetic Wprotocol -ObjC ObjC++ +ObjC ObjC++ Var(warn_protocol) Init(1) +Warn if inherited methods are unimplemented Wredundant-decls -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_redundant_decls) +Warn about multiple declarations of the same object Wreorder -C++ ObjC++ +C++ ObjC++ Var(warn_reorder) +Warn when the compiler reorders code Wreturn-type C ObjC C++ ObjC++ +Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++) Wselector -ObjC ObjC++ +ObjC ObjC++ Var(warn_selector) +Warn if a selector has multiple methods Wsequence-point -C ObjC +C ObjC C++ ObjC++ Var(warn_sequence_point) +Warn about possible violations of sequence point rules Wsign-compare -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) +Warn about signed-unsigned comparisons Wsign-promo -C++ ObjC++ +C++ ObjC++ Var(warn_sign_promo) +Warn when overload promotes from unsigned to signed Wstrict-prototypes -C ObjC +C ObjC Var(warn_strict_prototypes) +Warn about unprototyped function declarations Wsynth -C++ ObjC++ +C++ ObjC++ Var(warn_synth) +Warn when synthesis behavior differs from Cfront Wsystem-headers C ObjC C++ ObjC++ +Do not suppress warnings from system headers Wtraditional -C ObjC +C ObjC Var(warn_traditional) +Warn about features not present in traditional C Wtrigraphs C ObjC C++ ObjC++ +Warn if trigraphs are encountered that might affect the meaning of the program Wundeclared-selector -ObjC ObjC++ +ObjC ObjC++ Var(warn_undeclared_selector) +Warn about @selector()s without previously declared methods Wundef C ObjC C++ ObjC++ +Warn if an undefined macro is used in an #if directive Wunknown-pragmas C ObjC C++ ObjC++ +Warn about unrecognized pragmas Wunused-macros C ObjC C++ ObjC++ +Warn about macros defined in the main file that are not used + +Wvariadic-macros +C ObjC C++ ObjC++ +Do not warn about using variadic macros when -pedantic Wwrite-strings C ObjC C++ ObjC++ +Give strings the type \"array of char\" ansi C ObjC C++ ObjC++ +A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead d C ObjC C++ ObjC++ Joined - -fabi-version= -C++ ObjC++ Joined +; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD? faccess-control C++ ObjC++ +Enforce class member access control semantics fall-virtual C++ ObjC++ falt-external-templates C++ ObjC++ +Change when template instances are emitted fasm C ObjC C++ ObjC++ +Recognize the \"asm\" keyword fbuiltin C ObjC C++ ObjC++ +Recognize built-in functions fbuiltin- C ObjC C++ ObjC++ Joined fcheck-new C++ ObjC++ +Check the return value of new fcond-mismatch C ObjC C++ ObjC++ +Allow the arguments of the '?' operator to have different types fconserve-space C++ ObjC++ +Reduce the size of object files fconst-strings C++ ObjC++ +Make string literals \"const char[]\" not \"char[]\" fconstant-string-class= ObjC ObjC++ Joined +-fconst-string-class= Use class for constant strings fdefault-inline C++ ObjC++ +Inline member functions by default fdollars-in-identifiers C ObjC C++ ObjC++ - -fdump- -C ObjC C++ ObjC++ Joined +Permit '$' as an identifier character felide-constructors C++ ObjC++ fenforce-eh-specs C++ ObjC++ +Generate code to check exception specifications fenum-int-equiv C++ ObjC++ +fexec-charset= +C ObjC C++ ObjC++ Joined RejectNegative +-fexec-charset= Convert all strings and character constants to character set + +finput-charset= +C ObjC C++ ObjC++ Joined RejectNegative +-finput-charset= Specify the default character set for source files. + + fexternal-templates C++ ObjC++ @@ -361,15 +518,19 @@ C ObjC Joined ffor-scope C++ ObjC++ +Scope of for-init-statement variables is local to the loop ffreestanding C ObjC +Do not assume that standard C libraries and \"main\" exist fgnu-keywords C++ ObjC++ +Recognize GNU-defined keywords fgnu-runtime ObjC ObjC++ +Generate code for GNU runtime environment fguiding-decls C++ ObjC++ @@ -382,24 +543,30 @@ C++ ObjC++ fhosted C ObjC +Assume normal C execution environment fhuge-objects C++ ObjC++ +Enable support for huge objects fimplement-inlines C++ ObjC++ +Export functions even if they can be inlined fimplicit-inline-templates C++ ObjC++ +Emit implicit instantiations of inline templates fimplicit-templates C++ ObjC++ +Emit implicit instantiations of templates flabels-ok C++ ObjC++ fms-extensions C ObjC C++ ObjC++ +Don't warn about uses of Microsoft extensions fname-mangling-version- C++ ObjC++ Joined @@ -409,6 +576,11 @@ C++ ObjC++ fnext-runtime ObjC ObjC++ +Generate code for NeXT (Apple Mac OS X) runtime environment + +fnil-receivers +ObjC ObjC++ +Assume that receivers of Objective-C messages may be nil fnonansi-builtins C++ ObjC++ @@ -416,187 +588,281 @@ C++ ObjC++ fnonnull-objects C++ ObjC++ +fobjc-exceptions +ObjC ObjC++ +Enable Objective-C exception and synchronization syntax + +fobjc-sjlj-exceptions +ObjC ObjC++ +Enable Objective-C setjmp exception handling runtime + foperator-names C++ ObjC++ +Recognize C++ kewords like \"compl\" and \"xor\" foptional-diags C++ ObjC++ +Enable optional diagnostics fpch-deps C ObjC C++ ObjC++ +fpch-preprocess +C ObjC C++ ObjC++ +Look for and use PCH files even when preprocessing + fpermissive C++ ObjC++ +Downgrade conformance errors to warnings fpreprocessed C ObjC C++ ObjC++ +Treat the input file as already preprocessed + +freplace-objc-classes +ObjC ObjC++ +Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime frepo C++ ObjC++ +Enable automatic template instantiation frtti C++ ObjC++ +Generate run time type descriptor information fshort-double C ObjC C++ ObjC++ +Use the same size for double as for float fshort-enums C ObjC C++ ObjC++ +Use the narrowest integer type possible for enumeration types fshort-wchar C ObjC C++ ObjC++ +Force the underlying type for \"wchar_t\" to be \"unsigned short\" fshow-column C ObjC C++ ObjC++ fsigned-bitfields C ObjC C++ ObjC++ +When \"signed\" or \"unsigned\" is not given make the bitfield signed fsigned-char C ObjC C++ ObjC++ +Make \"char\" signed by default fsquangle C++ ObjC++ fstats C++ ObjC++ +Display statistics accumulated during compilation fstrict-prototype C++ ObjC++ ftabstop= -C ObjC C++ ObjC++ Joined +C ObjC C++ ObjC++ Joined RejectNegative UInteger +-ftabstop= Distance between tab stops for column reporting ftemplate-depth- -C++ ObjC++ Joined +C++ ObjC++ Joined RejectNegative UInteger +-ftemplate-depth- Specify maximum template instantiation depth fthis-is-variable C++ ObjC++ +fthreadsafe-statics +C++ ObjC++ +-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics. + funsigned-bitfields C ObjC C++ ObjC++ +When \"signed\" or \"unsigned\" is not given make the bitfield unsigned funsigned-char C ObjC C++ ObjC++ +Make \"char\" unsigned by default fuse-cxa-atexit C++ ObjC++ +Use __cxa_atexit to register destructors + +fvisibility-inlines-hidden +C++ +Marks all inlined methods as having hidden visibility fvtable-gc C++ ObjC++ +Discard unused virtual functions fvtable-thunks C++ ObjC++ +Implement vtables using thunks fweak C++ ObjC++ +Emit common-like symbols as weak symbols + +fwide-exec-charset= +C ObjC C++ ObjC++ Joined RejectNegative +-fwide-exec-charset= Convert all wide strings and character constants to character set + +fworking-directory +C ObjC C++ ObjC++ +Generate a #line directive pointing at the current working directory fxref C++ ObjC++ +Emit cross referencing information + +fzero-link +ObjC ObjC++ +Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode gen-decls ObjC ObjC++ +Dump declarations to a .decl file idirafter C ObjC C++ ObjC++ Joined Separate +-idirafter Add to the end of the system include path imacros C ObjC C++ ObjC++ Joined Separate +-imacros Accept definition of macros in include C ObjC C++ ObjC++ Joined Separate +-include Include the contents of before other files iprefix C ObjC C++ ObjC++ Joined Separate +-iprefix Specify as a prefix for next two options isysroot C ObjC C++ ObjC++ Joined Separate +-isysroot Set to be the system root directory isystem C ObjC C++ ObjC++ Joined Separate +-isystem Add to the start of the system include path + +iquote +C ObjC C++ ObjC++ Joined Separate +-iquote Add to the end of the quote include path iwithprefix C ObjC C++ ObjC++ Joined Separate +-iwithprefix Add to the end of the system include path iwithprefixbefore C ObjC C++ ObjC++ Joined Separate +-iwithprefixbefore Add to the end of the main include path lang-asm -C +C Undocumented lang-objc -C ObjC C++ ObjC++ +C ObjC C++ ObjC++ Undocumented nostdinc C ObjC C++ ObjC++ +Do not search standard system include directories (those specified with -isystem will still be used) nostdinc++ -C ObjC C++ ObjC++ +C++ ObjC++ +Do not search standard system include directories for C++ o C ObjC C++ ObjC++ Joined Separate +; Documented in common.opt pedantic C ObjC C++ ObjC++ +; Documented in common.opt pedantic-errors C ObjC C++ ObjC++ +; Documented in common.opt print-objc-runtime-info ObjC ObjC++ +Generate C header of platform-specific features remap C ObjC C++ ObjC++ +Remap file names when including files std=c++98 C++ ObjC++ +Conform to the ISO 1998 C++ standard std=c89 C ObjC +Conform to the ISO 1990 C standard std=c99 C ObjC +Conform to the ISO 1999 C standard std=c9x C ObjC +Deprecated in favor of -std=c99 std=gnu++98 C++ ObjC++ +Conform to the ISO 1998 C++ standard with GNU extensions std=gnu89 C ObjC +Conform to the ISO 1990 C standard with GNU extensions std=gnu99 C ObjC +Conform to the ISO 1999 C standard with GNU extensions std=gnu9x C ObjC +Deprecated in favor of -std=gnu99 std=iso9899:1990 C ObjC +Deprecated in favor of -std=c89 std=iso9899:199409 C ObjC +Conform to the ISO 1990 C standard as amended in 1994 std=iso9899:1999 C ObjC +Deprecated in favor of -std=c99 std=iso9899:199x C ObjC +Deprecated in favor of -std=c99 traditional-cpp C ObjC C++ ObjC++ +Enable traditional preprocessing trigraphs C ObjC C++ ObjC++ +-trigraphs Support ISO C trigraphs undef C ObjC C++ ObjC++ +Do not predefine system-specific and GCC-specific macros v C ObjC C++ ObjC++ +Enable verbose output w C ObjC C++ ObjC++ +; Documented in common.opt ; This comment is to ensure we retain the blank line above.