aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-split.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2017-01-23 13:57:31 +0000
committerMichael Matz <matz@gcc.gnu.org>2017-01-23 13:57:31 +0000
commitd886761fd048a6ad77dc7c927cbedfa503cfe01b (patch)
treedd7485c0099e0902ae8a40fcb826efe1f1f8cc6d /gcc/tree-ssa-loop-split.c
parentb4fad9fa0e762c8e79c8d93fedcb3c929a29f4ee (diff)
downloadgcc-d886761fd048a6ad77dc7c927cbedfa503cfe01b.zip
gcc-d886761fd048a6ad77dc7c927cbedfa503cfe01b.tar.gz
gcc-d886761fd048a6ad77dc7c927cbedfa503cfe01b.tar.bz2
fix pr78384
PR tree-optimization/78384 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. testsuite/ PR tree-optimization/78384 * gcc.dg/pr78384.c: New test. From-SVN: r244811
Diffstat (limited to 'gcc/tree-ssa-loop-split.c')
-rw-r--r--gcc/tree-ssa-loop-split.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-split.c b/gcc/tree-ssa-loop-split.c
index 7809db0..f104b26 100644
--- a/gcc/tree-ssa-loop-split.c
+++ b/gcc/tree-ssa-loop-split.c
@@ -159,7 +159,7 @@ patch_loop_exit (struct loop *loop, gcond *guard, tree nextval, tree newbound,
nextval, newbound);
update_stmt (stmt);
- edge stay = single_pred_edge (loop->latch);
+ edge stay = EDGE_SUCC (exit->src, EDGE_SUCC (exit->src, 0) == exit);
exit->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
stay->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);