aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-01-14 13:06:47 +0000
committerRichard Biener <rguenther@suse.de>2013-01-14 13:06:47 +0000
commitc72067e10c9a4596f90c13e631e6b1e58e36b1a0 (patch)
tree08cce6557bd5a1afa5a7349478aa1958b6201cf3 /gcc/tree-ssa-pre.c
parentf3ddbb361157454869085d136672702e707682ab (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@195144 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 186ea90b772..9ccec2156eb 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3246,7 +3246,8 @@ insert_into_preds_of_block (basic_block block, unsigned int exprnum,
gcc_assert (get_expr_type (ae) == type
|| useless_type_conversion_p (type, get_expr_type (ae)));
if (ae->kind == CONSTANT)
- add_phi_arg (phi, PRE_EXPR_CONSTANT (ae), pred, UNKNOWN_LOCATION);
+ add_phi_arg (phi, unshare_expr (PRE_EXPR_CONSTANT (ae)),
+ pred, UNKNOWN_LOCATION);
else
add_phi_arg (phi, PRE_EXPR_NAME (ae), pred, UNKNOWN_LOCATION);
}