diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-11-09 19:23:43 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-11-09 19:23:43 +0000 |
commit | 0104d6c71a694c717617dfc4c847641825ca094c (patch) | |
tree | 3d7e9821162a3ea039aaa73e75b610839ad30c8c /gcc/tree-if-conv.c | |
parent | fd99dfdffb204765440234841e78437f59aeb264 (diff) | |
download | gcc-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.c | 2 |
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)); |