https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49065
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- I recall seeing problems due to this as well. FWIW, with a recent enough compiler (GCC 4.7 and beyond), the __builtin_assume_aligned intrinsic can be used to work around it. void __attribute__ ((weak)) volatile_bad(volatile struct msg *p) { p = __builtin_assume_aligned (p, _Alignof (float)); p->data = 0.0; }