summaryrefslogtreecommitdiff
path: root/gcc/c-family
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-11 16:54:49 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-11 16:54:49 +0000
commit19ec5c9ee8372c111378c1759f7b5a7c2d6ec2f0 (patch)
tree2057187053c110209cde5ca5305225655fda8d8f /gcc/c-family
parent44579526831b5a2aa4e089b499f3b804aeec97d5 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/c-family/c-opts.c115
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;