http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58744
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Target| |x86_64-*-* Status|UNCONFIRMED |NEW Last reconfirmed| |2013-10-23 Component|c |target Ever confirmed|0 |1 Known to fail| |4.9.0 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. On i?86 we properly do a 16byte and a 8byte access (but we copy to stack anyway). typedef struct{ unsigned char B; unsigned char G; unsigned char R; } __attribute__((packed)) pixel ; void apply_filter(pixel p); void color_filter_c(pixel *src) { apply_filter(*src); }