diff --git a/src/racket/src/number.c b/src/racket/src/number.c index a1692629e4..c49e0e0f9d 100644 --- a/src/racket/src/number.c +++ b/src/racket/src/number.c @@ -2039,9 +2039,12 @@ real_to_double_flonum (int argc, Scheme_Object *argv[]) static Scheme_Object * real_to_long_double_flonum (int argc, Scheme_Object *argv[]) { - CHECK_MZ_LONG_DOUBLE_UNSUPPORTED("real->extfl"); #ifdef MZ_LONG_DOUBLE + CHECK_MZ_LONG_DOUBLE_UNSUPPORTED("real->extfl"); return scheme_TO_LONG_DOUBLE(argv[0]); +#else + scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "real->extfl" ": " NOT_SUPPORTED_STR); + ESCAPED_BEFORE_HERE; #endif } @@ -4015,7 +4018,8 @@ extfl_to_exact (int argc, Scheme_Object *argv[]) return scheme_rational_from_long_double(d); #else - CHECK_MZ_LONG_DOUBLE_UNSUPPORTED("extfl->exact"); + scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "extfl->exact" ": " NOT_SUPPORTED_STR); + ESCAPED_BEFORE_HERE; #endif } diff --git a/src/racket/src/numstr.c b/src/racket/src/numstr.c index 2484933329..d1596a1d19 100644 --- a/src/racket/src/numstr.c +++ b/src/racket/src/numstr.c @@ -1925,6 +1925,7 @@ static char *number_to_allocated_string(int radix, Scheme_Object *obj, int alloc "number", 1, obj, "requested base", 1, scheme_make_integer(radix), NULL); + memset(&stub, 0, sizeof(long_double)); s = double_to_string(SCHEME_FLOAT_VAL(obj), alloc, SCHEME_FLTP(obj), 0, stub); } else if (SCHEME_LONG_DBLP(obj)) { if (radix != 10)