diff options
author | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-14 13:30:32 +0000 |
---|---|---|
committer | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-14 13:30:32 +0000 |
commit | d3b7ee7cc788bd22aa3682d2babfbdd1db0b88ac (patch) | |
tree | fc0863eee154e2d3cc964810f8b77726fbaa7a94 /gcc/c-family | |
parent | c8010b803d34fa7e096747067e33c650b36ecc06 (diff) | |
download | gcc-d3b7ee7cc788bd22aa3682d2babfbdd1db0b88ac.tar.gz |
2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR 53063
c-family/
* c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
Wreorder): Use LangEnabledBy.
* c-opts.c (c_common_handle_option): Do not enable them
explicitly. Call lang-specific generated functions.
(c_common_post_options): Do not set them here.
gcc/
* doc/options.texi: (LangEnabledBy): Document it.
* optc-gen.awk: Handle LangEnabledBy.
* opth-gen.awk: Generate declaration for lang-specific functions.
* opt-read.awk: Record lang numbers.
* opt-functions.awk (flag_set_p): Ignore the arguments of flags.
(lang_sanitized_name): New.
ada/
* gcc-interface/misc.c: Include opts.h and options.h before tm.h.
(gnat_handle_option): Call lang-specific generated function.
fortran/
* options.c (gfc_handle_option): Call lang-specific generated function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187462 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family')
-rw-r--r-- | gcc/c-family/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/c-family/c-opts.c | 49 | ||||
-rw-r--r-- | gcc/c-family/c.opt | 8 |
3 files changed, 50 insertions, 16 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 226568593d8..de50b215961 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,12 @@ +2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org> + + PR 53063 + * c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init, + Wreorder): Use LangEnabledBy. + * c-opts.c (c_common_handle_option): Do not enable them + explicitly. Call lang-specific generated functions. + (c_common_post_options): Do not set them here. + 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt (Wclobbered,Wempty-body,Wignored-qualifiers, diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c index 8470de15ce0..a7fadc817aa 100644 --- a/gcc/c-family/c-opts.c +++ b/gcc/c-family/c-opts.c @@ -397,9 +397,9 @@ c_common_handle_option (size_t scode, const char *arg, int value, if (warn_main == -1) warn_main = (value ? 2 : 0); - /* In C, -Wall turns on -Wenum-compare, which we do here. - In C++ it is on by default, which is done in - c_common_post_options. */ + /* In C, -Wall and -Wc++-compat turns on -Wenum-compare, + which we do here. In C++ it is on by default, which is + done in c_common_post_options. */ if (warn_enum_compare == -1) warn_enum_compare = value; } @@ -407,9 +407,6 @@ c_common_handle_option (size_t scode, const char *arg, int value, { /* C++-specific warnings. */ warn_sign_compare = value; - warn_reorder = value; - warn_cxx0x_compat = value; - warn_delnonvdtor = value; warn_narrowing = value; } @@ -434,10 +431,6 @@ c_common_handle_option (size_t scode, const char *arg, int value, implies -Wenum-compare. */ if (warn_enum_compare == -1 && value) warn_enum_compare = value; - /* Because C++ always warns about a goto which misses an - initialization, -Wc++-compat turns on -Wjump-misses-init. */ - if (warn_jump_misses_init == -1 && value) - warn_jump_misses_init = value; cpp_opts->warn_cxx_operator_names = value; break; @@ -836,6 +829,40 @@ c_common_handle_option (size_t scode, const char *arg, int value, break; } + switch (c_language) + { + case clk_c: + C_handle_option_auto (&global_options, &global_options_set, + scode, arg, value, + c_family_lang_mask, kind, + loc, handlers, global_dc); + break; + + case clk_objc: + ObjC_handle_option_auto (&global_options, &global_options_set, + scode, arg, value, + c_family_lang_mask, kind, + loc, handlers, global_dc); + break; + + case clk_cxx: + CXX_handle_option_auto (&global_options, &global_options_set, + scode, arg, value, + c_family_lang_mask, kind, + loc, handlers, global_dc); + break; + + case clk_objcxx: + ObjCXX_handle_option_auto (&global_options, &global_options_set, + scode, arg, value, + c_family_lang_mask, kind, + loc, handlers, global_dc); + break; + + default: + gcc_unreachable (); + } + return result; } @@ -926,8 +953,6 @@ c_common_post_options (const char **pfilename) warn_strict_aliasing = 0; if (warn_strict_overflow == -1) warn_strict_overflow = 0; - if (warn_jump_misses_init == -1) - warn_jump_misses_init = 0; /* -Woverlength-strings is off by default, but is enabled by -Wpedantic. It is never enabled in C++, as the minimum limit is not normative diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 8afde8a25e2..0f13dc34eef 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -288,7 +288,7 @@ 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 +C++ ObjC++ Var(warn_cxx0x_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Deprecated in favor of -Wc++11-compat Wc++11-compat @@ -336,7 +336,7 @@ C ObjC Var(warn_declaration_after_statement) Warning Warn when a declaration is found after a statement Wdelete-non-virtual-dtor -C++ ObjC++ Var(warn_delnonvdtor) Warning +C++ ObjC++ Var(warn_delnonvdtor) Warning LangEnabledBy(C++ ObjC++,Wall) Warn about deleting polymorphic objects with non-virtual destructors Wdeprecated @@ -446,7 +446,7 @@ 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 +C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat) Warn when a jump misses a variable initialization Wliteral-suffix @@ -598,7 +598,7 @@ C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning Warn about multiple declarations of the same object Wreorder -C++ ObjC++ Var(warn_reorder) Warning +C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall) Warn when the compiler reorders code Wreturn-type |