; Options for the C, ObjC, C++ and ObjC++ front ends. ; Copyright (C) 2003 Free Software Foundation, Inc. ; ; 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 ; Software Foundation; either version 2, or (at your option) any later ; version. ; ; 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. ; ; You should have received a copy of the GNU General Public License ; along with GCC; see the file COPYING. If not, write to the Free ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ; 02111-1307, USA. ; This file is processed by the script opts.sh. It is a database of ; command line options, with each record separated by a blank line, ; 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. 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, 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. ; 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. ; For each switch XXX below, an enumeration constant is created by the ; script opts.sh spelt OPT_XXX, but with all non-alphanumeric ; characters replaced with an underscore. ; Please try to keep this file in ASCII collating order. 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++ Undocumented 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. -I- gives more include path control; see info documentation 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++ Wall C ObjC C++ ObjC++ Enable most warning messages Wbad-function-cast C ObjC Warn about casting functions to incompatible types Wcast-qual C ObjC C++ ObjC++ Warn about casts which discard qualifiers Wchar-subscripts C ObjC C++ ObjC++ 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++ Warn about possibly confusing type conversions Wctor-dtor-privacy C++ ObjC++ Warn when all constructors and destructors are private Wdeclaration-after-statement C ObjC Warn when a declaration is found after a statement Wdeprecated C++ ObjC++ Warn about deprecated compiler features Wdiv-by-zero C ObjC Warn about compile-time integer division by zero Weffc++ C++ ObjC++ 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 RejectNegative Make implicit function declarations an error Wfloat-equal C ObjC C++ ObjC++ 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++ Warn if passing too many arguments to a function for its format string Wformat-nonliteral C ObjC C++ ObjC++ Warn about format strings that are not literals Wformat-security C ObjC C++ ObjC++ Warn about possible security problems with format functions Wformat-y2k C ObjC C++ ObjC++ Warn about strftime formats yielding 2-digit years Wformat-zero-length C ObjC Wformat= C ObjC C++ ObjC++ Joined Winit-self C ObjC C++ ObjC++ Warn about variables which are initialized to themselves. Wimplicit C ObjC C++ ObjC++ Wimplicit-function-declaration C ObjC Warn about implicit function declarations Wimplicit-int C ObjC Warn when a declaration does not specify a type Wimport C ObjC C++ ObjC++ Deprecated. This switch has no effect. Winvalid-offsetof C++ ObjC++ 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++ Do not warn about using \"long long\" when -pedantic Wmain C ObjC Warn about suspicious declarations of \"main\" Wmissing-braces C ObjC C++ ObjC++ Warn about possibly missing braces around initializers Wmissing-declarations C ObjC Warn about global functions without previous declarations Wmissing-format-attribute C ObjC C++ ObjC++ Warn about functions which might be candidates for format attributes Wmissing-prototypes C ObjC Warn about global functions without prototypes Wmultichar C ObjC C++ ObjC++ Warn about use of multi-character character constants Wnested-externs C ObjC Warn about \"extern\" declarations not at file scope Wnon-template-friend C++ ObjC++ Warn when non-templatized friend functions are declared within a template Wnon-virtual-dtor C++ ObjC++ Warn about non-virtual destructors Wnonnull C ObjC Wold-style-cast C++ ObjC++ Warn if a C-style cast is used in a program Wold-style-definition C ObjC Warn if an old-style parameter definition is used Woverloaded-virtual C++ ObjC++ Warn about overloaded virtual function names Wparentheses C ObjC C++ ObjC++ Warn about possibly missing parentheses Wpmf-conversions C++ ObjC++ Warn when converting the type of pointers to member functions Wpointer-arith C ObjC C++ ObjC++ Warn about function pointer arithmetic Wprotocol ObjC ObjC++ Warn if inherited methods are unimplemented Wredundant-decls C ObjC C++ ObjC++ Warn about multiple declarations of the same object Wreorder C++ ObjC++ 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++ Warn if a selector has multiple methods Wsequence-point C ObjC Warn about possible violations of sequence point rules Wsign-compare C ObjC C++ ObjC++ Warn about signed-unsigned comparisons Wsign-promo C++ ObjC++ Warn when overload promotes from unsigned to signed Wstrict-prototypes C ObjC Warn about unprototyped function declarations Wsynth C++ ObjC++ Warn when synthesis behavior differs from Cfront Wsystem-headers C ObjC C++ ObjC++ Do not suppress warnings from system headers Wtraditional C ObjC 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++ 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 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 ; 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++ Permit '$' as an identifier character fdump- C ObjC C++ ObjC++ Joined RejectNegative -fdump- Dump various compiler internals to a file 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++ ffixed-form C ObjC ffixed-line-length- 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++ fhandle-exceptions C++ ObjC++ fhonor-std 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 fnew-abi 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++ fnonnull-objects C++ ObjC++ fobjc-exceptions ObjC ObjC++ Enable Objective-C exception and synchronization syntax foperator-names C++ ObjC++ Recognize C++ kewords like \"compl\" and \"xor\" foptional-diags C++ ObjC++ Enable optional diagnostics fpch-deps C ObjC C++ ObjC++ 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 RejectNegative UInteger -ftabstop= Distance between tab stops for column reporting ftemplate-depth- C++ ObjC++ Joined RejectNegative UInteger -ftemplate-depth- Specify maximum template instantiation depth fthis-is-variable C++ ObjC++ 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 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 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 Undocumented lang-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++ 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.