https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80766
--- Comment #5 from janus at gcc dot gnu.org --- I have investigated a bit on the origin of the problem, and it seems that it is related to the vtype symbols not being resolved properly (and the TBP component having the type BT_UNKNOWN although it's a REAL function). This rather simple patch fixes the ICE on trunk: Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 247818) +++ gcc/fortran/resolve.c (working copy) @@ -13833,6 +13833,9 @@ resolve_fl_derived (gfc_symbol *sym) gcc_assert (vtab); vptr->ts.u.derived = vtab->ts.u.derived; } + + if (!resolve_fl_derived0 (vptr->ts.u.derived)) + return false; } if (!resolve_fl_derived0 (sym))