https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63347
--- Comment #3 from Mikael Pettersson <mikpelinux at gmail dot com> --- I can't reproduce with a vanilla gcc-4.8.3 configured for m68k-elf. For the "if (0x0 == haddr) ..." it generates: lea (20,%sp),%sp tst.l %d2 seq %d2 extb.l %d2 neg.l %d2 which looks correct and matches your 4.7 output. How was your gcc configured?