changeset 9841:a95dd6984607

Add info about many more platforms.
author Bruno Haible <bruno@clisp.org>
date Mon, 31 Mar 2008 01:59:11 +0200
parents bb59cc79cbdb
children 5a6c62d69d18
files ChangeLog doc/posix-functions/strtod.texi tests/test-strtod.c
diffstat 3 files changed, 87 insertions(+), 82 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Mar 30 16:40:35 2008 -0600
+++ b/ChangeLog	Mon Mar 31 01:59:11 2008 +0200
@@ -1,3 +1,9 @@
+2008-03-30  Bruno Haible  <bruno@clisp.org>
+
+	* tests/test-strtod.c: Add comments about which assertion fails on which
+	platform.
+	* doc/posix-functions/strtod.texi: Add info about many more platforms.
+
 2008-03-30  Eric Blake  <ebb9@byu.net>
 
 	Test signbit behavior on zeros.
--- a/doc/posix-functions/strtod.texi	Sun Mar 30 16:40:35 2008 -0600
+++ b/doc/posix-functions/strtod.texi	Mon Mar 31 01:59:11 2008 +0200
@@ -16,53 +16,52 @@
 Old versions of Linux.
 
 @item
-This function returns a wrong end pointer on some platforms:
-Solaris 2.4.
+This function returns a wrong end pointer on some old platforms.
 
 @item
 This function fails to do a valid parse of @samp{-0x} on some
 platforms:
-glibc 2.4, Cygwin < 1.5.25-11.
+glibc 2.4, MacOS X 10.3, FreeBSD 6.2, Cygwin < 1.5.25-11.
 
 @item
 This function fails to parse Infinities and plain NaNs on some platforms:
-Solaris 8, Mingw, OpenBSD 4.0.
+OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
 
 @item
 This function fails to parse NaN() on some platforms:
-Solaris 8, Mingw, OpenBSD 4.0, Cygwin < 1.5.25-11.
+glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris?, Cygwin < 1.5.25-11, mingw.
 
 @item
 This function fails to parse NaN(n-char-sequence) on some platforms:
-Solaris 8, Mingw, OpenBSD 4.0.
+OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris?, mingw.
 
 @item
 This function returns the wrong end pointer when parsing
 NaN(n-char-sequence) on some platforms:
-glibc 2.4.
+glibc-2.4, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris?, mingw.
 
 @item
 This function fails to parse C99 hexadecimal floating point on some
 platforms:
-Solaris 8, Mingw, OpenBSD 4.0.
+NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw.
 @end itemize
 
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function returns a positive value for negative underflow on some
+This function returns +0.0 (not -0.0) for negative underflow on some
 platforms:
-glibc 2.7, Mingw, Cygwin.
+glibc 2.7, Cygwin, mingw.
 
 @item
 This function cannot distinguish between ``nan'' and ``-nan'' on some
 platforms:
-glibc 2.7.
+glibc 2.7, IRIX 6.5, OSF/1 5.1, mingw.
 
 @item
 This function fails to correctly parse very long strings on some
 platforms:
-Mingw, Cygwin.
+MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Cygwin, mingw.
 
 @item
 The replacement function does not always return correctly rounded results.
--- a/tests/test-strtod.c	Sun Mar 30 16:40:35 2008 -0600
+++ b/tests/test-strtod.c	Mon Mar 31 01:59:11 2008 +0200
@@ -88,7 +88,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input);
+    ASSERT (ptr == input);              /* IRIX 6.5, OSF/1 5.1 */
     ASSERT (errno == 0 || errno == EINVAL);
   }
   {
@@ -98,7 +98,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input);
+    ASSERT (ptr == input);              /* IRIX 6.5, OSF/1 5.1 */
     ASSERT (errno == 0 || errno == EINVAL);
   }
   {
@@ -280,7 +280,7 @@
     char *ptr;
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
-    ASSERT (signbit (result) == signbit (-0.0));
+    ASSERT (signbit (result) == signbit (-0.0)); /* IRIX 6.5 */
     ASSERT (ptr == input + 2);
     ASSERT (errno == 0);
   }
@@ -336,8 +336,8 @@
     const char input[] = "1E 2";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 1.0);
