https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64655
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- You are wrong on this. You've told the compiler that those arrays will be aligned to 32 bytes, but they are not, so running the code is undefined behavior. malloc doesn't have a way to pass alignment requirements to it, so there is no way it could know about the alignment requirements of struct A.