mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-26 16:01:06 +00:00
2e6a56d1cc
This changeset adds official patches published on mpfr website. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
139 lines
3.9 KiB
Diff
139 lines
3.9 KiB
Diff
diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES
|
|
--- mpfr-3.1.2-a/PATCHES 2014-06-30 15:17:53.337268149 +0000
|
|
+++ mpfr-3.1.2-b/PATCHES 2014-06-30 15:17:53.417270314 +0000
|
|
@@ -0,0 +1 @@
|
|
+vasprintf
|
|
diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION
|
|
--- mpfr-3.1.2-a/VERSION 2014-06-30 15:17:53.337268149 +0000
|
|
+++ mpfr-3.1.2-b/VERSION 2014-06-30 15:17:53.413270206 +0000
|
|
@@ -1 +1 @@
|
|
-3.1.2-p9
|
|
+3.1.2-p10
|
|
diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h
|
|
--- mpfr-3.1.2-a/src/mpfr.h 2014-06-30 15:17:53.337268149 +0000
|
|
+++ mpfr-3.1.2-b/src/mpfr.h 2014-06-30 15:17:53.413270206 +0000
|
|
@@ -27,7 +27,7 @@
|
|
#define MPFR_VERSION_MAJOR 3
|
|
#define MPFR_VERSION_MINOR 1
|
|
#define MPFR_VERSION_PATCHLEVEL 2
|
|
-#define MPFR_VERSION_STRING "3.1.2-p9"
|
|
+#define MPFR_VERSION_STRING "3.1.2-p10"
|
|
|
|
/* Macros dealing with MPFR VERSION */
|
|
#define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
|
|
diff -Naurd mpfr-3.1.2-a/src/vasprintf.c mpfr-3.1.2-b/src/vasprintf.c
|
|
--- mpfr-3.1.2-a/src/vasprintf.c 2013-11-15 00:51:49.267334408 +0000
|
|
+++ mpfr-3.1.2-b/src/vasprintf.c 2014-06-30 15:17:53.377269231 +0000
|
|
@@ -884,14 +884,18 @@
|
|
first digit, we want the exponent for radix two and the decimal
|
|
point AFTER the first digit. */
|
|
{
|
|
- MPFR_ASSERTN (exp > MPFR_EMIN_MIN /4); /* possible overflow */
|
|
+ /* An integer overflow is normally not possible since MPFR_EXP_MIN
|
|
+ is twice as large as MPFR_EMIN_MIN. */
|
|
+ MPFR_ASSERTN (exp > (MPFR_EXP_MIN + 3) / 4);
|
|
exp = (exp - 1) * 4;
|
|
}
|
|
else
|
|
/* EXP is the exponent for decimal point BEFORE the first digit, we
|
|
want the exponent for decimal point AFTER the first digit. */
|
|
{
|
|
- MPFR_ASSERTN (exp > MPFR_EMIN_MIN); /* possible overflow */
|
|
+ /* An integer overflow is normally not possible since MPFR_EXP_MIN
|
|
+ is twice as large as MPFR_EMIN_MIN. */
|
|
+ MPFR_ASSERTN (exp > MPFR_EXP_MIN);
|
|
--exp;
|
|
}
|
|
}
|
|
diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c
|
|
--- mpfr-3.1.2-a/src/version.c 2014-06-30 15:17:53.337268149 +0000
|
|
+++ mpfr-3.1.2-b/src/version.c 2014-06-30 15:17:53.413270206 +0000
|
|
@@ -25,5 +25,5 @@
|
|
const char *
|
|
mpfr_get_version (void)
|
|
{
|
|
- return "3.1.2-p9";
|
|
+ return "3.1.2-p10";
|
|
}
|
|
diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c
|
|
--- mpfr-3.1.2-a/tests/tsprintf.c 2013-11-15 00:51:49.267334408 +0000
|
|
+++ mpfr-3.1.2-b/tests/tsprintf.c 2014-06-30 15:17:53.377269231 +0000
|
|
@@ -1184,6 +1184,69 @@
|
|
check_emax_aux (MPFR_EMAX_MAX);
|
|
}
|
|
|
|
+static void
|
|
+check_emin_aux (mpfr_exp_t e)
|
|
+{
|
|
+ mpfr_t x;
|
|
+ char *s1, s2[256];
|
|
+ int i;
|
|
+ mpfr_exp_t emin;
|
|
+ mpz_t ee;
|
|
+
|
|
+ MPFR_ASSERTN (e >= LONG_MIN);
|
|
+ emin = mpfr_get_emin ();
|
|
+ set_emin (e);
|
|
+
|
|
+ mpfr_init2 (x, 16);
|
|
+ mpz_init (ee);
|
|
+
|
|
+ mpfr_setmin (x, e);
|
|
+ mpz_set_si (ee, e);
|
|
+ mpz_sub_ui (ee, ee, 1);
|
|
+
|
|
+ i = mpfr_asprintf (&s1, "%Ra", x);
|
|
+ MPFR_ASSERTN (i > 0);
|
|
+
|
|
+ gmp_snprintf (s2, 256, "0x1p%Zd", ee);
|
|
+
|
|
+ if (strcmp (s1, s2) != 0)
|
|
+ {
|
|
+ printf ("Error in check_emin_aux for emin = %ld\n", (long) e);
|
|
+ printf ("Expected %s\n", s2);
|
|
+ printf ("Got %s\n", s1);
|
|
+ exit (1);
|
|
+ }
|
|
+
|
|
+ mpfr_free_str (s1);
|
|
+
|
|
+ i = mpfr_asprintf (&s1, "%Rb", x);
|
|
+ MPFR_ASSERTN (i > 0);
|
|
+
|
|
+ gmp_snprintf (s2, 256, "1p%Zd", ee);
|
|
+
|
|
+ if (strcmp (s1, s2) != 0)
|
|
+ {
|
|
+ printf ("Error in check_emin_aux for emin = %ld\n", (long) e);
|
|
+ printf ("Expected %s\n", s2);
|
|
+ printf ("Got %s\n", s1);
|
|
+ exit (1);
|
|
+ }
|
|
+
|
|
+ mpfr_free_str (s1);
|
|
+
|
|
+ mpfr_clear (x);
|
|
+ mpz_clear (ee);
|
|
+ set_emin (emin);
|
|
+}
|
|
+
|
|
+static void
|
|
+check_emin (void)
|
|
+{
|
|
+ check_emin_aux (-15);
|
|
+ check_emin_aux (mpfr_get_emin ());
|
|
+ check_emin_aux (MPFR_EMIN_MIN);
|
|
+}
|
|
+
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
@@ -1203,6 +1266,7 @@
|
|
decimal ();
|
|
mixed ();
|
|
check_emax ();
|
|
+ check_emin ();
|
|
|
|
#if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE)
|
|
locale_da_DK ();
|