https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77583
anlauf at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |anlauf at gcc dot gnu.org
--- Comment #5 from anlauf at gcc dot gnu.org ---
(In reply to kargl from comment #4)
> (In reply to Manuel López-Ibáñez from comment #2)
> > check_conflict is sometimes called with name = NULL and that is passed to
> > %qs causing a crash.
>
> Index: symbol.c
> ===================================================================
> --- symbol.c (revision 240140)
> +++ symbol.c (working copy)
> @@ -473,8 +473,8 @@ check_conflict (symbol_attribute *attr,
> }
> }
>
> - if (attr->dummy && ((attr->function || attr->subroutine) &&
> - gfc_current_state () == COMP_CONTAINS))
> + if (name && attr->dummy && ((attr->function || attr->subroutine)
> + && gfc_current_state () == COMP_CONTAINS))
> gfc_error_now ("internal procedure %qs at %L conflicts with "
> "DUMMY argument", name, where);
The additional check on 'name' basically applies on current trunk and
fixes the ICE.
Are you still pursuing this?