Is there a sequence point between the two assignments in the following code:
f(f(x=1,1),x=2);
No there isn't. The standard is indeed ambiguous in this case.
If you want to confirm that, gcc has this really cool option -Wsequence-point and in this case it will warn you that the operation may be undefined
-Wsequence-point