On Fri, Aug 21, 2015 at 12:52 PM, Marek Polacek <pola...@redhat.com> wrote: > This fixes the libgo breakage. Seems I really should have removed the > edge after we split the block with null dereference after __builtin_trap > statement so that it's unreachable. > > Bootstrapped/regtested on x86_64-linux + ppc64-linux + bootstrapped on > aarch64-linux, ok for trunk?
Hum. I don't see why this is needed - CFG cleanup (which of course needs to run!) should do this for you. In fact stray unreachable blocks are usually more of a problem. Richard. > 2015-08-21 Marek Polacek <pola...@redhat.com> > > PR tree-optimization/67284 > * gimple-ssa-isolate-paths.c (insert_trap): Remove the edge after > we split a block. > > diff --git gcc/gimple-ssa-isolate-paths.c gcc/gimple-ssa-isolate-paths.c > index ca2322d..5ac61d3 100644 > --- gcc/gimple-ssa-isolate-paths.c > +++ gcc/gimple-ssa-isolate-paths.c > @@ -115,7 +115,8 @@ insert_trap (gimple_stmt_iterator *si_p, tree op) > else > gsi_insert_before (si_p, seq, GSI_NEW_STMT); > > - split_block (gimple_bb (new_stmt), new_stmt); > + edge e = split_block (gimple_bb (new_stmt), new_stmt); > + remove_edge (e); > *si_p = gsi_for_stmt (stmt); > } > > > Marek