summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-10 12:42:12 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-10 12:42:12 +0000
commit9102193bc3a4c6038384499af73d184cb9ed94a1 (patch)
tree7a112474bb4b7e4cee714fe39dc9c03ca0b0a989 /gcc/tree-ssa-loop-im.c
parentd9d975aeb725848ac143e7d6184a994614599856 (diff)
downloadgcc-9102193bc3a4c6038384499af73d184cb9ed94a1.tar.gz
PR tree-optimization/46864
* tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even when there are EDGE_EH exit edges. * g++.dg/opt/pr46864.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167685 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r--gcc/tree-ssa-loop-im.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 45902e5bafd..30faeb9319d 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -2369,7 +2369,7 @@ loop_suitable_for_sm (struct loop *loop ATTRIBUTE_UNUSED,
edge ex;
FOR_EACH_VEC_ELT (edge, exits, i, ex)
- if (ex->flags & EDGE_ABNORMAL)
+ if (ex->flags & (EDGE_ABNORMAL | EDGE_EH))
return false;
return true;