http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46702
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-29 10:48:36 UTC --- The code is strictly invalid with or without inlining, but with inlining the compiler gets to see it. You are accessing buf via an lvalue which type does not alias any of bufs members. GCC 4.5 and up will tolerate this if you only ever read from the memory location using an lvalue which type aliases the type of the lvalue you used for the store.