https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85557
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|WAITING |NEW --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- "The initialization of a parameter, including every associated value computation and side effect, is indeterminately sequenced with respect to that of any other parameter." That's indeterminately sequenced, not unsequenced: "Evaluations A and B are indeterminately sequenced when either A is sequenced before B or B is sequenced before A, but it is unspecified which. [ Note: Indeterminately sequenced evaluations cannot overlap, but either could be executed first. — end note ]" So the function is called as foo(1, 2), but it's unspecified whether i==1 or i==2 afterwards.