summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorgdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-30 04:48:34 +0000
committergdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-30 04:48:34 +0000
commit096f40ca65f944743002816c7152f16d87ecf7d0 (patch)
tree103c28a53c7590a4369c890c344849d943d7820c /gcc
parent2e80d033a6623af888ebc174651642a8722578ed (diff)
downloadgcc-096f40ca65f944743002816c7152f16d87ecf7d0.tar.gz
* c-opts.c (c_common_handle_option): <case OPT_Werror> set
global_dc->warning_as_error_requested. * diagnostic.c (diagnostic_initialize): Tidy. * diagnostic.h (diagnostic_context::x_data): Remove (diagnostic_context::issue_warnings_are_errors_message): Rename from warnings_are_errors_message. (diagnostic_context::warning_as_error_requested): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86750 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/c-opts.c1
-rw-r--r--gcc/diagnostic.c11
-rw-r--r--gcc/diagnostic.h8
4 files changed, 21 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 64ec150d643..a9b6627340b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/15378
+ * c-opts.c (c_common_handle_option): <case OPT_Werror> set
+ global_dc->warning_as_error_requested.
+ * diagnostic.c (diagnostic_initialize): Tidy.
+ * diagnostic.h (diagnostic_context::x_data): Remove
+ (diagnostic_context::issue_warnings_are_errors_message): Rename
+ from warnings_are_errors_message.
+ (diagnostic_context::warning_as_error_requested): New.
+
2004-08-30 Richard Earnshaw <rearnsha@arm.com>
* sched-deps.c (get_condition): Fix breakage in previous patch.
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 31bbb48d9b0..c16bebe5c38 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -420,6 +420,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_Werror:
cpp_opts->warnings_are_errors = value;
+ global_dc->warning_as_error_requested = value;
break;
case OPT_Werror_implicit_function_declaration:
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index db4c8fec4da..4fca486d941 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -107,7 +107,8 @@ diagnostic_initialize (diagnostic_context *context)
context->printer->prefixing_rule = DIAGNOSTICS_SHOW_PREFIX_ONCE;
memset (context->diagnostic_count, 0, sizeof context->diagnostic_count);
- context->warnings_are_errors_message = warnings_are_errors;
+ context->issue_warnings_are_errors_message = true;
+ context->warning_as_error_requested = false;
context->abort_on_error = false;
context->internal_error = NULL;
diagnostic_starter (context) = default_diagnostic_starter;
@@ -115,7 +116,6 @@ diagnostic_initialize (diagnostic_context *context)
context->last_module = 0;
context->last_function = NULL;
context->lock = 0;
- context->x_data = NULL;
}
/* Returns true if the next format specifier in TEXT is a format specifier
@@ -226,17 +226,16 @@ diagnostic_count_diagnostic (diagnostic_context *context,
if (!diagnostic_report_warnings_p ())
return false;
- if (!warnings_are_errors)
+ if (!context->warning_as_error_requested)
{
++diagnostic_kind_count (context, DK_WARNING);
break;
}
-
- if (context->warnings_are_errors_message)
+ else if (context->issue_warnings_are_errors_message)
{
pp_verbatim (context->printer,
"%s: warnings being treated as errors\n", progname);
- context->warnings_are_errors_message = false;
+ context->issue_warnings_are_errors_message = false;
}
/* And fall through. */
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index 782f5028025..cc0a911d8f9 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -65,7 +65,10 @@ struct diagnostic_context
/* True if we should display the "warnings are being tread as error"
message, usually displayed once per compiler run. */
- bool warnings_are_errors_message;
+ bool issue_warnings_are_errors_message;
+
+ /* True if it has been requested that warnings be treated as errors. */
+ bool warning_as_error_requested;
/* True if we should raise a SIGABRT on errors. */
bool abort_on_error;
@@ -94,9 +97,6 @@ struct diagnostic_context
int last_module;
int lock;
-
- /* Hook for front-end extensions. */
- void *x_data;
};
/* Client supplied function to announce a diagnostic. */