summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2015-03-30 14:57:17 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2015-03-30 14:57:17 +0000
commit0989bd965576a3205271be9627e3b8209285b6ef (patch)
treef241d9becc808ed30a704777c9e78c8e90562721
parent9dd316071cd429813370f1a5750df94c7b274cf4 (diff)
downloadmpfr-0989bd965576a3205271be9627e3b8209285b6ef.tar.gz
[src/sum.c] Bug triggered by the check4 test fixed.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/new-sum@9356 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/sum.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/sum.c b/src/sum.c
index ccfa46165..f7e48802e 100644
--- a/src/sum.c
+++ b/src/sum.c
@@ -584,7 +584,11 @@ sum_aux (mpfr_ptr sum, mpfr_ptr *const x, unsigned long n, mpfr_rnd_t rnd,
which the rounding direction will be determined. */
MPFR_LOG_MSG (("Determine the sticky bit...\n", 0));
- inex = td >= 2 ? (wp[wi] & MPFR_LIMB_MASK (td - 1)) != 0 : 0;
+ inex = td >= 2 ? (wp[wi] & MPFR_LIMB_MASK (td - 1)) != 0
+ : td == 0 ?
+ (MPFR_ASSERTD (wi >= 1),
+ (wp[--wi] & MPFR_LIMB_MASK (GMP_NUMB_BITS - 1)) != 0)
+ : 0;
if (!inex)
{