summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2007-10-09 11:04:46 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2007-10-09 11:04:46 +0000
commit94172876940bd493e6c193e46dfacaa77d1f8606 (patch)
tree380064bdc5ece64e0334820d84d2da25451f50cd /gcc/tree-ssa-loop-im.c
parentedbed3d31e8f6981f4bf4692c132b95081ab5112 (diff)
downloadgcc-94172876940bd493e6c193e46dfacaa77d1f8606.tar.gz
re PR tree-optimization/33615 (Hoisting of potentially-throwing values for -fnon-call-exceptions)
gcc/ PR tree-optimization/33615 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE if the rhs might throw. gcc/testsuite/ PR tree-optimization/33615 * g++.dg/tree-ssa/pr33615.C: New test. From-SVN: r129163
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r--gcc/tree-ssa-loop-im.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index d2ab41ce054..83ad70c2890 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -260,7 +260,8 @@ movement_possibility (tree stmt)
rhs = GIMPLE_STMT_OPERAND (stmt, 1);
- if (TREE_SIDE_EFFECTS (rhs))
+ if (TREE_SIDE_EFFECTS (rhs)
+ || tree_could_throw_p (rhs))
return MOVE_IMPOSSIBLE;
if (TREE_CODE (lhs) != SSA_NAME