From dbeaa7ab81a37acadc9af6e7990332604252de20 Mon Sep 17 00:00:00 2001 From: Mark Eggleston Date: Thu, 23 Apr 2020 10:33:14 +0100 Subject: Fortran : Spurious warning message with -Wsurprising PR59107 This change is from a patch developed for gcc-5. The code has moved on since then requiring a change to interface.c 2020-05-11 Janus Weil Dominique d'Humieres gcc/fortran/ PR fortran/59107 * gfortran.h: Rename field resolved as resolve_symbol_called and assign two 2 bits instead of 1. * interface.c (check_dtio_interface1): Use new field name. (gfc_find_typebound_dtio_proc): Use new field name. * resolve.c (gfc_resolve_intrinsic): Replace check of the formal field with resolve_symbol_called is at least 2, if it is not set the field to 2. (resolve_typebound_procedure): Use new field name. (resolve_symbol): Use new field name and check whether it is at least 1, if it is not set the field to 1. 2020-05-11 Mark Eggleston gcc/testsuite/ PR fortran/59107 * gfortran.dg/pr59107.f90: New test. --- gcc/fortran/interface.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gcc/fortran/interface.c') diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index ba1c8bc..f33c663 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -5015,7 +5015,7 @@ check_dtio_interface1 (gfc_symbol *derived, gfc_symtree *tb_io_st, gfc_error ("DTIO procedure %qs at %L must be a subroutine", dtio_sub->name, &dtio_sub->declared_at); - if (!dtio_sub->resolved) + if (!dtio_sub->resolve_symbol_called) gfc_resolve_formal_arglist (dtio_sub); arg_num = 0; @@ -5149,7 +5149,8 @@ gfc_find_typebound_dtio_proc (gfc_symbol *derived, bool write, bool formatted) gfc_symtree *tb_io_st = NULL; bool t = false; - if (!derived || !derived->resolved || derived->attr.flavor != FL_DERIVED) + if (!derived || !derived->resolve_symbol_called + || derived->attr.flavor != FL_DERIVED) return NULL; /* Try to find a typebound DTIO binding. */ -- cgit v1.1