https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88376
--- Comment #3 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Tue, Jan 08, 2019 at 08:35:21PM +0000, janus at gcc dot gnu.org wrote: > > --- Comment #2 from janus at gcc dot gnu.org --- > (In reply to Dominique d'Humieres from comment #1) > > The change of behavior occurred between revision r258235 (2018-03-04, error) > > and r258362 (2018-03-08, ICE) and has been back ported to GCC6 and 7. > > Based on this information, I'd guess that r258347 is the culprit: > > 2018-03-07 Steven G. Kargl <ka...@gcc.gnu.org> > > PR fortran/64124 > PR fortran/70409 > * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. > Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 267735) +++ gcc/fortran/resolve.c (working copy) @@ -1686,8 +1686,6 @@ is_illegal_recursion (gfc_symbol* sym, gfc_namespace* || gfc_fl_struct (sym->attr.flavor)) return false; - gcc_assert (sym->attr.flavor == FL_PROCEDURE); - /* If we've got an ENTRY, find real procedure. */ if (sym->attr.entry && sym->ns->entries) proc_sym = sym->ns->entries->sym;