diff options
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 3b35ca4..246b34c 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -3853,13 +3853,15 @@ cleanup_empty_eh_merge_phis (basic_block new_bb, basic_block old_bb, FOR_EACH_EDGE (e, ei, old_bb->preds) { location_t oloc; + tree oblock; tree oop; if ((e->flags & EDGE_EH) == 0) continue; oop = gimple_phi_arg_def (ophi, e->dest_idx); oloc = gimple_phi_arg_location (ophi, e->dest_idx); - redirect_edge_var_map_add (e, nresult, oop, oloc); + oblock = gimple_phi_arg_block (ophi, e->dest_idx); + redirect_edge_var_map_add (e, nresult, oop, oloc, oblock); } } /* If we didn't find the PHI, but it's a VOP, remember to rename @@ -3874,8 +3876,9 @@ cleanup_empty_eh_merge_phis (basic_block new_bb, basic_block old_bb, { location_t nloc = gimple_phi_arg_location (nphi, old_bb_out->dest_idx); + tree nblock = gimple_phi_arg_block (nphi, old_bb_out->dest_idx); FOR_EACH_EDGE (e, ei, old_bb->preds) - redirect_edge_var_map_add (e, nresult, nop, nloc); + redirect_edge_var_map_add (e, nresult, nop, nloc, nblock); } } |