From abb0374b7f05425910d7e770a85e794c955dad35 Mon Sep 17 00:00:00 2001 From: vlefevre Date: Fri, 31 Aug 2018 15:40:23 +0000 Subject: [src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift, making sure that the shifted argument is unsigned (needed due to the integer promotion rules when mp_limb_t is defined as an unsigned short). [src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@13101 280ebfd0-de03-0410-8827-d642c229c3f4 --- src/add1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/add1.c') diff --git a/src/add1.c b/src/add1.c index 880c49ccf..f1419f7f1 100644 --- a/src/add1.c +++ b/src/add1.c @@ -404,7 +404,7 @@ mpfr_add1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode) if (fb || ck < 0) goto rounding; - if (difs && MPFR_LIMB(cprev << (GMP_NUMB_BITS - difs)) != 0) + if (difs && MPFR_LIMB_LSHIFT(cprev, GMP_NUMB_BITS - difs) != 0) { fb = 1; goto rounding; -- cgit v1.2.1