diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-20 14:54:05 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-20 14:54:05 +0000 |
commit | 9c7bc76af5af06c1dd34f8c54e754a16a4b29e5b (patch) | |
tree | d5b9b3b700debba1214bc3a839ff75ecf3f9080b /src/gmp_op.c | |
parent | 42b0e9591536209a97107fecefef572b5a99aaf5 (diff) | |
download | mpfr-9c7bc76af5af06c1dd34f8c54e754a16a4b29e5b.tar.gz |
[src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag
was set by mpfr_set_q, but the flags were not restored just after.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12343 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/gmp_op.c')
-rw-r--r-- | src/gmp_op.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gmp_op.c b/src/gmp_op.c index 4aecede69..06c082036 100644 --- a/src/gmp_op.c +++ b/src/gmp_op.c @@ -466,8 +466,12 @@ mpfr_cmp_q (mpfr_srcptr x, mpq_srcptr q) if (MPFR_UNLIKELY (mpq_denref (q) == 0)) { /* q is an infinity or NaN */ - mpfr_init2 (t, 2); + mpfr_flags_t old_flags; + + mpfr_init2 (t, MPFR_PREC_MIN); + old_flags = __gmpfr_flags; mpfr_set_q (t, q, MPFR_RNDN); + __gmpfr_flags = old_flags; res = mpfr_cmp (x, t); mpfr_clear (t); return res; |