diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-09-10 19:17:57 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-09-10 19:17:57 +0000 |
commit | 79f591c2fe608c7497a87f6f4cf621c0fd8d62b0 (patch) | |
tree | 3a9bd0df194d151b9a9d6d6e1b36ab18ff86c722 /src/strtofr.c | |
parent | 3bf2518bb4947d0ef393b2fcb04997ea511ce7fe (diff) | |
download | mpfr-79f591c2fe608c7497a87f6f4cf621c0fd8d62b0.tar.gz |
[src/strtofr.c] fix from r13163 was incorrect
[tests/tget_str.c] added a testcase, and fixed an error message
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@13164 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/strtofr.c')
-rw-r--r-- | src/strtofr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/strtofr.c b/src/strtofr.c index 5f4b80e72..703caa7b2 100644 --- a/src/strtofr.c +++ b/src/strtofr.c @@ -570,7 +570,11 @@ parsed_string_to_mpfr (mpfr_t x, struct parsed_string *pstr, mpfr_rnd_t rnd) exact = mpn_rshift (y, y, real_ysize, GMP_NUMB_BITS - count) == MPFR_LIMB_ZERO; else - exact = 1; + { + /* copy {y+1, real_ysize-1} to {y, real_ysize-1} */ + exact = y[0] == MPFR_LIMB_ZERO; + mpn_copyi (y, y + 1, real_ysize - 1); + } /* for each bit shift increase exponent of y */ exp = GMP_NUMB_BITS - count; } |