http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49174
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-05-28 12:13:06 UTC --- Besides which, we *are* following it to the letter, see 1.9 [intro.execution] paragraph 1 and the accompanying footnote 5) This provision is sometimes called the “as-if” rule, because an implementation is free to disregard any requirement of this International Standard as long as the result is as if the requirement had been obeyed, as far as can be determined from the observable behavior of the program. For instance, an actual implementation need not evaluate part of an expression if it can deduce that its value is not used and that no side effects affecting the observable behavior of the program are produced. If there's an observable difference then it's a problem, otherwise it's irrelevant.