http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45472
--- Comment #11 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2010-10-18 16:41:03 UTC --- On Mon, 18 Oct 2010, rguenth at gcc dot gnu.org wrote: > Also consider memcpy (&vv1, &vv2) and eventually the compiler optimizing > that to vv1 = vv2 (note the lack of {v} here). Using memcpy when any part of the source or destination is an object defined with volatile type has undefined behavior (at runtime).