https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71104
--- Comment #8 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 17 May 2016, glisse at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71104 > > --- Comment #7 from Marc Glisse <glisse at gcc dot gnu.org> --- > (In reply to Richard Biener from comment #6) > > C11 6.5.16/3 suggests that the LHS "operand" is evaluated in unspecified > > order. > > It seems that C++ is moving towards specifying the order > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0145r1.pdf > > I don't remember the status exactly, but I think this is going more or > less as is into C++17. I interpret the 5. b @= a example in "4 A Solution" as applying to assignment and op-assignment like +=. So the gimplifier change would agree with this (phew). Not that I like this proposal at all (given it changes function arg evaluation order on x86_64).