http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58943
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I think it should be fixed for all C standard versions, not just C11 (that is, the front end should produce something like (save (rhs), save (lhs) = save (lhs) op save (rhs)) to get the right order of evaluation). As it's reported for at least 4.6 onwards and earlier versions didn't claim any C11 support and only C11 defined things sufficiently precisely for this to be a bug, I don't see this as a regression.