-    ASSERT (ptr == input + 1);
+    ASSERT (result == 1.0);             /* HP-UX 11.11, IRIX 6.5, OSF/1 4.0 */
+    ASSERT (ptr == input + 1);          /* HP-UX 11.11, IRIX 6.5 */
     ASSERT (errno == 0);
   }
   {
@@ -347,7 +347,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -366,8 +366,8 @@
     char *ptr;
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
-    ASSERT (signbit (result) == signbit (-0.0));
-    ASSERT (ptr == input + 2);
+    ASSERT (signbit (result) == signbit (-0.0)); /* MacOS X 10.3, FreeBSD 6.2, IRIX 6.5 */
+    ASSERT (ptr == input + 2);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -377,7 +377,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -387,7 +387,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -397,7 +397,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -407,7 +407,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -417,7 +417,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -427,7 +427,7 @@
     double result = strtod (input, &ptr);
     ASSERT (result == 0.0);
     ASSERT (!signbit (result));
-    ASSERT (ptr == input + 1);
+    ASSERT (ptr == input + 1);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2 */
     ASSERT (errno == 0);
   }
   {
@@ -480,7 +480,7 @@
        0 on negative underflow, even though quality of implementation
        demands preserving the sign.  Disable this test until fixed
        glibc is more prevalent.  */
-    ASSERT (signbit (result) == signbit (-0.0));
+    ASSERT (signbit (result) == signbit (-0.0)); /* glibc-2.3.6, mingw */
 #endif
     ASSERT (ptr == input + 10);
     ASSERT (errno == ERANGE);
@@ -492,45 +492,45 @@
     const char input[] = "iNf";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == HUGE_VAL);
-    ASSERT (ptr == input + 3);
-    ASSERT (errno == 0);
+    ASSERT (result == HUGE_VAL);        /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 3);          /* OpenBSD 4.0, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw */
+    ASSERT (errno == 0);                /* HP-UX 11.11, OSF/1 4.0 */
   }
   {
     errno = 0;
     const char input[] = "-InF";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == -HUGE_VAL);
-    ASSERT (ptr == input + 4);
-    ASSERT (errno == 0);
+    ASSERT (result == -HUGE_VAL);       /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 4);          /* OpenBSD 4.0, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Solaris 9, mingw */
+    ASSERT (errno == 0);                /* HP-UX 11.11, OSF/1 4.0 */
   }
   {
     errno = 0;
     const char input[] = "infinite";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == HUGE_VAL);
-    ASSERT (ptr == input + 3);
-    ASSERT (errno == 0);
+    ASSERT (result == HUGE_VAL);        /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 3);          /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (errno == 0);                /* OSF/1 4.0 */
   }
   {
     errno = 0;
     const char input[] = "infinitY";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == HUGE_VAL);
-    ASSERT (ptr == input + 8);
-    ASSERT (errno == 0);
+    ASSERT (result == HUGE_VAL);        /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 8);          /* OpenBSD 4.0, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw */
+    ASSERT (errno == 0);                /* HP-UX 11.11, OSF/1 4.0 */
   }
   {
     errno = 0;
     const char input[] = "infinitY.";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == HUGE_VAL);
-    ASSERT (ptr == input + 8);
-    ASSERT (errno == 0);
+    ASSERT (result == HUGE_VAL);        /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 8);          /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (errno == 0);                /* OSF/1 4.0 */
   }
 
   /* NaN.  Some processors set the sign bit of the default NaN, so all
@@ -543,16 +543,16 @@
     double result1 = strtod (input, &ptr1);
     double result2 = strtod (input + 1, &ptr2);
 #ifdef NAN
-    ASSERT (isnan (result1));
-    ASSERT (isnan (result2));
+    ASSERT (isnan (result1));           /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (isnan (result2));           /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
 # if 0
     /* Sign bits of NaN is a portability sticking point, not worth
        worrying about.  */
-    ASSERT (signbit (result1) != signbit (result2));
+    ASSERT (signbit (result1) != signbit (result2)); /* glibc-2.3.6, IRIX 6.5, OSF/1 5.1, mingw */
 # endif
-    ASSERT (ptr1 == input + 4);
-    ASSERT (ptr2 == input + 4);
-    ASSERT (errno == 0);
+    ASSERT (ptr1 == input + 4);         /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Solaris 2.5.1, mingw */
+    ASSERT (ptr2 == input + 4);         /* OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Solaris 2.5.1, mingw */
+    ASSERT (errno == 0);                /* HP-UX 11.11 */
 #else
     ASSERT (result1 == 0.0);
     ASSERT (result2 == 0.0);
@@ -571,11 +571,11 @@
     double result1 = strtod (input, &ptr1);
     double result2 = strtod (input + 1, &ptr2);
 #ifdef NAN
-    ASSERT (isnan (result1));
-    ASSERT (isnan (result2));
+    ASSERT (isnan (result1));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (isnan (result2));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
     ASSERT (signbit (result1) == signbit (result2));
-    ASSERT (ptr1 == input + 4);
-    ASSERT (ptr2 == input + 4);
+    ASSERT (ptr1 == input + 4);         /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 2.5.1, mingw */
+    ASSERT (ptr2 == input + 4);         /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 2.5.1, mingw */
     ASSERT (errno == 0);
 #else
     ASSERT (result1 == 0.0);
@@ -595,15 +595,15 @@
     double result1 = strtod (input, &ptr1);
     double result2 = strtod (input + 1, &ptr2);
 #ifdef NAN
