https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117512
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- And the non-static data member doesn't have to be aligned itself, struct __attribute__((aligned (2 * sizeof (int)))) A { int b; ~A (); }; A foo (int); void bar () { A e = { 0 }; A d = foo (0) = e; } ICEs too.