; Options for the C, ObjC, C++ and ObjC++ front ends. ; Copyright (C) 2003, 2004 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. "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. ; 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 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 ; APPLE LOCAL -Wno-#warnings W#warnings C ObjC C++ ObjC++ Enable #warning Wabi 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 ; APPLE LOCAL begin ObjC GC Wassign-intercept ObjC ObjC++ Var(warn_assign_intercept) Warn whenever an ObjC assignment is being intercepted by the garbage collector ; APPLE LOCAL end ObjC GC Wbad-function-cast C ObjC Var(warn_bad_function_cast) Warn about casting functions to incompatible types Wcast-qual C ObjC C++ ObjC++ Var(warn_cast_qual) Warn about casts which discard qualifiers Wchar-subscripts 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++ Var(warn_conversion) Warn about possibly confusing type conversions ; APPLE LOCAL begin 64bit shorten warning 3865314 Wshorten-64-to-32 C ObjC C++ ObjC++ Var(warn_shorten_64_to_32) Warn if a value is implicitly converted from a 64 bit type to a 32 bit type Wctor-dtor-privacy 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++ Var(warn_deprecated) Init(1) Warn about deprecated compiler features Wdiv-by-zero C ObjC Var(warn_div_by_zero) Init(1) Warn about compile-time integer division by zero Weffc++ 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 RejectNegative Make implicit function declarations an error ; APPLE LOCAL -Wextra-tokens Wextra-tokens C ObjC C++ ObjC++ Warn about extra tokens at the end of prepreprocessor directives Wfloat-equal 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++ Var(warn_format_extra_args) Warn if passing too many arguments to a function for its format string Wformat-nonliteral C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warn about format strings that are not literals Wformat-security C ObjC C++ ObjC++ Var(warn_format_security) Warn about possible security problems with format functions Wformat-y2k C ObjC C++ ObjC++ Var(warn_format_y2k) Warn about strftime formats yielding 2-digit years Wformat-zero-length C ObjC Var(warn_format_zero_length) Warn about zero-length formats Wformat= C ObjC C++ ObjC++ Joined ; APPLE LOCAL -Wfour-char-constants Wfour-char-constants C ObjC C++ ObjC++ Warn about multicharacter constants containing exactly four characters 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 Var(mesg_implicit_function_declaration) Init(-1) Warn about implicit function declarations Wimplicit-int 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++ 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 ; APPLE LOCAL -Wlong-double Wlong-double C ObjC C++ ObjC++ Warn about \"long double\" Wlong-long 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++ Var(warn_missing_braces) Warn about possibly missing braces around initializers Wmissing-declarations 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 Var(warn_missing_prototypes) Warn about global functions without prototypes ; APPLE LOCAL -Wmost Wmost C ObjC C++ ObjC++ Like -Wall but without -Wparentheses Wmultichar C ObjC C++ ObjC++ Warn about use of multi-character character constants Wnested-externs C ObjC Var(warn_nested_externs) Warn about \"extern\" declarations not at file scope ; APPLE LOCAL -Wnewline-eof Wnewline-eof C ObjC C++ ObjC++ Warn about files missing a newline at the end of the file ; APPLE LOCAL begin non lvalue assign Wnon-lvalue-assign C ObjC C++ ObjC++ Var(warn_non_lvalue_assign) Init(1) Warn about assignment to casts and conditional expressions of lvalues ; APPLE LOCAL end non lvalue assign Wnon-template-friend C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warn when non-templatized friend functions are declared within a template Wnon-virtual-dtor C++ ObjC++ Var(warn_nonvdtor) Warn about non-virtual destructors Wnonnull C ObjC Var(warn_nonnull) Warn about NULL being passed to argument slots marked as requiring non-NULL Wold-style-cast 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++ Var(warn_overloaded_virtual) Warn about overloaded virtual function names Wparentheses C ObjC C++ ObjC++ Var(warn_parentheses) Warn about possibly missing parentheses Wpmf-conversions C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warn when converting the type of pointers to member functions Wpointer-arith C ObjC C++ ObjC++ Var(warn_pointer_arith) Warn about function pointer arithmetic Wprotocol ObjC ObjC++ Var(warn_protocol) Init(1) Warn if inherited methods are unimplemented Wredundant-decls C ObjC C++ ObjC++ Var(warn_redundant_decls) Warn about multiple declarations of the same object Wreorder 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++ Var(warn_selector) Warn if a selector has multiple methods Wsequence-point C ObjC C++ ObjC++ Var(warn_sequence_point) Warn about possible violations of sequence point rules Wsign-compare C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warn about signed-unsigned comparisons Wsign-promo C++ ObjC++ Var(warn_sign_promo) Warn when overload promotes from unsigned to signed Wstrict-prototypes C ObjC Var(warn_strict_prototypes) Warn about unprototyped function declarations ; APPLE LOCAL begin Objective-C Wstrict-selector-match ObjC ObjC++ Var(warn_strict_selector_match) Warn if type signatures of candidate methods do not match exactly ; APPLE LOCAL end Objective-C Wsynth 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 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++ 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\" Wpointer-sign C ObjC Var(warn_pointer_sign) Init(1) Warn when a pointer differs in signedness in an assignment. ansi C ObjC C++ ObjC++ A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead ; APPLE LOCAL fat builds arch C ObjC C++ ObjC++ Separate The architecture to build for. 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 ; APPLE LOCAL begin Altivec 3837840 faltivec C ObjC C++ ObjC++ Var(flag_faltivec) Enable Altivec ; APPLE LOCAL end Altivec 3837840 fasm C ObjC C++ ObjC++ Recognize the \"asm\" keyword ; APPLE LOCAL CW asm blocks fasm-blocks C ObjC C++ ObjC++ Handle CW-style assembly blocks ; APPLE LOCAL -fast or -fastf or -fastcp fast C C++ Used for c or c++ optimization fastcp C++ Used when C++ specific optimization is needed fastf C Used when c is generated from NAG fortran 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 ; APPLE LOCAL structor decloning fclone-structors C++ ObjC++ Factor out certain duplicate code in constructors and destructors 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 ; APPLE LOCAL disable_typechecking_for_spec_flag */ fdisable-typechecking-for-spec C C++ Make crossfile type mismatches warnings not errors (for SPEC) fdollars-in-identifiers C ObjC C++ ObjC++ 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++ 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 ; APPLE LOCAL begin non lvalue assign fnon-lvalue-assign C ObjC C++ ObjC++ Var(flag_non_lvalue_assign) Init(1) Allow assignment to casts and conditional expressions of lvalues ; APPLE LOCAL end non lvalue assign fnonansi-builtins C++ ObjC++ fnonnull-objects C++ ObjC++ ; APPLE LOCAL begin ObjC C++ ivars fobjc-call-cxx-cdtors ObjC++ Generate special ObjC methods to initialize/destroy non-POD C++ ivars, if needed ; APPLE LOCAL end ObjC C++ ivars ; APPLE LOCAL begin ObjC direct dispatch fobjc-direct-dispatch ObjC ObjC++ Var(flag_objc_direct_dispatch) Allow fast jumps (via comm page) to the message dispatcher ; APPLE LOCAL end ObjC direct dispatch fobjc-exceptions ObjC ObjC++ Enable Objective-C exception and synchronization syntax ; APPLE LOCAL begin ObjC GC fobjc-gc ObjC ObjC++ Var(flag_objc_gc) Enable garbage collection (GC) in ObjC/ObjC++ programs ; APPLE LOCAL end ObjC GC 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 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++ 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 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.