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.