diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES --- mpfr-4.1.0-a/PATCHES 2021-03-09 13:58:00.889650773 +0000 +++ mpfr-4.1.0-b/PATCHES 2021-03-09 13:58:00.937650249 +0000 @@ -0,0 +1 @@ +tset_sij diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION --- mpfr-4.1.0-a/VERSION 2021-03-09 13:55:43.223158508 +0000 +++ mpfr-4.1.0-b/VERSION 2021-03-09 13:58:00.937650249 +0000 @@ -1 +1 @@ -4.1.0-p10 +4.1.0-p11 diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h --- mpfr-4.1.0-a/src/mpfr.h 2021-03-09 13:55:43.223158508 +0000 +++ mpfr-4.1.0-b/src/mpfr.h 2021-03-09 13:58:00.933650293 +0000 @@ -27,7 +27,7 @@ #define MPFR_VERSION_MAJOR 4 #define MPFR_VERSION_MINOR 1 #define MPFR_VERSION_PATCHLEVEL 0 -#define MPFR_VERSION_STRING "4.1.0-p10" +#define MPFR_VERSION_STRING "4.1.0-p11" /* User macros: MPFR_USE_FILE: Define it to make MPFR define functions dealing diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c --- mpfr-4.1.0-a/src/version.c 2021-03-09 13:55:43.223158508 +0000 +++ mpfr-4.1.0-b/src/version.c 2021-03-09 13:58:00.933650293 +0000 @@ -25,5 +25,5 @@ const char * mpfr_get_version (void) { - return "4.1.0-p10"; + return "4.1.0-p11"; } diff -Naurd mpfr-4.1.0-a/tests/tset_si.c mpfr-4.1.0-b/tests/tset_si.c --- mpfr-4.1.0-a/tests/tset_si.c 2020-03-26 11:51:33.000000000 +0000 +++ mpfr-4.1.0-b/tests/tset_si.c 2021-03-09 13:58:00.917650467 +0000 @@ -127,27 +127,29 @@ power of 2 is exact, unless underflow/overflow occurs. The tests on the exponent below avoid integer overflows (ep[i] may take extreme values). */ - e = mpfr_get_exp (x1); mpfr_clear_flags (); - if (j != 0 && ep[i] < __gmpfr_emin - e) /* underflow */ + if (j == 0) + goto zero; + e = MPFR_GET_EXP (x1); + if (ep[i] < __gmpfr_emin - e) /* underflow */ { mpfr_rnd_t r = (rnd == MPFR_RNDN && - (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 || + (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 || IS_POW2 (sign * j))) ? MPFR_RNDZ : (mpfr_rnd_t) rnd; inex1 = mpfr_underflow (x1, r, sign); flags1 = __gmpfr_flags; } - else if (j != 0 && ep[i] > __gmpfr_emax - e) /* overflow */ + else if (ep[i] > __gmpfr_emax - e) /* overflow */ { inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign); flags1 = __gmpfr_flags; } else { - if (j != 0) - mpfr_set_exp (x1, ep[i] + e); + mpfr_set_exp (x1, ep[i] + e); + zero: flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0; } diff -Naurd mpfr-4.1.0-a/tests/tset_sj.c mpfr-4.1.0-b/tests/tset_sj.c --- mpfr-4.1.0-a/tests/tset_sj.c 2020-06-01 10:39:52.000000000 +0000 +++ mpfr-4.1.0-b/tests/tset_sj.c 2021-03-09 13:58:00.917650467 +0000 @@ -225,27 +225,29 @@ power of 2 is exact, unless underflow/overflow occurs. The tests on the exponent below avoid integer overflows (ep[i] may take extreme values). */ - e = mpfr_get_exp (x1); mpfr_clear_flags (); - if (j != 0 && ep[i] < __gmpfr_emin - e) /* underflow */ + if (j == 0) + goto zero; + e = MPFR_GET_EXP (x1); + if (ep[i] < __gmpfr_emin - e) /* underflow */ { mpfr_rnd_t r = (rnd == MPFR_RNDN && - (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 || + (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 || IS_POW2 (sign * j))) ? MPFR_RNDZ : (mpfr_rnd_t) rnd; inex1 = mpfr_underflow (x1, r, sign); flags1 = __gmpfr_flags; } - else if (j != 0 && ep[i] > __gmpfr_emax - e) /* overflow */ + else if (ep[i] > __gmpfr_emax - e) /* overflow */ { inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign); flags1 = __gmpfr_flags; } else { - if (j != 0) - mpfr_set_exp (x1, ep[i] + e); + mpfr_set_exp (x1, ep[i] + e); + zero: flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0; } }