diff options
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
-rw-r--r-- | gcc/tree-ssa-loop-niter.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c index 7dbb8c3..48e2045 100644 --- a/gcc/tree-ssa-loop-niter.c +++ b/gcc/tree-ssa-loop-niter.c @@ -94,8 +94,10 @@ split_to_var_and_offset (tree expr, tree *var, mpz_t offset) *var = op0; /* Always sign extend the offset. */ - off = double_int_sext (tree_to_double_int (op1), - TYPE_PRECISION (type)); + 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); break; |