If foo and bar are functions,
foo() > bar() ? foo() : bar()
can have a different result than int __x = foo();
int __y = bar();
__x > __y ? __x : __y