diff options
author | Richard Biener <rguenther@suse.de> | 2018-10-23 08:51:20 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-10-23 08:51:20 +0000 |
commit | a26eaf981dd83a9dc3ec7caa8d0350e1c760ee27 (patch) | |
tree | f1e37a9448d0b2430add75ba6cb78f68e05f1272 /gcc/tree-ssa-threadedge.c | |
parent | 2efade53fe39a9bd526997fb7cfe1d1d171a715d (diff) | |
download | gcc-a26eaf981dd83a9dc3ec7caa8d0350e1c760ee27.zip gcc-a26eaf981dd83a9dc3ec7caa8d0350e1c760ee27.tar.gz gcc-a26eaf981dd83a9dc3ec7caa8d0350e1c760ee27.tar.bz2 |
re PR tree-optimization/87693 (ICE in thread_around_empty_blocks, at tree-ssa-threadedge.c:984)
2018-10-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/87693
* tree-ssa-threadedge.c (thread_around_empty_blocks): Handle
the case we do not find the taken edge.
* gcc.dg/torture/pr87693.c: New testcase.
From-SVN: r265413
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 0b1f973..330ba15 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -981,7 +981,8 @@ thread_around_empty_blocks (edge taken_edge, else taken_edge = find_taken_edge (bb, cond); - if ((taken_edge->flags & EDGE_DFS_BACK) != 0) + if (!taken_edge + || (taken_edge->flags & EDGE_DFS_BACK) != 0) return false; if (bitmap_bit_p (visited, taken_edge->dest->index)) |