aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-if-conv.c
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-11-09 19:23:43 +0000
committerSebastian Pop <spop@gcc.gnu.org>2010-11-09 19:23:43 +0000
commit0104d6c71a694c717617dfc4c847641825ca094c (patch)
tree3d7e9821162a3ea039aaa73e75b610839ad30c8c /gcc/tree-if-conv.c
parentfd99dfdffb204765440234841e78437f59aeb264 (diff)
downloadgcc-0104d6c71a694c717617dfc4c847641825ca094c.zip
gcc-0104d6c71a694c717617dfc4c847641825ca094c.tar.gz
gcc-0104d6c71a694c717617dfc4c847641825ca094c.tar.bz2
re PR tree-optimization/46036 (verify_ssa failed: definition in block 3 follows the use)
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. From-SVN: r166508
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 642dbda..17b6672 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));