OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / c.opt
index c5bf9be..01d6428 100644 (file)
--- a/gcc/c.opt
+++ b/gcc/c.opt
@@ -1,11 +1,12 @@
 ; Options for the C, ObjC, C++ and ObjC++ front ends.
 ; 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, 2010
+; 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
 ;
 ; 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
 ; version.
 ;
 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -14,9 +15,8 @@
 ; for more details.
 ;
 ; You should have received a copy of 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.
+; 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.
 
 
 ; See the GCC internals manual for a description of this file's format.
 
@@ -113,342 +113,408 @@ C ObjC C++ ObjC++ Joined Separate
 -U<macro>      Undefine <macro>
 
 Wabi
 -U<macro>      Undefine <macro>
 
 Wabi
-C++ ObjC++ Var(warn_abi)
+C ObjC C++ ObjC++ LTO Var(warn_abi) Warning
 Warn about things that will change when compiling with an ABI-compliant compiler
 
 Warn about things that will change when compiling with an ABI-compliant compiler
 
+Wpsabi
+C ObjC C++ ObjC++ LTO Var(warn_psabi) Init(1) Undocumented
+
+Waddress
+C ObjC C++ ObjC++ Var(warn_address) Warning
+Warn about suspicious uses of memory addresses
+
 Wall
 Wall
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
 Enable most warning messages
 
 Wassign-intercept
 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
 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
 
 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
 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++
 
 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
 
 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
 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
 Warn about subscripts whose type is \"char\"
 
 Wclobbered
-C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1)
+C ObjC C++ ObjC++ Var(warn_clobbered) Init(-1) Warning
 Warn about variables that might be changed by \"longjmp\" or \"vfork\"
 
 Wcomment
 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
 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
 Synonym for -Wcomment
 
 Wconversion
-C ObjC C++ ObjC++ Var(warn_conversion)
+C ObjC C++ ObjC++ Var(warn_conversion) Warning
 Warn for implicit type conversions that may change a value
 
 Warn for implicit type conversions that may change a value
 
+Wconversion-null
+C++ ObjC++ Var(warn_conversion_null) Init(1) Warning
+Warn for converting NULL from/to a non-pointer type
+
+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
 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
 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
 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
 
 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++
 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
 Warn about violations of Effective C++ style rules
 
 Wempty-body
-C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1)
+C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning
 Warn about an empty body in an if or else statement
 
 Wendif-labels
 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
 
 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
 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
 
 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
 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
 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
 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
 
 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
 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
 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
 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=
 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
 
 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
 Warn about variables which are initialized to themselves
 
 Wimplicit
-C ObjC C++ ObjC++
+C ObjC Var(warn_implicit) Init(-1) Warning
+Warn about implicit declarations
 
 Wimplicit-function-declaration
 
 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
 Warn about implicit function declarations
 
 Wimplicit-int
-C ObjC Var(warn_implicit_int)
+C ObjC Var(warn_implicit_int) Init(-1) Warning
 Warn when a declaration does not specify a type
 
 Wimport
 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
 
 Wint-to-pointer-cast
-C ObjC Var(warn_int_to_pointer_cast) Init(1)
+C ObjC 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
 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
 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
 
 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
 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
 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
 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
 Warn about possibly missing braces around initializers
 
 Wmissing-declarations
-C ObjC 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
 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
 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
 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
 Warn about user-specified include directories that do not exist
 
 Wmissing-parameter-type
-C ObjC Var(warn_missing_parameter_type) Init(-1)
+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
 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
 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
 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
 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
 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
 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=
 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
 -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
 Warn if a C-style cast is used in a program
 
 Wold-style-declaration
-C ObjC Var(warn_old_style_declaration) Init(-1)
+C ObjC Var(warn_old_style_declaration) Init(-1) Warning
 Warn for obsolescent usage in a declaration
 
 Wold-style-definition
 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
 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
 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
 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
 
 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
 Wparentheses
-C ObjC C++ ObjC++ Var(warn_parentheses)
+C ObjC C++ ObjC++ Var(warn_parentheses) Warning
 Warn about possibly missing parentheses
 
 Wpmf-conversions
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 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
 
 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
 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
 
 Wsystem-headers
-C ObjC C++ ObjC++
-Do not suppress warnings from system headers
+C ObjC C++ ObjC++ Warning
+; Documented in common.opt
 
 Wtraditional
 
 Wtraditional
-C ObjC Var(warn_traditional)
+C ObjC Var(warn_traditional) Warning
 Warn about features not present in traditional C
 
 Wtraditional-conversion
 Warn about features not present in traditional C
 
 Wtraditional-conversion
