; Options for the C, ObjC, C++ and ObjC++ front ends. ; Copyright (C) 2003, 2004, 2005, 2006 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, 51 Franklin Street, Fifth Floor, Boston, MA ; 02110-1301, USA. ; See the GCC internals manual for a description of this file's format. ; $FreeBSD$ ; 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 Wabi C++ ObjC++ Var(warn_abi) Warn about things that will change when compiling with an ABI-compliant compiler Waddress C ObjC C++ ObjC++ Var(warn_address) Warn about suspicious uses of memory addresses Wall C ObjC C++ ObjC++ Enable most warning messages Wassign-intercept ObjC ObjC++ Var(warn_assign_intercept) Warn whenever an Objective-C assignment is being intercepted by the garbage collector Wbad-function-cast C ObjC Var(warn_bad_function_cast) Warn about casting functions to incompatible types Wc++-compat C ObjC Var(warn_cxx_compat) Warn about C constructs that are not in the common subset of C and C++ 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 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 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 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 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 Wint-to-pointer-cast C ObjC Var(warn_int_to_pointer_cast) Init(1) Warn when there is a cast to a pointer from an integer of a different size 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 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 ; APPLE LOCAL begin warn missing prototype 6261539 Wmissing-prototypes C ObjC C++ ObjC++ Var(warn_missing_prototypes) Warn about global functions without prototypes ; APPLE LOCAL end warn missing prototype 6261539 ; APPLE LOCAL begin -Wmost Wmost C ObjC C++ ObjC++ Like -Wall but without -Wparentheses ; APPLE LOCAL end -Wmost 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 begin -Wnewline-eof Wnewline-eof C ObjC C++ ObjC++ Warn about files missing a newline at the end of the file ; APPLE LOCAL end -Wnewline-eof 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 Wnormalized= C ObjC C++ ObjC++ Joined -Wnormalized= Warn about non-normalised Unicode strings 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 Woverlength-strings C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warn if a string is longer than the maximum portable length specified by the standard Woverloaded-virtual C++ ObjC++ Var(warn_overloaded_virtual) Warn about overloaded virtual function names Woverride-init C ObjC Var(warn_override_init) Init(-1) Warn about overriding initializers without side effects 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 Wpointer-to-int-cast C ObjC Var(warn_pointer_to_int_cast) Init(1) Warn when a pointer is cast to an integer of a different size Wpragmas C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warn about misuses of pragmas 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++ Var(warn_return_type) 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-null-sentinel C++ ObjC++ Warn about uncasted NULL used as sentinel Wstrict-prototypes C ObjC Var(warn_strict_prototypes) Warn about unprototyped function declarations Wstrict-selector-match ObjC ObjC++ Var(warn_strict_selector_match) Warn if type signatures of candidate methods do not match exactly 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 Wtrampolines Common Var(warn_trampolines) Warn when trampolines are emitted 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 Wvla C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning Warn if a variable length array is used Wwrite-strings C ObjC C++ ObjC++ Var(warn_write_strings) 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. 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 (for C) or -std=c++98 (for C++) 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 fconstant-string-class= ObjC ObjC++ Joined -fconst-string-class= Use class for constant strings fdefault-inline C++ ObjC++ Inline member functions by default fdirectives-only C ObjC C++ ObjC++ Preprocess directives only. 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 fextended-identifiers C ObjC C++ ObjC++ Permit universal character names (\\u and \\U) in identifiers finput-charset= C ObjC C++ ObjC++ Joined RejectNegative -finput-charset= Specify the default character set for source files fexternal-templates C++ ObjC++ 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 fgnu89-inline C ObjC Var(flag_gnu89_inline) Init(-1) Use traditional GNU semantics for inline functions 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 ffriend-injection C++ ObjC++ Var(flag_friend_injection) Inject friend functions into enclosing namespace flabels-ok C++ ObjC++ flax-vector-conversions C ObjC C++ ObjC++ Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types. fms-extensions C ObjC C++ ObjC++ Don't warn about uses of Microsoft extensions fname-mangling-version- C++ ObjC++ Joined fnew-abi C++ ObjC++ ; APPLE LOCAL begin nested functions 4258406 4357979 fnested-functions C ObjC Var(flag_nested_functions) Allow nested functions. ; APPLE LOCAL end nested functions 4258406 4357979 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++ ; 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. fobjc-exceptions ObjC ObjC++ Var(flag_objc_exceptions) Enable Objective-C exception and synchronization syntax fobjc-gc ObjC ObjC++ Var(flag_objc_gc) Enable garbage collection (GC) in Objective-C/Objective-C++ programs ; APPLE LOCAL begin radar 5811887 - blocks fblocks C ObjC C++ ObjC++ Var(flag_blocks) Init(-1) Program supports c/objc extension blocks ; APPLE LOCAL end radar 5811887 - blocks ; Nonzero means that we generate NeXT setjmp based exceptions. fobjc-sjlj-exceptions ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1) Enable Objective-C setjmp exception handling runtime fopenmp C ObjC C++ ObjC++ Var(flag_openmp) Enable OpenMP 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\" 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 fuse-cxa-get-exception-ptr C++ ObjC++ Use __cxa_get_exception_ptr in exception handling fvisibility-inlines-hidden C++ ObjC++ Marks all inlined methods as having hidden visibility fvisibility-ms-compat C++ ObjC++ Var(flag_visibility_ms_compat) Changes visibility to match Microsoft Visual Studio by default 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 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= Detailed reduced debug info for structs 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 imultilib C ObjC C++ ObjC++ Joined Separate -imultilib Set to be the multilib include subdirectory 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-fortran 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 print-pch-checksum C ObjC C++ ObjC++ Print a checksum of the executable for PCH validity checking, and stop 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 Conform to the ISO 1990 C standard std=iso9899:199409 C ObjC Conform to the ISO 1990 C standard as amended in 1994 std=iso9899:1999 C ObjC Conform to the ISO 1999 C standard std=iso9899:199x C ObjC Deprecated in favor of -std=iso9899:1999 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.