]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 11 Feb 1998 13:11:40 +0000 (13:11 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 11 Feb 1998 13:11:40 +0000 (13:11 +0000)
1998-02-11 08:30  H.J. Lu  <hjl@gnu.org>

* sysdeps/libm-ieee754/w_powl.c (__powl): Use __finitel instead
of __finite.

ChangeLog
stdlib/strtod.c
sysdeps/libm-ieee754/w_powl.c

index 0d10e5cba30a038cb4092d2f5bcdac25eb76880c..34100b506f9b577d19455b9730f1c3514d61158f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1998-02-11 08:30  H.J. Lu  <hjl@gnu.org>
+
+       * sysdeps/libm-ieee754/w_powl.c (__powl): Use __finitel instead
+       of __finite.
+
 1998-02-11 19:16  Richard Henderson  <rth@cygnus.com>
 
        * stdlib/strtod.c (STRTOF): Don't call lshift with zero count.
index e93ec9add27ffc4e278eb8e75c5fcb3ddbcd8a86..061cedc98a0a80db5e02d8f09cd1b23a4edac02e 100644 (file)
@@ -1,6 +1,6 @@
 /* Read decimal floating point numbers.
    This file is part of the GNU C Library.
-   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -1091,10 +1091,15 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
 
     count_leading_zeros (cnt, den[densize - 1]);
 
-    (void) __mpn_lshift (den, den, densize, cnt);
-    cy = __mpn_lshift (num, num, numsize, cnt);
-    if (cy != 0)
-      num[numsize++] = cy;
+    if (cnt > 0)
+      {
+       /* Don't call `mpn_shift' with a count of zero since the specification
+          does not allow this.  */
+       (void) __mpn_lshift (den, den, densize, cnt);
+       cy = __mpn_lshift (num, num, numsize, cnt);
+       if (cy != 0)
+         num[numsize++] = cy;
+      }
 
     /* Now we are ready for the division.  But it is not necessary to
        do a full multi-precision division because we only need a small
index aea572d905b430b65519c2846ebca7479f63d5eb..3529b5024ccf59466a7a9f86643e6440d9e39942 100644 (file)
@@ -44,7 +44,7 @@
        if(x==0.0){
            if(y==0.0)
                return __kernel_standard(x,y,220); /* pow(0.0,0.0) */
-           if(__finite(y)&&y<0.0)
+           if(__finitel(y)&&y<0.0)
              if (signbit (x) && signbit (z))
                return __kernel_standard(x,y,223); /* pow(-0.0,negative) */
              else