-C ObjC Var(warn_traditional_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
 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
 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
 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
 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
 
 Warn about unrecognized pragmas
 
+Wunsuffixed-float-constants
+C ObjC Var(warn_unsuffixed_float_constants) Warning
+Warn about unsuffixed float constants
+
 Wunused-macros
 Wunused-macros
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
 Warn about macros defined in the main file that are not used
 
 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
 Wvariadic-macros
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ Warning
 Do not warn about using variadic macros when -pedantic
 
 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
 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
 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
 Warn when a pointer differs in signedness in an assignment
 
 ansi
@@ -497,10 +563,18 @@ fconstant-string-class=
 ObjC ObjC++ Joined
 -fconst-string-class=<name>    Use class <name> for constant strings
 
 ObjC ObjC++ Joined
 -fconst-string-class=<name>    Use class <name> for constant strings
 
+fdeduce-init-list
+C++ ObjC++ Var(flag_deduce_init_list) Init(1)
+-fno-deduce-init-list  disable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
+
 fdefault-inline
 C++ ObjC++
 Inline member functions by default
 
 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
 fdollars-in-identifiers
 C ObjC C++ ObjC++
 Permit '$' as an identifier character
@@ -536,7 +610,7 @@ C++ ObjC++
 Scope of for-init-statement variables is local to the loop
 
 ffreestanding
 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
 Do not assume that standard C libraries and \"main\" exist
 
 fgnu-keywords
@@ -547,11 +621,15 @@ fgnu-runtime
 ObjC ObjC++
 Generate code for GNU runtime environment
 
 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
 fguiding-decls
 C++ ObjC++
 
 fhandle-exceptions
-C++ ObjC++
+C++ ObjC++ Optimization
 
 fhonor-std
 C++ ObjC++
 
 fhonor-std
 C++ ObjC++
@@ -577,7 +655,7 @@ C++ ObjC++
 Emit implicit instantiations of templates
 
 ffriend-injection
 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
 Inject friend functions into enclosing namespace
 
 flabels-ok
@@ -611,6 +689,10 @@ C++ ObjC++
 fnonnull-objects
 C++ ObjC++
 
 fnonnull-objects
 C++ ObjC++
 
+fnothrow-opt
+C++ ObjC++ Optimization Var(flag_nothrow_opt)
+Treat a throw() exception specification as noexcept to improve code size
+
 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
 ; to initialize any non-POD ivars in Objective-C++ classes.
 fobjc-call-cxx-cdtors
 ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods
 ; to initialize any non-POD ivars in Objective-C++ classes.
 fobjc-call-cxx-cdtors
@@ -638,11 +720,11 @@ Enable Objective-C setjmp exception handling runtime
 
 fopenmp
 C ObjC C++ ObjC++ Var(flag_openmp)
 
 fopenmp
 C ObjC C++ ObjC++ Var(flag_openmp)
-Enable OpenMP
+Enable OpenMP (implies -frecursive in Fortran)
 
 foperator-names
 C++ ObjC++
 
 foperator-names
 C++ ObjC++
-Recognize C++ kewords like \"compl\" and \"xor\"
+Recognize C++ keywords like \"compl\" and \"xor\"
 
 foptional-diags
 C++ ObjC++
 
 foptional-diags
 C++ ObjC++
@@ -663,6 +745,10 @@ fpreprocessed
 C ObjC C++ ObjC++
 Treat the input file as already preprocessed
 
 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
 freplace-objc-classes
 ObjC ObjC++
 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
@@ -672,19 +758,19 @@ C++ ObjC++
 Enable automatic template instantiation
 
 frtti
 Enable automatic template instantiation
 
 frtti
-C++ ObjC++
+C++ ObjC++ Optimization
 Generate run time type descriptor information
 
 fshort-double
 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
 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
 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
 Force the underlying type for \"wchar_t\" to be \"unsigned short\"
 
 fsigned-bitfields
@@ -692,7 +778,7 @@ C ObjC C++ ObjC++
 When \"signed\" or \"unsigned\" is not given make the bitfield signed
 
 fsigned-char
 When \"signed\" or \"unsigned\" is not given make the bitfield signed
 
 fsigned-char
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ LTO
 Make \"char\" signed by default
 
 fsquangle
 Make \"char\" signed by default
 
 fsquangle
@@ -702,6 +788,10 @@ fstats
 C++ ObjC++
 Display statistics accumulated during compilation
 
 C++ ObjC++
 Display statistics accumulated during compilation
 
+fstrict-enums
+C++ ObjC++ Optimization Var(flag_strict_enums)
+Assume that values of enumeration type are always within the minimum range of that type
+
 fstrict-prototype
 C++ ObjC++
 
 fstrict-prototype
 C++ ObjC++
 
@@ -710,14 +800,17 @@ C ObjC C++ ObjC++ Joined RejectNegative UInteger
 -ftabstop=<number>     Distance between tab stops for column reporting
 
 ftemplate-depth-
 -ftabstop=<number>     Distance between tab stops for column reporting
 
 ftemplate-depth-
+C++ ObjC++ Joined RejectNegative UInteger Undocumented
+
+ftemplate-depth=
 C++ ObjC++ Joined RejectNegative UInteger
 C++ ObjC++ Joined RejectNegative UInteger
--ftemplate-depth-<number>      Specify maximum template instantiation depth
+-ftemplate-depth=<number>      Specify maximum template instantiation depth
 
 fthis-is-variable
 C++ ObjC++
 
 fthreadsafe-statics
 
 fthis-is-variable
 C++ ObjC++
 
 fthreadsafe-statics
-C++ ObjC++
+C++ ObjC++ Optimization
 -fno-threadsafe-statics        Do not generate thread-safe code for initializing local statics
 
 funsigned-bitfields
 -fno-threadsafe-statics        Do not generate thread-safe code for initializing local statics
 
 funsigned-bitfields
@@ -725,7 +818,7 @@ C ObjC C++ ObjC++
 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
 
 funsigned-char
 When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
 
 funsigned-char
-C ObjC C++ ObjC++
+C ObjC C++ ObjC++ LTO
 Make \"char\" unsigned by default
 
 fuse-cxa-atexit
 Make \"char\" unsigned by default
 
 fuse-cxa-atexit
@@ -740,6 +833,10 @@ fvisibility-inlines-hidden
 C++ ObjC++
 Marks all inlined methods as having hidden visibility
 
 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-gc
 C++ ObjC++
 Discard unused virtual functions
@@ -772,6 +869,18 @@ gen-decls
 ObjC ObjC++
 Dump declarations to a .decl file
 
 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
 idirafter
 C ObjC C++ ObjC++ Joined Separate
 -idirafter <dir>       Add <dir> to the end of the system include path
@@ -782,7 +891,7 @@ C ObjC C++ ObjC++ Joined Separate
 
 imultilib
 C ObjC C++ ObjC++ Joined Separate
 
 imultilib
 C ObjC C++ ObjC++ Joined Separate
--imultilib <dir> Set <dir> to be the multilib include subdirectory
+-imultilib <dir>       Set <dir> to be the multilib include subdirectory
 
 include
 C ObjC C++ ObjC++ Joined Separate
 
 include
 C ObjC C++ ObjC++ Joined Separate
@@ -815,9 +924,6 @@ C ObjC C++ ObjC++ Joined Separate
 lang-asm
 C Undocumented
 
 lang-asm
 C Undocumented
 
-lang-fortran
-C Undocumented
-
 lang-objc
 C ObjC C++ ObjC++ Undocumented
 
 lang-objc
 C ObjC C++ ObjC++ Undocumented
 
@@ -864,10 +970,18 @@ become a part of the upcoming ISO C++ standard, dubbed C++0x. Note that the
 extensions enabled by this mode are experimental and may be removed in
 future releases of GCC.
 
 extensions enabled by this mode are experimental and may be removed in
 future releases of GCC.
 
+std=c1x
+C ObjC
+Conform to the ISO 201X C standard draft (experimental and incomplete support)
+
 std=c89
 C ObjC
 Conform to the ISO 1990 C standard
 
 std=c89
 C ObjC
 Conform to the ISO 1990 C standard
 
+std=c90
+C ObjC
+Conform to the ISO 1990 C standard
+
 std=c99
 C ObjC
 Conform to the ISO 1999 C standard
 std=c99
 C ObjC
 Conform to the ISO 1999 C standard
@@ -887,10 +1001,18 @@ extensions that are likely to become a part of the upcoming ISO C++
 standard, dubbed C++0x. Note that the extensions enabled by this mode
 are experimental and may be removed in future releases of GCC.
 
 standard, dubbed C++0x. Note that the extensions enabled by this mode
 are experimental and may be removed in future releases of GCC.
 
+std=gnu1x
+C ObjC
+Conform to the ISO 201X C standard draft with GNU extensions (experimental and incomplete support)
+
 std=gnu89
 C ObjC
 Conform to the ISO 1990 C standard with GNU extensions
 
 std=gnu89
 C ObjC
 Conform to the ISO 1990 C standard with GNU extensions
 
+std=gnu90
+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=gnu99
 C ObjC
 Conform to the ISO 1999 C standard with GNU extensions
@@ -928,7 +1050,7 @@ C ObjC C++ ObjC++
 Do not predefine system-specific and GCC-specific macros
 
 v
 Do not predefine system-specific and GCC-specific macros
 
 v
-C ObjC C++ ObjC++
+Common C ObjC C++ ObjC++
 Enable verbose output
 
 w
 Enable verbose output
 
 w