Change 10998 by jhi@alpha on 2001/06/28 03:42:57

        Subject: [PATCH: perl@10996] avoid overflow in numeric.c:S_mulexp10() on VAX
        From: Peter Prymmer <[EMAIL PROTECTED]>
        Date: Wed, 27 Jun 2001 19:25:49 -0700 (PDT)
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/numeric.c#3 edit

Differences ...

==== //depot/perl/numeric.c#3 (text) ====
Index: perl/numeric.c
--- perl/numeric.c.~1~  Wed Jun 27 21:45:05 2001
+++ perl/numeric.c      Wed Jun 27 21:45:05 2001
@@ -562,6 +562,14 @@
        negative = 1;
        exponent = -exponent;
     }
+#ifdef __VAX /* avoid %SYSTEM-F-FLTOVF_F sans VAXC$ESTABLISH */
+#  if defined(__DECC_VER) && __DECC_VER <= 50390006
+    /* __F_FLT_MAX_10_EXP - 5 == 33 */
+    if (!negative &&
+          (log10(value) + exponent) >= (__F_FLT_MAX_10_EXP - 5))
+        return NV_MAX;
+#  endif
+#endif
     for (bit = 1; exponent; bit <<= 1) {
        if (exponent & bit) {
            exponent ^= bit;
End of Patch.

Reply via email to