author | Stefan Teleman <stefan.teleman@oracle.com> |
Mon, 26 Jan 2015 06:15:58 -0800 | |
changeset 3684 | 35dbb100a986 |
permissions | -rw-r--r-- |
3684
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
1 |
# Original patch for libmpfr 3.1.2 is here: |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
2 |
# http://www.mpfr.org/mpfr-3.1.2/patch11 |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
3 |
# Backported to libmpfr 2.4.2. |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
--- strtofr.c 2009-11-29 18:43:08.000000000 -0800 |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
5 |
+++ strtofr.c 2015-01-23 11:30:29.242406530 -0800 |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
6 |
@@ -464,8 +464,10 @@ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
7 |
/* prec bits corresponds to ysize limbs */ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
8 |
ysize_bits = ysize * BITS_PER_MP_LIMB; |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
9 |
/* and to ysize_bits >= prec > MPFR_PREC (x) bits */ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
10 |
- y = (mp_limb_t*) MPFR_TMP_ALLOC ((2 * ysize + 1) * sizeof (mp_limb_t)); |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
11 |
- y += ysize; /* y has (ysize+1) allocated limbs */ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
12 |
+ /* we need to allocate one more limb to work around |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
13 |
+ * https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html */ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
14 |
+ y = (mp_limb_t*) MPFR_TMP_ALLOC ((2 * ysize + 2) * sizeof (mp_limb_t)); |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
15 |
+ y += ysize; /* y has (ysize+2) allocated limbs */ |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
|
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
/* pstr_size is the number of characters we read in pstr->mant |
35dbb100a986
20300662 problem in LIBRARY/LIBMPFR
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
to have at least ysize full limbs. |