http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48377
--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-03 10:54:54 UTC --- It surprises me it doesn't handle it, that is clearly a bug. Conceptually it is no different from struct A { char c; unsigned int d; } __attribute__((packed)); unsigned int id (struct A *p) { return p->d; } which is handled.