summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'util.c')
-rw-r--r--util.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/util.c b/util.c
index 6c18543347..76902d9a6d 100644
--- a/util.c
+++ b/util.c
@@ -890,11 +890,13 @@ ruby_strtod(string, endPtr)
if (exp >= MDMAXEXPT) {
errno = ERANGE;
- return HUGE_VAL * (sign ? -1.0 : 1.0);
+ fraction = HUGE_VAL;
+ goto ret;
}
else if (exp < MDMINEXPT) {
errno = ERANGE;
- return 0.0 * (sign ? -1.0 : 1.0);
+ fraction = 0.0;
+ goto ret;
}
fracExp = exp;
exp += 9;
@@ -940,6 +942,7 @@ ruby_strtod(string, endPtr)
fraction = frac1 + frac2;
}
+ ret:
if (endPtr != NULL) {
*endPtr = (char *)p;
}