c-opts.c (c_common_handle_option): <case OPT_Werror> set global_dc->warning_as_error_requested.

* 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.

From-SVN: r86750
This commit is contained in:
Gabriel Dos Reis 2004-08-30 04:48:34 +00:00 committed by Gabriel Dos Reis
parent 04204c2fbf
commit 7783b40203
4 changed files with 21 additions and 10 deletions

View File

@ -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.

View File

@ -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:

View File

@ -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. */

View File

@ -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. */