This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Back port r227760] PR67460 [5 Regression] Spurious: f951: all warnings being treated as errors
- From: Dominique d'HumiÃres <dominiq at lps dot ens dot fr>
- To: fortran at gcc dot gnu dot org
- Cc: manu at gcc dot gnu dot org, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 22 Nov 2015 10:14:49 +0100
- Subject: [Back port r227760] PR67460 [5 Regression] Spurious: f951: all warnings being treated as errors
- Authentication-results: sourceware.org; auth=none
Is it OK to back port revision r227760 to 5.3?
Tested on x86_64-apple-darwin14
Dominique
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog (revision 230703)
+++ gcc/ChangeLog (working copy)
@@ -1,3 +1,17 @@
+2015-11-22 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ Backport from mainline
+ 2015-09-14 Manuel LÃpez-IbÃÃe<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.
+
2015-11-21 Jakub Jelinek <jakub@redhat.com>
PR debug/66432
Index: gcc/diagnostic.h
===================================================================
--- gcc/diagnostic.h (revision 230703)
+++ gcc/diagnostic.h (working copy)
@@ -65,10 +65,6 @@
/* The number of times we have issued diagnostics. */
int diagnostic_count[DK_LAST_DIAGNOSTIC_KIND];
- /* True if we should display the "warnings are being tread as error"
- message, usually displayed once per compiler run. */
- bool some_warnings_are_errors;
-
/* True if it has been requested that warnings be treated as errors. */
bool warning_as_error_requested;
Index: gcc/diagnostic.c
===================================================================
--- gcc/diagnostic.c (revision 230703)
+++ gcc/diagnostic.c (working copy)
@@ -138,7 +138,6 @@
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 @@
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)
@@ -811,9 +810,6 @@
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)
Index: gcc/testsuite/ChangeLog
===================================================================
--- gcc/testsuite/ChangeLog (revision 230703)
+++ gcc/testsuite/ChangeLog (working copy)
@@ -1,3 +1,11 @@
+2015-11-22 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ Backport from mainline
+ 2015-09-14 Manuel LÃpez-IbÃÃe<manu@gcc.gnu.org>
+
+ PR fortran/67460
+ * gfortran.dg/pr67460.f90: New test.
+
2015-11-21 Jakub Jelinek <jakub@redhat.com>
PR debug/66432
Index: gcc/testsuite/gfortran.dg/pr67460.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr67460.f90 (nonexistent)
+++ gcc/testsuite/gfortran.dg/pr67460.f90 (working copy)
@@ -0,0 +1,24 @@
+! Bogus "all warnings being treated as errors"
+! { dg-do compile }
+! { dg-options "-std=f2003 -Werror" }
+MODULE btree_i8_k_sp2d_v
+ TYPE btree_node
+ INTEGER id
+ TYPE(btree_node_p), DIMENSION(:), POINTER :: subtrees
+ TYPE(btree_node), POINTER :: parent
+ END TYPE btree_node
+ TYPE btree_node_p
+ TYPE(btree_node), POINTER :: node
+ END TYPE btree_node_p
+CONTAINS
+ RECURSIVE SUBROUTINE btree_verify_node (tree, node, level, nids, lastv,&
+ count, num_nodes, max_leaf_level, min_leaf_level, printing)
+ TYPE(btree_node), INTENT(IN) :: node
+ INTEGER :: branch
+ IF (ASSOCIATED (node%subtrees(branch)%node)) THEN
+ IF (node%subtrees(branch)%node%parent%id .NE. node%id) THEN
+ WRITE(*,*)'foo'
+ ENDIF
+ ENDIF
+ END SUBROUTINE btree_verify_node
+END MODULE btree_i8_k_sp2d_v