15.12 Expression evaluation
Describes implementation-defined aspects of the ARM C compiler and C library relating to expression evaluation, as required by the ISO C standard.
The compiler can re-order expressions involving only associative
and commutative operators of equal precedence, even in the presence
of parentheses. For example,
a + (b + c) might
be evaluated as
(a + b) + c if
c are integer expressions.
Between sequence points, the compiler can evaluate expressions
in any order, regardless of parentheses. Therefore, side effects
of expressions between sequence points can occur in any order.
The compiler can evaluate function arguments in any order.
Any aspect of evaluation order not prescribed by the relevant
standard can be varied by: