Grant's answer is correct, it's undefined.
BUT,,,
By your example, your compiler seems to be evaluating in right-to-left order (unsurprisingly, the order that arguments are pushed onto the stack). If you can do other tests to show that the order is maintained consistently even with optimizations enabled, and if you're only going to stick with that one version of the compiler, you can safely assume right-to-left ordering.
It's totally non-portable and a horrible, horrible thing to do, though.