From 1286ec752889fabedc02516b52a1dc00af2db277 Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Wed, 22 May 2002 16:50:41 +0000 Subject: [PATCH] No need to check for overflows while reading numbers -- make_shortfloat and make_longfloat take care of that. --- src/c/read.d | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/c/read.d b/src/c/read.d index 300ebc7c7..585d466a2 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -604,6 +604,9 @@ EXPONENT: } MAKE_FLOAT: + /* make_{short|long}float signals an error when an overflow + occurred while reading the number. Thus, no safety check + is required here. */ switch (exponent_marker) { case 'e': case 'E': @@ -611,22 +614,10 @@ MAKE_FLOAT: goto MAKE_FLOAT; case 's': case 'S': -#ifdef IEEEFLOAT - { - float biggest_float; - *((int *)&biggest_float) = 0x7f7fffff; - if (fraction > biggest_float || fraction < -biggest_float) - FEerror("Floating-point overflow.", 0); - } -#endif x = make_shortfloat((float)fraction); break; case 'f': case 'F': case 'd': case 'D': case 'l': case 'L': -#ifdef IEEEFLOAT - if ((*((int *)&fraction + HIND) & 0x7ff00000) == 0x7ff00000) - FEerror("Floating-point overflow.", 0); -#endif x = make_longfloat((double)fraction); break;