From c6acea9d4fd505ca611df1f8b248bbbecaa4fef6 Mon Sep 17 00:00:00 2001 From: Janus Weil Date: Sat, 1 Nov 2008 14:24:03 +0100 Subject: re PR fortran/36322 (ICE with PROCEDURE using a complicated interface) 2008-11-01 Janus Weil PR fortran/36322 PR fortran/36463 * gfortran.h: New function gfc_expr_replace_symbols. * decl.c (match_procedure_decl): Increase reference count for interface. * expr.c: New functions replace_symbol and gfc_expr_replace_symbols. * resolve.c (resolve_symbol): Correctly copy array spec and char len of PROCEDURE declarations from their interface. * symbol.c (gfc_get_default_type): Enhanced error message. (copy_formal_args): Call copy_formal_args recursively for arguments. * trans-expr.c (gfc_conv_function_call): Bugfix. 2008-11-01 Janus Weil PR fortran/36322 PR fortran/36463 * gfortran.dg/proc_decl_17.f90: New. * gfortran.dg/proc_decl_18.f90: New. From-SVN: r141515 --- gcc/fortran/decl.c | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/fortran/decl.c') diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 370ac10..fe044c7 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -4125,6 +4125,7 @@ match_procedure_decl (void) /* Various interface checks. */ if (proc_if) { + proc_if->refs++; /* Resolve interface if possible. That way, attr.procedure is only set if it is declared by a later procedure-declaration-stmt, which is invalid per C1212. */ -- cgit v1.1