From 139452dcc2d603630d90b236e645bb51bfd3395e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 8 Jul 2014 08:00:16 +0100 Subject: [PATCH] read: fix long-double error reporting This repair corrects an ocassional test failure in the `read` test suite. --- racket/src/racket/src/numstr.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/racket/src/racket/src/numstr.c b/racket/src/racket/src/numstr.c index b733697358..375e9565ad 100644 --- a/racket/src/racket/src/numstr.c +++ b/racket/src/racket/src/numstr.c @@ -999,14 +999,16 @@ Scheme_Object *scheme_read_number(const mzchar *str, intptr_t len, stxsrc, line, col, pos, span, indentation); - if (!SCHEME_LONG_DBLP(n2)) + if (!SCHEME_LONG_DBLP(n2)) { n2 = scheme_exact_to_inexact(1, &n2); /* uses default conversion: float or double */ - d2 = SCHEME_FLOAT_VAL(n2); - - /* This +nan.0 test looks unnecessary -- Matthew, 08/14/01 */ - if (MZ_IS_NAN(d2)) - return scheme_false; + d2 = SCHEME_FLOAT_VAL(n2); + + /* This +nan.0 test looks unnecessary -- Matthew, 08/14/01 */ + if (MZ_IS_NAN(d2)) + return scheme_false; + } else + d2 = 0.0; /* not used; will signal error later */ n1 = scheme_read_number(first, has_at - delta, is_float, is_not_float, decimal_means_float,