; Options for the C, ObjC, C++ and ObjC++ front ends.
-; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
+; 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
+; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; 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.
+; along with GCC; see the file COPYING3. If not see
+; <http://www.gnu.org/licenses/>.
; See the GCC internals manual for a description of this file's format.
-U<macro> Undefine <macro>
Wabi
-C++ ObjC++ Var(warn_abi)
+C ObjC C++ ObjC++ Var(warn_abi) Warning
Warn about things that will change when compiling with an ABI-compliant compiler
+Wpsabi
+C ObjC C++ ObjC++ Var(warn_psabi) Init(1) Undocumented
+
+Waddress
+C ObjC C++ ObjC++ Var(warn_address) Warning
+Warn about suspicious uses of memory addresses
+
Wall
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Enable most warning messages
Wassign-intercept
-ObjC ObjC++ Var(warn_assign_intercept)
+ObjC ObjC++ Var(warn_assign_intercept) Warning
Warn whenever an Objective-C assignment is being intercepted by the garbage collector
Wbad-function-cast
-C ObjC Var(warn_bad_function_cast)
+C ObjC Var(warn_bad_function_cast) Warning
Warn about casting functions to incompatible types
+Wbuiltin-macro-redefined
+C ObjC C++ ObjC++ Warning
+Warn when a built-in preprocessor macro is undefined or redefined
+
Wc++-compat
-C Var(warn_cxx_compat)
+C ObjC Var(warn_cxx_compat) Warning
Warn about C constructs that are not in the common subset of C and C++
+Wc++0x-compat
+C++ ObjC++ Var(warn_cxx0x_compat) Warning
+Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x
Wcast-qual
-C ObjC C++ ObjC++ Var(warn_cast_qual)
+C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
Warn about casts which discard qualifiers
Wchar-subscripts
-C ObjC C++ ObjC++ Var(warn_char_subscripts)
+C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning
Warn about subscripts whose type is \"char\"
+Wclobbered
+C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning
+Warn about variables that might be changed by \"longjmp\" or \"vfork\"
+
Wcomment
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about possibly nested block comments, and C++ comments spanning more than one physical line
Wcomments
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Synonym for -Wcomment
Wconversion
-C ObjC C++ ObjC++ Var(warn_conversion)
-Warn about possibly confusing type conversions
+C ObjC C++ ObjC++ Var(warn_conversion) Warning
+Warn for implicit type conversions that may change a value
+
+Wsign-conversion
+C ObjC C++ ObjC++ Var(warn_sign_conversion) Init(-1)
+Warn for implicit type conversions between signed and unsigned integers
Wctor-dtor-privacy
-C++ ObjC++ Var(warn_ctor_dtor_privacy)
+C++ ObjC++ Var(warn_ctor_dtor_privacy) Warning
Warn when all constructors and destructors are private
Wdeclaration-after-statement
-C ObjC Var(warn_declaration_after_statement)
+C ObjC Var(warn_declaration_after_statement) Warning
Warn when a declaration is found after a statement
Wdeprecated
-C++ ObjC++ Var(warn_deprecated) Init(1)
-Warn about deprecated compiler features
+C C++ ObjC ObjC++ Var(warn_deprecated) Init(1) Warning
+Warn if a deprecated compiler feature, class, method, or field is used
Wdiv-by-zero
-C ObjC C++ Var(warn_div_by_zero) Init(1)
+C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
Warn about compile-time integer division by zero
Weffc++
-C++ ObjC++ Var(warn_ecpp)
+C++ ObjC++ Var(warn_ecpp) Warning
Warn about violations of Effective C++ style rules
+Wempty-body
+C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning
+Warn about an empty body in an if or else statement
+
Wendif-labels
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about stray tokens after #elif and #endif
+Wenum-compare
+C ObjC C++ ObjC++ Var(warn_enum_compare) Init(-1) Warning
+Warn about comparison of different enum types
+
Werror
C ObjC C++ ObjC++
; Documented in common.opt
Werror-implicit-function-declaration
-C ObjC RejectNegative
-Make implicit function declarations an error
+C ObjC RejectNegative Warning
+This switch is deprecated; use -Werror=implicit-function-declaration instead
Wfloat-equal
-C ObjC C++ ObjC++ Var(warn_float_equal)
+C ObjC C++ ObjC++ Var(warn_float_equal) Warning
Warn if testing floating point numbers for equality
Wformat
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about printf/scanf/strftime/strfmon format string anomalies
Wformat-extra-args
-C ObjC C++ ObjC++ Var(warn_format_extra_args)
+C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning
Warn if passing too many arguments to a function for its format string
Wformat-nonliteral
-C ObjC C++ ObjC++ Var(warn_format_nonliteral)
+C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning
Warn about format strings that are not literals
+Wformat-contains-nul
+C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning
+Warn about format strings that contain NUL bytes
+
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security)
+C ObjC C++ ObjC++ Var(warn_format_security) Warning
Warn about possible security problems with format functions
Wformat-y2k
-C ObjC C++ ObjC++ Var(warn_format_y2k)
+C ObjC C++ ObjC++ Var(warn_format_y2k) Warning
Warn about strftime formats yielding 2-digit years
Wformat-zero-length
-C ObjC Var(warn_format_zero_length)
+C ObjC Var(warn_format_zero_length) Warning
Warn about zero-length formats
Wformat=
-C ObjC C++ ObjC++ Joined
+C ObjC C++ ObjC++ Joined Warning
+
+Wignored-qualifiers
+C C++ Var(warn_ignored_qualifiers) Init(-1) Warning
+Warn whenever type qualifiers are ignored.
Winit-self
-C ObjC C++ ObjC++ Var(warn_init_self)
+C ObjC C++ ObjC++ Var(warn_init_self) Warning
Warn about variables which are initialized to themselves
Wimplicit
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Wimplicit-function-declaration
-C ObjC Var(mesg_implicit_function_declaration) Init(-1)
+C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning
Warn about implicit function declarations
Wimplicit-int
-C ObjC Var(warn_implicit_int)
+C ObjC Var(warn_implicit_int) Warning
Warn when a declaration does not specify a type
Wimport
-C ObjC C++ ObjC++
-Deprecated. This switch has no effect
+C ObjC C++ ObjC++ Undocumented
Wint-to-pointer-cast
-C ObjC Var(warn_int_to_pointer_cast) Init(1)
+C ObjC Var(warn_int_to_pointer_cast) Init(1) Warning
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)
+C++ ObjC++ Var(warn_invalid_offsetof) Init(1) Warning
Warn about invalid uses of the \"offsetof\" macro
Winvalid-pch
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about PCH files that are found but not used
+Wjump-misses-init
+C Objc Var(warn_jump_misses_init) Init(-1) Warning
+Warn when a jump misses a variable initialization
+
+Wlogical-op
+C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
+Warn when a logical operator is suspiciously always evaluating to true or false
+
Wlong-long
-C ObjC C++ ObjC++ Var(warn_long_long) Init(1)
+C ObjC C++ ObjC++ Var(warn_long_long) Init(-1) Warning
Do not warn about using \"long long\" when -pedantic
Wmain
-C ObjC
+C ObjC C++ ObjC++ Var(warn_main) Init(-1) Warning
Warn about suspicious declarations of \"main\"
Wmissing-braces
-C ObjC C++ ObjC++ Var(warn_missing_braces)
+C ObjC C++ ObjC++ Var(warn_missing_braces) Warning
Warn about possibly missing braces around initializers
Wmissing-declarations
-C ObjC Var(warn_missing_declarations)
+C ObjC C++ ObjC++ Var(warn_missing_declarations) Warning
Warn about global functions without previous declarations
Wmissing-field-initializers
-C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1)
+C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Init(-1) Warning
Warn about missing fields in struct initializers
Wmissing-format-attribute
-C ObjC C++ ObjC++ Var(warn_missing_format_attribute)
+C ObjC C++ ObjC++ Var(warn_missing_format_attribute) Warning
Warn about functions which might be candidates for format attributes
Wmissing-include-dirs
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about user-specified include directories that do not exist
+Wmissing-parameter-type
+C ObjC Var(warn_missing_parameter_type) Init(-1) Warning
+Warn about function parameters declared without a type specifier in K&R-style functions
+
Wmissing-prototypes
-C ObjC Var(warn_missing_prototypes)
+C ObjC Var(warn_missing_prototypes) Warning
Warn about global functions without prototypes
Wmultichar
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about use of multi-character character constants
Wnested-externs
-C ObjC Var(warn_nested_externs)
+C ObjC Var(warn_nested_externs) Warning
Warn about \"extern\" declarations not at file scope
Wnon-template-friend
-C++ ObjC++ Var(warn_nontemplate_friend) Init(1)
+C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
Warn when non-templatized friend functions are declared within a template
Wnon-virtual-dtor
-C++ ObjC++ Var(warn_nonvdtor)
+C++ ObjC++ Var(warn_nonvdtor) Warning
Warn about non-virtual destructors
Wnonnull
-C ObjC Var(warn_nonnull)
+C ObjC Var(warn_nonnull) Warning
Warn about NULL being passed to argument slots marked as requiring non-NULL
Wnormalized=
-C ObjC C++ ObjC++ Joined
+C ObjC C++ ObjC++ Joined Warning
-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
Wold-style-cast
-C++ ObjC++ Var(warn_old_style_cast)
+C++ ObjC++ Var(warn_old_style_cast) Warning
Warn if a C-style cast is used in a program
+Wold-style-declaration
+C ObjC Var(warn_old_style_declaration) Init(-1) Warning
+Warn for obsolescent usage in a declaration
+
Wold-style-definition
-C ObjC Var(warn_old_style_definition)
+C ObjC Var(warn_old_style_definition) Warning
Warn if an old-style parameter definition is used
Woverlength-strings
-C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1)
+C ObjC C++ ObjC++ Var(warn_overlength_strings) Init(-1) Warning
Warn if a string is longer than the maximum portable length specified by the standard
Woverloaded-virtual
-C++ ObjC++ Var(warn_overloaded_virtual)
+C++ ObjC++ Var(warn_overloaded_virtual) Warning
Warn about overloaded virtual function names
Woverride-init
-C ObjC Var(warn_override_init) Init(-1)
+C ObjC Var(warn_override_init) Init(-1) Warning
Warn about overriding initializers without side effects
+Wpacked-bitfield-compat
+C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
+Warn about packed bit-fields whose offset changed in GCC 4.4
+
Wparentheses
-C ObjC C++ ObjC++ Var(warn_parentheses)
+C ObjC C++ ObjC++ Var(warn_parentheses) Warning
Warn about possibly missing parentheses
Wpmf-conversions
-C++ ObjC++ Var(warn_pmf2ptr) Init(1)
+C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
Warn when converting the type of pointers to member functions
Wpointer-arith
-C ObjC C++ ObjC++ Var(warn_pointer_arith)
+C ObjC C++ ObjC++ Var(warn_pointer_arith) Warning
Warn about function pointer arithmetic
Wpointer-to-int-cast
-C ObjC Var(warn_pointer_to_int_cast) Init(1)
+C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
Warn when a pointer is cast to an integer of a different size
Wpragmas
-C ObjC C++ ObjC++ Var(warn_pragmas) Init(1)
+C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
Warn about misuses of pragmas
Wprotocol
-ObjC ObjC++ Var(warn_protocol) Init(1)
+ObjC ObjC++ Var(warn_protocol) Init(1) Warning
Warn if inherited methods are unimplemented
Wredundant-decls
-C ObjC C++ ObjC++ Var(warn_redundant_decls)
+C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
Warn about multiple declarations of the same object
Wreorder
-C++ ObjC++ Var(warn_reorder)
+C++ ObjC++ Var(warn_reorder) Warning
Warn when the compiler reorders code
Wreturn-type
-C ObjC C++ ObjC++ Var(warn_return_type)
+C ObjC C++ ObjC++ Var(warn_return_type) Warning
Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
Wselector
-ObjC ObjC++ Var(warn_selector)
+ObjC ObjC++ Var(warn_selector) Warning
Warn if a selector has multiple methods
Wsequence-point
-C ObjC C++ ObjC++ Var(warn_sequence_point)
+C ObjC C++ ObjC++ Var(warn_sequence_point) Warning
Warn about possible violations of sequence point rules
Wsign-compare
-C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1)
+C ObjC C++ ObjC++ Var(warn_sign_compare) Init(-1) Warning
Warn about signed-unsigned comparisons
Wsign-promo
-C++ ObjC++ Var(warn_sign_promo)
+C++ ObjC++ Var(warn_sign_promo) Warning
Warn when overload promotes from unsigned to signed
Wstrict-null-sentinel
-C++ ObjC++
+C++ ObjC++ Warning
Warn about uncasted NULL used as sentinel
Wstrict-prototypes
-C ObjC Var(warn_strict_prototypes)
+C ObjC Var(warn_strict_prototypes) Warning
Warn about unprototyped function declarations
Wstrict-selector-match
-ObjC ObjC++ Var(warn_strict_selector_match)
+ObjC ObjC++ Var(warn_strict_selector_match) Warning
Warn if type signatures of candidate methods do not match exactly
+Wsync-nand
+C C++ Var(warn_sync_nand) Init(1) Warning
+Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used
+
Wsynth
-C++ ObjC++ Var(warn_synth)
-Warn when synthesis behavior differs from Cfront
+C++ ObjC++ Var(warn_synth) Warning
+Deprecated. This switch has no effect
Wsystem-headers
-C ObjC C++ ObjC++
-Do not suppress warnings from system headers
+C ObjC C++ ObjC++ Warning
+; Documented in common.opt
Wtraditional
-C ObjC Var(warn_traditional)
+C ObjC Var(warn_traditional) Warning
Warn about features not present in traditional C
+Wtraditional-conversion
+C ObjC Var(warn_traditional_conversion) Warning
+Warn of prototypes causing type conversions different from what would happen in the absence of prototype
+
Wtrigraphs
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn if trigraphs are encountered that might affect the meaning of the program
Wundeclared-selector
-ObjC ObjC++ Var(warn_undeclared_selector)
+ObjC ObjC++ Var(warn_undeclared_selector) Warning
Warn about @selector()s without previously declared methods
Wundef
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn if an undefined macro is used in an #if directive
Wunknown-pragmas
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about unrecognized pragmas
+Wunsuffixed-float-constants
+C ObjC Var(warn_unsuffixed_float_constants) Warning
+Warn about unsuffixed float constants
+
Wunused-macros
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
Warn about macros defined in the main file that are not used
+Wunused-result
+C ObjC C++ ObjC++ Var(warn_unused_result) Init(1) Warning
+Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value
+
Wvariadic-macros
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
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
+
+Wvolatile-register-var
+C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning
+Warn when a register variable is declared volatile
+
Wwrite-strings
-C ObjC C++ ObjC++ Var(warn_write_strings)
+C ObjC C++ ObjC++ Var(warn_write_strings) Warning
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)
+C ObjC Var(warn_pointer_sign) Init(-1) Warning
Warn when a pointer differs in signedness in an assignment
ansi
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
fexternal-templates
C++ ObjC++
-ffixed-form
-C ObjC
-
-ffixed-line-length-none
-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
+C ObjC C++ ObjC++
Do not assume that standard C libraries and \"main\" exist
fgnu-keywords
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++
+C++ ObjC++ Optimization
fhonor-std
C++ ObjC++
Emit implicit instantiations of templates
ffriend-injection
-C++ Var(flag_friend_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
fopenmp
C ObjC C++ ObjC++ Var(flag_openmp)
-Enable OpenMP
+Enable OpenMP (implies -frecursive in Fortran)
foperator-names
C++ ObjC++
-Recognize C++ kewords like \"compl\" and \"xor\"
+Recognize C++ keywords like \"compl\" and \"xor\"
foptional-diags
C++ ObjC++
C ObjC C++ ObjC++
Treat the input file as already preprocessed
+fpretty-templates
+C++ ObjC++
+-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments
+
freplace-objc-classes
ObjC ObjC++
Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
Enable automatic template instantiation
frtti
-C++ ObjC++
+C++ ObjC++ Optimization
Generate run time type descriptor information
fshort-double
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Optimization
Use the same size for double as for float
fshort-enums
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Optimization
Use the narrowest integer type possible for enumeration types
fshort-wchar
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Optimization
Force the underlying type for \"wchar_t\" to be \"unsigned short\"
fsigned-bitfields
C++ ObjC++
fthreadsafe-statics
-C++ ObjC++
+C++ ObjC++ Optimization
-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
funsigned-bitfields
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
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=<spec-list> Detailed reduced debug info for structs
+
idirafter
C ObjC C++ ObjC++ Joined Separate
-idirafter <dir> Add <dir> to the end of the system include path
lang-asm
C Undocumented
-lang-fortran
-C Undocumented
-
lang-objc
C ObjC C++ ObjC++ Undocumented
Do not predefine system-specific and GCC-specific macros
v
-C ObjC C++ ObjC++
+Common C ObjC C++ ObjC++
Enable verbose output
w