http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57710
--- Comment #2 from janus at gcc dot gnu.org --- (In reply to Tobias Burnus from comment #0) > The following code (minus the IF condition) shows that _vptr is not set for > the allocatable component: > y.x._data = 0B; > there should be - but isn't - additionally: y.x._vptr = &__vtab_m_T; Without the BLOCK, the dump shows: static struct t2 y = {.x={._vptr=&__vtab_m_T}}; y.x._data = 0B; y.ii = 123; while with the BLOCK one gets: struct t2 y; try { y.x._data = 0B; y.ii = 123; L.1:; } Can't we do a 'static' initialization (of _vptr *and* _data) in both cases? As in struct t2 y = {.x={._vptr=&__vtab_m_T,._data = 0B}} For this gfc_class_null_initializer (from class.c) could be used ...