https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98335
--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > We expand the first case from > > MEM <char[7]> [(struct Data *)&D.2365 + 1B] = {}; > c.0_1 = c; > D.2365.a = c.0_1; > return D.2365; But why generate a 7-byte zeroing instead of a 8-byte one? I gather this is the cause of the regression.