http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59019
--- Comment #8 from Jeffrey A. Law <law at redhat dot com> --- This has gone latent. Regardless it's relatively easy to fix things up in combine -- which does similar kinds of things when it's able to collapse a conditional jump to an unconditional jump and the like. I'm testing that now (with a hack that exposes this bug again to ensure the combine.c bits get exercised). Basically we just have to remove the now dead insns from the block, zap the outgoing edges and emit the barrier. Steven, the reason conditional traps are not considered control flow altering is that in the event of a trap, then stop execution. If the condition is false, they carry-on. I can see both sides the "they should be considered control flow altering" -- I'm not passionate enough about either to make a big deal of it. Eric, in the chaos of the last few days, I didn't save any of the spots that I had to change to make conditional traps control flow altering. I went through 3 or 4 places that needed fixing, then decide to look at working within the current scheme by fixing up combine...