summaryrefslogtreecommitdiff
path: root/tests/tadd1sp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tadd1sp.c')
-rw-r--r--tests/tadd1sp.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/tadd1sp.c b/tests/tadd1sp.c
index eda82bb41..62aa42a34 100644
--- a/tests/tadd1sp.c
+++ b/tests/tadd1sp.c
@@ -54,6 +54,24 @@ check_overflow (void)
set_emax (emax);
}
+static void
+bug20171217 (void)
+{
+ mpfr_t a, b, c;
+
+ mpfr_init2 (a, 137);
+ mpfr_init2 (b, 137);
+ mpfr_init2 (c, 137);
+ mpfr_set_str_binary (b, "0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66");
+ mpfr_set_str_binary (c, "0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2");
+ mpfr_add (a, b, c, MPFR_RNDN);
+ mpfr_set_str_binary (b, "0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1");
+ MPFR_ASSERTN(mpfr_equal_p (a, b));
+ mpfr_clear (a);
+ mpfr_clear (b);
+ mpfr_clear (c);
+}
+
int
main (void)
{
@@ -61,6 +79,7 @@ main (void)
tests_start_mpfr ();
+ bug20171217 ();
check_special ();
for(p = MPFR_PREC_MIN; p < 200 ; p++)
check_random (p);