changeset 14918:fc8a3cc2baa8

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.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 13 Jun 2011 09:40:58 -0700
parents 42a9e4eb100a
children 439faccac741
files ChangeLog lib/ftoastr.c modules/ftoastr
diffstat 3 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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.
--- a/lib/ftoastr.c
+++ b/lib/ftoastr.c
@@ -40,14 +40,15 @@
 # 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
@@ -55,14 +56,15 @@
 # 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
 
--- a/modules/ftoastr
+++ b/modules/ftoastr
@@ -10,6 +10,7 @@
 intprops
 
 configure.ac:
+AC_CHECK_FUNCS_ONCE([strtof])
 AC_REQUIRE([gl_C99_STRTOLD])
 
 Makefile.am: