http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-07-08 17:55:35 UTC --- You are invoking undefined behavior because C++ does not specify what order of the operands happen first.