aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfgcleanup.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-01-14 13:06:47 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-01-14 13:06:47 +0000
commit2724573f24083c08baff5bc6754421ba43f868ab (patch)
tree08cce6557bd5a1afa5a7349478aa1958b6201cf3 /gcc/tree-cfgcleanup.c
parent9a0bbab603878eacaea82fbcb345c0d0736765be (diff)
downloadgcc-2724573f24083c08baff5bc6754421ba43f868ab.zip
gcc-2724573f24083c08baff5bc6754421ba43f868ab.tar.gz
gcc-2724573f24083c08baff5bc6754421ba43f868ab.tar.bz2
tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated PHI argument.
2013-01-14 Richard Biener <rguenther@suse.de> * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated PHI argument. * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly unshare reference. (insert_out_of_ssa_copy_on_edge): Likewise. (rewrite_close_phi_out_of_ssa): Likewise. * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare debug expressions. * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare propagated constants. * tree-cfg.c (tree_node_can_be_shared): Handled component-refs can not be shared. From-SVN: r195144
Diffstat (limited to 'gcc/tree-cfgcleanup.c')
-rw-r--r--gcc/tree-cfgcleanup.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index 98b384e..b26281d 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -412,7 +412,8 @@ remove_forwarder_block (basic_block bb)
{
gimple phi = gsi_stmt (gsi);
source_location l = gimple_phi_arg_location_from_edge (phi, succ);
- add_phi_arg (phi, gimple_phi_arg_def (phi, succ->dest_idx), s, l);
+ tree def = gimple_phi_arg_def (phi, succ->dest_idx);
+ add_phi_arg (phi, unshare_expr (def), s, l);
}
}
}