aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2010-11-29 18:08:16 +0100
committerUros Bizjak <uros@gcc.gnu.org>2010-11-29 18:08:16 +0100
commiteab1da69ad8a6f76c60e5045a403cb8a924aa713 (patch)
tree2a6452fc40b80c08fdbdc1ef264f86f955950998 /gcc/tree-ssa-loop-niter.c
parent37fc948fee7216ab6d9d62375f56ed18b062b0d1 (diff)
downloadgcc-eab1da69ad8a6f76c60e5045a403cb8a924aa713.zip
gcc-eab1da69ad8a6f76c60e5045a403cb8a924aa713.tar.gz
gcc-eab1da69ad8a6f76c60e5045a403cb8a924aa713.tar.bz2
[multiple changes]
2010-11-29 Zdenek Dvorak <rakdver@kam.uniff.cz> PR tree-optimization/46675 * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow in offset calculation. testsuite/ChangeLog: 2010-11-29 Richard Guenther <rguenther@suse.de> Zdenek Dvorak <rakdver@kam.uniff.cz> PR tree-optimization/46675 * gcc.dg/pr46675.c: New test. From-SVN: r167256
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
-rw-r--r--gcc/tree-ssa-loop-niter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 94d150d..466cdae 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -95,10 +95,10 @@ split_to_var_and_offset (tree expr, tree *var, mpz_t offset)
*var = op0;
/* Always sign extend the offset. */
off = tree_to_double_int (op1);
- if (negate)
- off = double_int_neg (off);
off = double_int_sext (off, TYPE_PRECISION (type));
mpz_set_double_int (offset, off, false);
+ if (negate)
+ mpz_neg (offset, offset);
break;
case INTEGER_CST: