summaryrefslogtreecommitdiff
path: root/gcc/diagnostic.c
diff options
context:
space:
mode:
authormanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-14 19:27:50 +0000
committermanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-14 19:27:50 +0000
commit5e6392e809db05d347659bd40627f5fac4ade209 (patch)
treed1111a6ca96f46cd25e7fb0b9fc44f1375d175e1 /gcc/diagnostic.c
parentc999c2a78bd5898cbc73b3a3402d5fbb6004e6a1 (diff)
downloadgcc-5e6392e809db05d347659bd40627f5fac4ade209.tar.gz
The flag diagnostic_context::some_warnings_are_errors controls whether
to give the message "all warnings being treated as errors". However, when warnings are buffered and then discarded, this flag is not reset. It turns out we do not need this flag at all, since we already count explicitly how many warnings were converted into errors, and this number is kept up to date for the buffered diagnostics used by Fortran. gcc/ChangeLog: 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/67460 * diagnostic.c (diagnostic_initialize): Do not set some_warnings_are_errors. (diagnostic_finish): Use DK_WERROR count instead. (diagnostic_report_diagnostic): Do not set some_warnings_are_errors. * diagnostic.h (struct diagnostic_context): Remove some_warnings_are_errors. gcc/testsuite/ChangeLog: 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/67460 * gfortran.dg/pr67460.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227760 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r--gcc/diagnostic.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index 01a8e35d73b..e5c3c1dbfec 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -137,7 +137,6 @@ diagnostic_initialize (diagnostic_context *context, int n_opts)
new (context->printer) pretty_printer ();
memset (context->diagnostic_count, 0, sizeof context->diagnostic_count);
- context->some_warnings_are_errors = false;
context->warning_as_error_requested = false;
context->n_opts = n_opts;
context->classify_diagnostic = XNEWVEC (diagnostic_t, n_opts);
@@ -204,7 +203,7 @@ void
diagnostic_finish (diagnostic_context *context)
{
/* Some of the errors may actually have been warnings. */
- if (context->some_warnings_are_errors)
+ if (diagnostic_kind_count (context, DK_WERROR))
{
/* -Werror was given. */
if (context->warning_as_error_requested)
@@ -861,9 +860,6 @@ diagnostic_report_diagnostic (diagnostic_context *context,
return false;
}
- if (orig_diag_kind == DK_WARNING && diagnostic->kind == DK_ERROR)
- context->some_warnings_are_errors = true;
-
context->lock++;
if (diagnostic->kind == DK_ICE || diagnostic->kind == DK_ICE_NOBT)