]> git.saurik.com Git - apple/libc.git/blobdiff - gdtoa/FreeBSD/gdtoa-strtodg.c
Libc-391.2.3.tar.gz
[apple/libc.git] / gdtoa / FreeBSD / gdtoa-strtodg.c
index cbdf4aadf29964abda9f8a55eba74fca651ea3fc..a7d25e905166c0b65d47a4a48742878b43564f37 100644 (file)
@@ -649,8 +649,16 @@ strtodg
                }
        bb0 = 0;        /* trailing zero bits in rvb */
        e2 = rve + rvbits - nbits;
-       if (e2 > fpi->emax + 1)
-               goto huge;
+       if (e2 > fpi->emax) {
+               rvb->wds = 0;
+               irv = STRTOG_Infinite | STRTOG_Overflow | STRTOG_Inexhi;
+#ifndef NO_ERRNO
+               errno = ERANGE;
+#endif
+ infnanexp:
+               *exp = fpi->emax + 1;
+               goto ret;
+               }
        rve1 = rve + rvbits - nbits;
        if (e2 < (emin = fpi->emin)) {
                denorm = 1;
@@ -977,16 +985,6 @@ strtodg
        Bfree(bs);
        Bfree(bd0);
        Bfree(delta);
-       if (rve > fpi->emax) {
- huge:
-               rvb->wds = 0;
-               irv = STRTOG_Infinite | STRTOG_Overflow | STRTOG_Inexhi;
-#ifndef NO_ERRNO
-               errno = ERANGE;
-#endif
- infnanexp:
-               *exp = fpi->emax + 1;
-               }
  ret:
        if (denorm) {
                if (sudden_underflow) {