diff -Naurd mpfr-3.1.3-a/PATCHES mpfr-3.1.3-b/PATCHES --- mpfr-3.1.3-a/PATCHES 2016-02-23 07:43:23.702095604 +0000 +++ mpfr-3.1.3-b/PATCHES 2016-02-23 07:43:23.726095285 +0000 @@ -0,0 +1 @@ +gamma diff -Naurd mpfr-3.1.3-a/VERSION mpfr-3.1.3-b/VERSION --- mpfr-3.1.3-a/VERSION 2016-02-15 15:20:51.306696441 +0000 +++ mpfr-3.1.3-b/VERSION 2016-02-23 07:43:23.726095285 +0000 @@ -1 +1 @@ -3.1.3-p12 +3.1.3-p13 diff -Naurd mpfr-3.1.3-a/src/gamma.c mpfr-3.1.3-b/src/gamma.c --- mpfr-3.1.3-a/src/gamma.c 2015-06-19 19:55:09.000000000 +0000 +++ mpfr-3.1.3-b/src/gamma.c 2016-02-23 07:43:23.718095391 +0000 @@ -70,6 +70,9 @@ { mpfr_t x, y; unsigned long r, k; + MPFR_SAVE_EXPO_DECL (expo); + + MPFR_SAVE_EXPO_MARK (expo); mpfr_init2 (x, 38); mpfr_init2 (y, 38); mpfr_set_ui (x, n, MPFR_RNDZ); @@ -86,6 +89,8 @@ r -= n / k; mpfr_clear (x); mpfr_clear (y); + MPFR_SAVE_EXPO_FREE (expo); + return r; } diff -Naurd mpfr-3.1.3-a/src/mpfr.h mpfr-3.1.3-b/src/mpfr.h --- mpfr-3.1.3-a/src/mpfr.h 2016-02-15 15:20:51.302696439 +0000 +++ mpfr-3.1.3-b/src/mpfr.h 2016-02-23 07:43:23.726095285 +0000 @@ -27,7 +27,7 @@ #define MPFR_VERSION_MAJOR 3 #define MPFR_VERSION_MINOR 1 #define MPFR_VERSION_PATCHLEVEL 3 -#define MPFR_VERSION_STRING "3.1.3-p12" +#define MPFR_VERSION_STRING "3.1.3-p13" /* Macros dealing with MPFR VERSION */ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) diff -Naurd mpfr-3.1.3-a/src/version.c mpfr-3.1.3-b/src/version.c --- mpfr-3.1.3-a/src/version.c 2016-02-15 15:20:51.306696441 +0000 +++ mpfr-3.1.3-b/src/version.c 2016-02-23 07:43:23.726095285 +0000 @@ -25,5 +25,5 @@ const char * mpfr_get_version (void) { - return "3.1.3-p12"; + return "3.1.3-p13"; } diff -Naurd mpfr-3.1.3-a/tests/tgamma.c mpfr-3.1.3-b/tests/tgamma.c --- mpfr-3.1.3-a/tests/tgamma.c 2015-06-19 19:55:10.000000000 +0000 +++ mpfr-3.1.3-b/tests/tgamma.c 2016-02-23 07:43:23.718095391 +0000 @@ -192,6 +192,18 @@ exit (1); } + mpfr_set_prec (x, 2); + mpfr_set_prec (y, 2); + mpfr_set_ui (x, 2, MPFR_RNDN); + mpfr_clear_inexflag (); + mpfr_gamma (y, x, MPFR_RNDN); + if (mpfr_inexflag_p ()) + { + printf ("Wrong inexact flag for gamma(2)\n"); + printf ("expected 0, got 1\n"); + exit (1); + } + mpfr_clear (x); mpfr_clear (y); }