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?