diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-11 16:54:49 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-11 16:54:49 +0000 |
commit | 19ec5c9ee8372c111378c1759f7b5a7c2d6ec2f0 (patch) | |
tree | 2057187053c110209cde5ca5305225655fda8d8f /gcc/c-family | |
parent | 44579526831b5a2aa4e089b499f3b804aeec97d5 (diff) | |
download | gcc-19ec5c9ee8372c111378c1759f7b5a7c2d6ec2f0.tar.gz |
* opts.c (warning_as_error_callback,
register_warning_as_error_callback): Remove.
(enable_warning_as_error): Don't use warning_as_error_callback.
* opts.h (register_warning_as_error_callback): Remove.
c-family:
* c-opts.c (warning_as_error_callback): Remove.
(c_common_initialize_diagnostics): Don't call
register_warning_as_error_callback.
(c_common_handle_option): Handle -Werror=normalized= here.
testsuite:
* gcc.dg/cpp/warn-normalized-3.c: Update expected note text.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166606 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family')
-rw-r--r-- | gcc/c-family/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-family/c-opts.c | 115 |
2 files changed, 26 insertions, 96 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 80a10a3ea36..a9a55b3da43 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2010-11-11 Joseph Myers <joseph@codesourcery.com> + + * c-opts.c (warning_as_error_callback): Remove. + (c_common_initialize_diagnostics): Don't call + register_warning_as_error_callback. + (c_common_handle_option): Handle -Werror=normalized= here. + 2010-11-10 Joseph Myers <joseph@codesourcery.com> * c-common.c (handle_mode_attribute): Use %' and word "signedness" diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c index b4b77796696..1a281c86fc8 100644 --- a/gcc/c-family/c-opts.c +++ b/gcc/c-family/c-opts.c @@ -144,89 +144,6 @@ defer_opt (enum opt_code code, const char *arg) deferred_count++; } -/* -Werror= may set a warning option to enable a warning that is emitted - by the preprocessor. Set any corresponding flag in cpp_opts. */ - -static void -warning_as_error_callback (int option_index) -{ - switch (option_index) - { - default: - /* Ignore options not associated with the preprocessor. */ - break; - - case OPT_Wdeprecated: - cpp_opts->cpp_warn_deprecated = 1; - break; - - case OPT_Wcomment: - cpp_opts->warn_comments = 1; - break; - - case OPT_Wtrigraphs: - cpp_opts->warn_trigraphs = 1; - break; - - case OPT_Wmultichar: - cpp_opts->warn_multichar = 1; - break; - - case OPT_Wtraditional: - cpp_opts->cpp_warn_traditional = 1; - break; - - case OPT_Wlong_long: - cpp_opts->cpp_warn_long_long = 1; - break; - - case OPT_Wendif_labels: - cpp_opts->warn_endif_labels = 1; - break; - - case OPT_Wvariadic_macros: - /* Set the local flag that is used later to update cpp_opts. */ - warn_variadic_macros = 1; - break; - - case OPT_Wbuiltin_macro_redefined: - cpp_opts->warn_builtin_macro_redefined = 1; - break; - - case OPT_Wundef: - cpp_opts->warn_undef = 1; - break; - - case OPT_Wunused_macros: - /* Set the local flag that is used later to update cpp_opts. */ - warn_unused_macros = 1; - break; - - case OPT_Wc___compat: - /* Add warnings in the same way as c_common_handle_option below. */ - if (warn_enum_compare == -1) - warn_enum_compare = 1; - if (warn_jump_misses_init == -1) - warn_jump_misses_init = 1; - cpp_opts->warn_cxx_operator_names = 1; - break; - - case OPT_Wnormalized_: - inform (input_location, "-Werror=normalized=: Set -Wnormalized=nfc"); - cpp_opts->warn_normalize = normalized_C; - break; - - case OPT_Winvalid_pch: - cpp_opts->warn_invalid_pch = 1; - break; - - case OPT_Wcpp: - /* Handled by standard diagnostics using the option's associated - boolean variable. */ - break; - } -} - /* Return language mask for option parsing. */ unsigned int c_common_option_lang_mask (void) @@ -240,9 +157,6 @@ c_common_option_lang_mask (void) void c_common_initialize_diagnostics (diagnostic_context *context) { - /* Register callback for warnings enabled by -Werror=. */ - register_warning_as_error_callback (warning_as_error_callback); - /* This is conditionalized only because that is the way the front ends used to do it. Maybe this should be unconditional? */ if (c_dialect_cxx ()) @@ -560,17 +474,26 @@ c_common_handle_option (size_t scode, const char *arg, int value, break; case OPT_Wnormalized_: - if (!value || (arg && strcasecmp (arg, "none") == 0)) - cpp_opts->warn_normalize = normalized_none; - else if (!arg || strcasecmp (arg, "nfkc") == 0) - cpp_opts->warn_normalize = normalized_KC; - else if (strcasecmp (arg, "id") == 0) - cpp_opts->warn_normalize = normalized_identifier_C; - else if (strcasecmp (arg, "nfc") == 0) - cpp_opts->warn_normalize = normalized_C; + if (kind == DK_ERROR) + { + gcc_assert (!arg); + inform (input_location, "-Werror=normalized=: set -Wnormalized=nfc"); + cpp_opts->warn_normalize = normalized_C; + } else - error ("argument %qs to %<-Wnormalized%> not recognized", arg); - break; + { + if (!value || (arg && strcasecmp (arg, "none") == 0)) + cpp_opts->warn_normalize = normalized_none; + else if (!arg || strcasecmp (arg, "nfkc") == 0) + cpp_opts->warn_normalize = normalized_KC; + else if (strcasecmp (arg, "id") == 0) + cpp_opts->warn_normalize = normalized_identifier_C; + else if (strcasecmp (arg, "nfc") == 0) + cpp_opts->warn_normalize = normalized_C; + else + error ("argument %qs to %<-Wnormalized%> not recognized", arg); + break; + } case OPT_Wreturn_type: warn_return_type = value; |