+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.
+
2015-09-14 Richard Sandiford <richard.sandiford@arm.com>
* config/sparc/predicates.md (const_all_ones_operand): Use
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);
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)
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)
/* 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;
+2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR fortran/67460
+ * gfortran.dg/pr67460.f90: New test.
+
2015-09-14 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/gomp/dump-new-function-3.c (dg-final): Also scan for $loopfn.
--- /dev/null
+! 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