summaryrefslogtreecommitdiff
path: root/mpz/fdiv_qr.c
diff options
context:
space:
mode:
authortege <tege@gmplib.org>2000-06-06 13:48:57 +0200
committertege <tege@gmplib.org>2000-06-06 13:48:57 +0200
commit780562566b9c9efcd298b34b955a9d1a35d3125f (patch)
treec8ea3cf01ba4fc76bea9d07bbb3f1e44063e66c0 /mpz/fdiv_qr.c
parent49adf99da56541fcfbf0c30668e2ddde56200cf9 (diff)
downloadgmp-780562566b9c9efcd298b34b955a9d1a35d3125f.tar.gz
Read dividend->_mp_size before calling mpz_tdiv_qr.
Diffstat (limited to 'mpz/fdiv_qr.c')
-rw-r--r--mpz/fdiv_qr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mpz/fdiv_qr.c b/mpz/fdiv_qr.c
index 2abb16ccb..1120fa01f 100644
--- a/mpz/fdiv_qr.c
+++ b/mpz/fdiv_qr.c
@@ -35,6 +35,7 @@ mpz_fdiv_qr (quot, rem, dividend, divisor)
#endif
{
mp_size_t divisor_size = divisor->_mp_size;
+ mp_size_t xsize;
mpz_t temp_divisor; /* N.B.: lives until function returns! */
TMP_DECL (marker);
@@ -50,9 +51,10 @@ mpz_fdiv_qr (quot, rem, dividend, divisor)
divisor = temp_divisor;
}
+ xsize = dividend->_mp_size ^ divisor_size;;
mpz_tdiv_qr (quot, rem, dividend, divisor);
- if ((divisor_size ^ dividend->_mp_size) < 0 && rem->_mp_size != 0)
+ if (xsize < 0 && rem->_mp_size != 0)
{
mpz_sub_ui (quot, quot, 1L);
mpz_add (rem, rem, divisor);