From 6101082ea07a4877e51042244c9c3b57920c2b62 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 29 Jul 2010 08:43:00 -0600 Subject: [PATCH 1/1] strtod: aid debugging * m4/strtod.m4(gl_FUNC_STRTOD): Use distinct exit status to aid understanding why strtod is rejected. Signed-off-by: Eric Blake --- ChangeLog | 6 ++++++ m4/strtod.m4 | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index f0e71ac8a..8051cf066 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-07-29 Eric Blake + + 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 unistr/u*-chr, unistr/u*-strchr: Fix link errors and warnings. diff --git a/m4/strtod.m4 b/m4/strtod.m4 index 8f90ed790..922a538cf 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], -- 2.11.0