https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90027
--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > No, and AFAIK the testcase has always worked on strict-alignment platforms. To be more explicit: typedef struct { short a; long b; short c; short d; } __attribute__ ((packed)) S; S s; S *p = &s; long *b = &s.b; p->b is OK because it's (*p).b and p contains a valid address for its type, but *b is not OK because b doesn't contain a valid address for its type.