https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49278
--- Comment #24 from kargl at gcc dot gnu.org --- (In reply to anlauf from comment #21) > > And after fixing an obvious NULL pointer dereference, > > diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c > index 37a0c85fa30..783a0bbddcc 100644 > --- a/gcc/fortran/trans-decl.c > +++ b/gcc/fortran/trans-decl.c > @@ -5520,7 +5520,7 @@ check_constant_initializer (gfc_expr *expr, > gfc_typespec *ts, bool array, > return false; > cm = expr->ts.u.derived->components; > for (c = gfc_constructor_first (expr->value.constructor); > - c; c = gfc_constructor_next (c), cm = cm->next) > + c && cm; c = gfc_constructor_next (c), cm = cm->next) > { > if (!c->expr || cm->attr.allocatable) > continue; > Looks like the patch from comment #2 that I posted 9 years ago. LoL. Bug must not hit real code too often as no one has fixed it.