https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95710
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- Tested against z1.f90. Untested otherwise. I don't use CLASSes. Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 280157) +++ gcc/fortran/resolve.c (working copy) @@ -8798,6 +8798,9 @@ resolve_select (gfc_code *code, bool select_type) bool gfc_type_is_extensible (gfc_symbol *sym) { + if (!sym) + return false; + return !(sym->attr.is_bind_c || sym->attr.sequence || (sym->attr.is_class && sym->components->ts.u.derived->attr.unlimited_polymorphic)); @@ -12595,9 +12599,13 @@ resolve_fl_var_and_proc (gfc_symbol *sym, int mp_flag) && !UNLIMITED_POLY (sym) && !gfc_type_is_extensible (CLASS_DATA (sym)->ts.u.derived)) { - gfc_error ("Type %qs of CLASS variable %qs at %L is not extensible", - CLASS_DATA (sym)->ts.u.derived->name, sym->name, - &sym->declared_at); + if (CLASS_DATA (sym)->ts.u.derived) + gfc_error ("Type %qs of CLASS variable %qs at %L is not extensible", + CLASS_DATA (sym)->ts.u.derived->name, + sym->name, &sym->declared_at); + else + gfc_error ("CLASS variable %qs at %L is not extensible", + sym->name, &sym->declared_at); return false; }