summaryrefslogtreecommitdiff
path: root/gcc/tree-if-conv.c
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-09 19:23:43 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-09 19:23:43 +0000
commitdf4ae4c4516593909d0074d4ddea3da9c0243fda (patch)
tree3d7e9821162a3ea039aaa73e75b610839ad30c8c /gcc/tree-if-conv.c
parent124e94e2fc4aca4e87c16390052155a5165a7031 (diff)
downloadgcc-df4ae4c4516593909d0074d4ddea3da9c0243fda.tar.gz
Fix PR46036.
2010-11-09 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/46036 * tree-if-conv.c (predicate_bbs): Call unshare_expr before add_to_dst_predicate_list. * gfortran.dg/lto/pr46036_0.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166508 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r--gcc/tree-if-conv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 642dbda24cb..17b66721e5d 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -928,7 +928,7 @@ predicate_bbs (loop_p loop)
&true_edge, &false_edge);
/* If C is true, then TRUE_EDGE is taken. */
- add_to_dst_predicate_list (loop, true_edge, cond, c);
+ add_to_dst_predicate_list (loop, true_edge, cond, unshare_expr (c));
/* If C is false, then FALSE_EDGE is taken. */
c2 = invert_truthvalue_loc (loc, unshare_expr (c));