aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c7
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);
}
}