summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2018-08-20 07:44:49 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2018-08-20 07:44:49 +0000
commitb7979898ecf162ea205241538ef06b696a861b4e (patch)
treece00c50f8fab1454c75d106db62309a5f6e60cbe
parent73849bcd00d9df0df6fccf31a57bfeaee28ad423 (diff)
downloadmpfr-b7979898ecf162ea205241538ef06b696a861b4e.tar.gz
[src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential
integer overflow in MPFR_MPZ_SIZEINBASE2. (merged changeset r12988 from the trunk) git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/4.0@12994 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/mpfr-impl.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mpfr-impl.h b/src/mpfr-impl.h
index d4b27bb9a..103d77733 100644
--- a/src/mpfr-impl.h
+++ b/src/mpfr-impl.h
@@ -1415,15 +1415,15 @@ do { \
#define mpfr_get_d1(x) mpfr_get_d(x,__gmpfr_default_rounding_mode)
/* Store in r the size in bits of the mpz_t z */
-#define MPFR_MPZ_SIZEINBASE2(r, z) \
- do { \
- int _cnt; \
- mp_size_t _size; \
- MPFR_ASSERTD (mpz_sgn (z) != 0); \
- _size = ABSIZ(z); \
- MPFR_ASSERTD (_size >= 1); \
- count_leading_zeros (_cnt, PTR(z)[_size-1]); \
- (r) = _size * GMP_NUMB_BITS - _cnt; \
+#define MPFR_MPZ_SIZEINBASE2(r, z) \
+ do { \
+ int _cnt; \
+ mp_size_t _size; \
+ MPFR_ASSERTD (mpz_sgn (z) != 0); \
+ _size = ABSIZ(z); \
+ MPFR_ASSERTD (_size >= 1); \
+ count_leading_zeros (_cnt, PTR(z)[_size-1]); \
+ (r) = (mp_bitcnt_t) _size * GMP_NUMB_BITS - _cnt; \
} while (0)
/* MPFR_LCONV_DPTS can also be forced to 0 or 1 by the user. */