diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2010-11-29 18:08:16 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2010-11-29 18:08:16 +0100 |
commit | eab1da69ad8a6f76c60e5045a403cb8a924aa713 (patch) | |
tree | 2a6452fc40b80c08fdbdc1ef264f86f955950998 /gcc/tree-ssa-loop-niter.c | |
parent | 37fc948fee7216ab6d9d62375f56ed18b062b0d1 (diff) | |
download | gcc-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.c | 4 |
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: |