https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97843
--- Comment #3 from Iain Buclaw <ibuclaw at gdcproject dot org> --- (In reply to Alex from comment #2) > I agree that the order of evaluation of operands is undefined and writing > code that depends on that order would not be reliable. In this case it's the > execution of the assign expression happening before all the operands have > been evaluated that is the problem. > Yes, it certainly is the most surprising outcome of all that could happen, but it's mostly down to how the run-time library helpers are implemented, which may get different results on non-x86.