https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108957
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #1 from Mikael Morin <mikael at gcc dot gnu.org> --- This seems to do the trick for this testcase: diff --git a/gcc/fortran/parse.cc b/gcc/fortran/parse.cc index f1e55316e5b..f7670591fad 100644 --- a/gcc/fortran/parse.cc +++ b/gcc/fortran/parse.cc @@ -3864,9 +3864,6 @@ loop: accept_statement (st); prog_unit = gfc_new_block; prog_unit->formal_ns = gfc_current_ns; - if (prog_unit == prog_unit->formal_ns->proc_name - && prog_unit->ns != prog_unit->formal_ns) - prog_unit->refs++; decl: /* Read data declaration statements. */ I can't fully test it right now.