-    ASSERT (isnan (result1));
-    ASSERT (isnan (result2));
+    ASSERT (isnan (result1));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (isnan (result2));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
 # if 0
     /* Sign bits of NaN is a portability sticking point, not worth
        worrying about.  */
-    ASSERT (signbit (result1) != signbit (result2));
+    ASSERT (signbit (result1) != signbit (result2)); /* glibc-2.3.6, IRIX 6.5, OSF/1 5.1, mingw */
 # endif
-    ASSERT (ptr1 == input + 6);
-    ASSERT (ptr2 == input + 6);
+    ASSERT (ptr1 == input + 6);         /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr2 == input + 6);         /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
     ASSERT (errno == 0);
 #else
     ASSERT (result1 == 0.0);
@@ -621,8 +621,8 @@
     char *ptr;
     double result = strtod (input, &ptr);
 #ifdef NAN
-    ASSERT (isnan (result));
-    ASSERT (ptr == input + 6);
+    ASSERT (isnan (result));            /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr == input + 6);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
     ASSERT (errno == 0);
 #else
     ASSERT (result == 0.0);
@@ -642,15 +642,15 @@
     double result1 = strtod (input, &ptr1);
     double result2 = strtod (input + 1, &ptr2);
 #ifdef NAN
-    ASSERT (isnan (result1));
-    ASSERT (isnan (result2));
+    ASSERT (isnan (result1));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (isnan (result2));           /* OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
 # if 0
     /* Sign bits of NaN is a portability sticking point, not worth
        worrying about.  */
-    ASSERT (signbit (result1) != signbit (result2));
+    ASSERT (signbit (result1) != signbit (result2)); /* glibc-2.3.6, IRIX 6.5, OSF/1 5.1, mingw */
 # endif
-    ASSERT (ptr1 == input + 7);
-    ASSERT (ptr2 == input + 7);
+    ASSERT (ptr1 == input + 7);         /* glibc-2.3.6, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
+    ASSERT (ptr2 == input + 7);         /* glibc-2.3.6, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw */
     ASSERT (errno == 0);
 #else
     ASSERT (result1 == 0.0);
@@ -669,8 +669,8 @@
     const char input[] = "0xa";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 10.0);
-    ASSERT (ptr == input + 3);
+    ASSERT (result == 10.0);            /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 3);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
   {
@@ -678,8 +678,8 @@
     const char input[] = "0XA";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 10.0);
-    ASSERT (ptr == input + 3);
+    ASSERT (result == 10.0);            /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 3);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
   {
@@ -687,8 +687,8 @@
     const char input[] = "0x1p";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 1.0);
-    ASSERT (ptr == input + 3);
+    ASSERT (result == 1.0);             /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 3);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
   {
@@ -696,8 +696,8 @@
     const char input[] = "0x1p+";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 1.0);
-    ASSERT (ptr == input + 3);
+    ASSERT (result == 1.0);             /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 3);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
   {
@@ -705,8 +705,8 @@
     const char input[] = "0x1p+1";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 2.0);
-    ASSERT (ptr == input + 6);
+    ASSERT (result == 2.0);             /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 6);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
   {
@@ -714,8 +714,8 @@
     const char input[] = "0x1p+1a";
     char *ptr;
     double result = strtod (input, &ptr);
-    ASSERT (result == 2.0);
-    ASSERT (ptr == input + 6);
+    ASSERT (result == 2.0);             /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
+    ASSERT (ptr == input + 6);          /* NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw */
     ASSERT (errno == 0);
   }
 
@@ -780,9 +780,9 @@
 	input[m - 1] = '1';
 	input[m] = '\0';
 	result = strtod (input, &ptr);
-	ASSERT (result == 1.0);
-	ASSERT (ptr == input + m);
-	ASSERT (errno == 0);
+	ASSERT (result == 1.0);         /* MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
+	ASSERT (ptr == input + m);      /* OSF/1 5.1 */
+	ASSERT (errno == 0);            /* MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
       }
     free (input);
   }
@@ -806,9 +806,9 @@
 	input[m - 1] = '1';
 	input[m] = '\0';
 	result = strtod (input, &ptr);
-	ASSERT (result == 1.0);
+	ASSERT (result == 1.0);         /* MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
 	ASSERT (ptr == input + m);
-	ASSERT (errno == 0);
+	ASSERT (errno == 0);            /* MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, mingw */
       }
     free (input);
   }
@@ -829,7 +829,7 @@
 	input[m] = '\0';
 	result = strtod (input, &ptr);
 	ASSERT (result == 0.0);
-	ASSERT (signbit (result) == signbit (-0.0));
+	ASSERT (signbit (result) == signbit (-0.0)); /* IRIX 6.5 */
 	ASSERT (ptr == input + m);
 	ASSERT (errno == 0);
       }