aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dom.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-11-20 12:18:58 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-11-20 12:18:58 +0000
commitc1d21cd17bce162e7afac5a1849d193952221ce8 (patch)
tree863cd0e7dcc110deef48aa27676d296ec8b95768 /gcc/tree-ssa-dom.c
parentb613740815fa921b1210f87aed3d01a00a59e8bf (diff)
downloadgcc-c1d21cd17bce162e7afac5a1849d193952221ce8.zip
gcc-c1d21cd17bce162e7afac5a1849d193952221ce8.tar.gz
gcc-c1d21cd17bce162e7afac5a1849d193952221ce8.tar.bz2
re PR tree-optimization/88074 (g++ hangs on math expression)
2018-11-20 Richard Biener <rguenther@suse.de> PR tree-optimization/88074 * tree-ssa-dom.c (pass_dominator::execute): Do not walk backedges. * gcc.dg/pr88074.c: New testcase. From-SVN: r266313
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r--gcc/tree-ssa-dom.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index c50618d..7787da8 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -777,7 +777,8 @@ pass_dominator::execute (function *fun)
if (bb == NULL)
continue;
while (single_succ_p (bb)
- && (single_succ_edge (bb)->flags & EDGE_EH) == 0)
+ && (single_succ_edge (bb)->flags
+ & (EDGE_EH|EDGE_DFS_BACK)) == 0)
bb = single_succ (bb);
if (bb == EXIT_BLOCK_PTR_FOR_FN (fun))
continue;