Question on Intel C++ 64 compiler (version 11.1.065). In some cases the order of evaluation is very important and are rescued by placement of brackets. With -O2 option program considers wrong (apart brackets!), with the option -Od believes correctly. Microsoft compiler always creates a correct program.
For more complete information about compiler optimizations, see our Optimization Notice.