aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-08-26 08:03:32 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-08-26 08:03:32 +0000
commit8b2282660d24cce8198352f39ab1566af332716e (patch)
tree2b0ab2f8afd3c42dedec59e572f19c4142dbf52c /gcc/tree-ssa-loop-niter.c
parent94d64bbd614a380a111db37f8c33fd6d4d6495e2 (diff)
downloadgcc-8b2282660d24cce8198352f39ab1566af332716e.zip
gcc-8b2282660d24cce8198352f39ab1566af332716e.tar.gz
gcc-8b2282660d24cce8198352f39ab1566af332716e.tar.bz2
re PR c++/62175 (Internal compiler error in gimplify_modify_expr gimplify.c:4616)
2014-08-26 Richard Biener <rguenther@suse.de> PR tree-optimization/62175 * tree-ssa-loop-niter.c (expand_simple_operations): Do not expand possibly trapping operations. * g++.dg/torture/pr62175.C: New testcase. From-SVN: r214492
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
-rw-r--r--gcc/tree-ssa-loop-niter.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index d4d3e53..4da1855 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -1633,6 +1633,9 @@ expand_simple_operations (tree expr)
case PLUS_EXPR:
case MINUS_EXPR:
+ if (TYPE_OVERFLOW_TRAPS (TREE_TYPE (expr)))
+ return expr;
+ /* Fallthru. */
case POINTER_PLUS_EXPR:
/* And increments and decrements by a constant are simple. */
e1 = gimple_assign_rhs2 (stmt);