bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] strtod: aid debugging


From: Eric Blake
Subject: [PATCH] strtod: aid debugging
Date: Thu, 29 Jul 2010 08:45:38 -0600

* m4/strtod.m4(gl_FUNC_STRTOD): Use distinct exit status to aid
understanding why strtod is rejected.

Signed-off-by: Eric Blake <address@hidden>
---

> configure:24715: checking whether strtod obeys C99
> configure:24791: cc -qlanglvl=extc89 -qlanglvl=extc99 -o conftest -g
> conftest.c  >&5
> configure:24791: $? = 0
> configure:24791: ./conftest
> configure:24791: $? = 1
> configure: program exited with status 1

It would be nicer to be a bit more precise.  Pushing this.

 ChangeLog    |    6 ++++++
 m4/strtod.m4 |   14 +++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f0e71ac..8051cf0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-29  Eric Blake  <address@hidden>
+
+       strtod: aid debugging
+       * m4/strtod.m4(gl_FUNC_STRTOD): Use distinct exit status to aid
+       understanding why strtod is rejected.
+
 2010-07-28  Bruno Haible  <address@hidden>

        unistr/u*-chr, unistr/u*-strchr: Fix link errors and warnings.
diff --git a/m4/strtod.m4 b/m4/strtod.m4
index 8f90ed7..922a538 100644
--- a/m4/strtod.m4
+++ b/m4/strtod.m4
@@ -1,4 +1,4 @@
-# strtod.m4 serial 16
+# strtod.m4 serial 17
 dnl Copyright (C) 2002-2003, 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -46,7 +46,7 @@ numeric_equal (double x, double y)
     char *term;
     strtod (string, &term);
     if (term != string && *(term - 1) == 0)
-      return 1;
+      return 2;
   }
   {
     /* Older glibc and Cygwin mis-parse "-0x".  */
@@ -55,7 +55,7 @@ numeric_equal (double x, double y)
     double value = strtod (string, &term);
     double zero = 0.0;
     if (1.0 / value != -1.0 / zero || term != (string + 2))
-      return 1;
+      return 3;
   }
   {
     /* Many platforms do not parse hex floats.  */
@@ -63,7 +63,7 @@ numeric_equal (double x, double y)
     char *term;
     double value = strtod (string, &term);
     if (value != 20.0 || term != (string + 6))
-      return 1;
+      return 4;
   }
   {
     /* Many platforms do not parse infinities.  HP-UX 11.31 parses inf,
@@ -74,7 +74,7 @@ numeric_equal (double x, double y)
     errno = 0;
     value = strtod (string, &term);
     if (value != HUGE_VAL || term != (string + 3) || errno)
-      return 1;
+      return 5;
   }
   {
     /* glibc 2.7 and cygwin 1.5.24 misparse "nan()".  */
@@ -82,7 +82,7 @@ numeric_equal (double x, double y)
     char *term;
     double value = strtod (string, &term);
     if (numeric_equal (value, value) || term != (string + 5))
-      return 1;
+      return 6;
   }
   {
     /* darwin 10.6.1 misparses "nan(".  */
@@ -90,7 +90,7 @@ numeric_equal (double x, double y)
     char *term;
     double value = strtod (string, &term);
     if (numeric_equal (value, value) || term != (string + 3))
-      return 1;
+      return 7;
   }
 ]])],
         [gl_cv_func_strtod_works=yes],
-- 
1.7.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]