ftoastr: use strtof only if HAVE_STRTOF
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 13 Jun 2011 16:40:58 +0000 (09:40 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 13 Jun 2011 16:47:58 +0000 (09:47 -0700)
This is needed on HP-UX 11.11 with GCC 4.24; see Bruno Haible's report
<http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00154.html>.
* lib/ftoastr.c (STRTOF) [LENGTH == 1]: Use strtof only if HAVE_STRTOF.
* modules/ftoastr (configure.ac): Check for strtof.

ChangeLog
lib/ftoastr.c
modules/ftoastr

index 19a3dff..571df81 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-06-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ftoastr: use strtof only if HAVE_STRTOF
+       This is needed on HP-UX 11.11 with GCC 4.24; see Bruno Haible's report
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00154.html>.
+       * lib/ftoastr.c (STRTOF) [LENGTH == 1]: Use strtof only if HAVE_STRTOF.
+       * modules/ftoastr (configure.ac): Check for strtof.
+
 2011-06-13  Bruno Haible  <bruno@clisp.org>
 
        gnulib-tool: Addendum to 2011-06-08 commit.
index ff3d87c..7c99ef0 100644 (file)
 # define FLOAT_MIN LDBL_MIN
 # define FLOAT_PREC_BOUND _GL_LDBL_PREC_BOUND
 # define FTOASTR ldtoastr
-# define STRTOF strtold
+# if HAVE_C99_STRTOLD
+#  define STRTOF strtold
+# endif
 #elif LENGTH == 2
 # define FLOAT double
 # define FLOAT_DIG DBL_DIG
 # define FLOAT_MIN DBL_MIN
 # define FLOAT_PREC_BOUND _GL_DBL_PREC_BOUND
 # define FTOASTR dtoastr
-# define STRTOF strtod
 #else
 # define LENGTH 1
 # define FLOAT float
 # define FLOAT_MIN FLT_MIN
 # define FLOAT_PREC_BOUND _GL_FLT_PREC_BOUND
 # define FTOASTR ftoastr
-# define STRTOF strtof
+# if HAVE_STRTOF
+#  define STRTOF strtof
+# endif
 #endif
 
 /* On pre-C99 hosts, approximate strtof and strtold with strtod.  This
    may generate one or two extra digits, but that's better than not
-   working at all.  Assume that strtof works if strtold does.  */
-#if LENGTH != 2 && ! HAVE_C99_STRTOLD
-# undef STRTOF
+   working at all.  */
+#ifndef STRTOF
 # define STRTOF strtod
 #endif
 
index 9010e94..b52ce26 100644 (file)
@@ -10,6 +10,7 @@ Depends-on:
 intprops
 
 configure.ac:
+AC_CHECK_FUNCS_ONCE([strtof])
 AC_REQUIRE([gl_C99_STRTOLD])
 
 Makefile.am: