From e9d9b48ddbb7915c0ae141c1cb949a55d51ed737 Mon Sep 17 00:00:00 2001 From: Paul Thomas Date: Sat, 5 Dec 2015 17:10:33 +0000 Subject: [PATCH] re PR fortran/68676 (ICE in gfc_match_formal_arglist when compiling gfortran.dg/submodule_10.f08) 2015-12-05 Paul Thomas PR fortran/68676 * decl.c (gfc_match_formal_arglist): Correct error, where 'sym' was used instead of 'progname'. From-SVN: r231319 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/decl.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7617a1adf7c..ba176a1e469 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2015-12-05 Paul Thomas + + PR fortran/68676 + * decl.c (gfc_match_formal_arglist): Correct error, where 'sym' + was used instead of 'progname'. + 2015-12-02 Tobias Burnus Alessandro Fanfarillo diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 10a08e0591b..bff23e1f207 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -4817,6 +4817,9 @@ ok: goto cleanup; } + /* gfc_error_now used in following and return with MATCH_YES because + doing otherwise results in a cascade of extraneous errors and in + some cases an ICE in symbol.c(gfc_release_symbol). */ if (progname->attr.module_procedure && progname->attr.host_assoc) { bool arg_count_mismatch = false; @@ -4826,7 +4829,7 @@ ok: /* Abbreviated module procedure declaration is not meant to have any formal arguments! */ - if (!sym->abr_modproc_decl && formal && !head) + if (!progname->abr_modproc_decl && formal && !head) arg_count_mismatch = true; for (p = formal, q = head; p && q; p = p->next, q = q->next) -- 2.30.2