http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47409
--- Comment #20 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Francesco Zappa Nardelli from comment #19) > >> does not perform the volatile load access. > > > It does starting with GCC 4.8.2 and was a bug in older GCC versions. > > I just tested my example (comment 16) against yesterday trunk > > gcc version 4.9.0 20130912 (experimental) (GCC) > > and indeed the volatile load access is no longer removed. This is a good > news. > > However the code I reported in bug 58409, which has been marked duplicate of > this bug, still exhibits the incorrect reordering of volatile accesses. It > thus seems to me that either bug 58409 is not a duplicate of this one, or > the fix is incomplete. It is a duplicate of this one because it is about a volatile struct member in a not volatile object g_3[1][1][1]. And it is about the aggregate assignment to that struct. > -francesco