https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50410
--- Comment #34 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- (In reply to Vittorio Zecca from comment #2) > The following produces a Segmentation fault in gfc_conv_structure (r178925) > > type t > integer g > end type > type(t) :: u=t(1) > data u%g /2/ > end This is fixed, for example, by Index: resolve.c =================================================================== --- resolve.c (Revision 269895) +++ resolve.c (Arbeitskopie) @@ -15917,6 +15917,13 @@ resolve_data_variables (gfc_data_variable *d) if (!resolve_data_variables (d->list)) return false; } + if (d->expr->symtree && d->expr->symtree->n.sym + && d->expr->symtree->n.sym->value) + { + gfc_error ("Variable at %L already has an initializer", + &d->expr->where); + return false; + } } return true; While (probably) correct, this is far from complete.