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 19a3dffbb1b994b5908366d522dc3f091f2cf672..571df81c50e972dbcc26a964f522ecc05d26c168 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 ff3d87ce22d9e36e5f3048ef47ab5ca5dac64677..7c99ef00f385129e8f3b32cad3ee8c5ce378703f 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 9010e940edd3aebd7423fd428bfadf2e7e186887..b52ce26339101d317efdc7bafb14e4d84809f88e 100644 (file)
@@ -10,6 +10,7 @@ Depends-on:
 intprops
 
 configure.ac:
+AC_CHECK_FUNCS_ONCE([strtof])
 AC_REQUIRE([gl_C99_STRTOLD])
 
 Makefile.am: