http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60319
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- 4.7 and lower is expected to show this behavior due to the bug that c++ is not properly implemented as c = (char)((int)c + 1) and thus we think that overflow is undefined. 4.8 and above has that fixed and thus shows different, working behavior.