changeset 37290:0ef5199107ef

strtoimax: port to platforms lacking 'long long' VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't check whether strtoll is declared, which causes the C file to wrongly report an error. Problem reported by Steven M. Schweda in: http://lists.gnu.org/archive/html/bug-diffutils/2014-01/msg00003.html * lib/strtoimax.c (strtoull): Declare only if HAVE_UNSIGNED_LONG_LONG_INT. (strtoll): Declare only if HAVE_LONG_LONG_INT.
author Paul Eggert <eggert@cs.ucla.edu>
date Thu, 16 Jan 2014 13:01:07 -0800
parents 477cea2ccab2
children 16716453425c
files ChangeLog lib/strtoimax.c
diffstat 2 files changed, 21 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jan 16 11:02:33 2014 -0800
+++ b/ChangeLog	Thu Jan 16 13:01:07 2014 -0800
@@ -1,3 +1,14 @@
+2014-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	strtoimax: port to platforms lacking 'long long'
+	VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't
+	check whether strtoll is declared, which causes the C file to
+	wrongly report an error.  Problem reported by Steven M. Schweda in:
+	http://lists.gnu.org/archive/html/bug-diffutils/2014-01/msg00003.html
+	* lib/strtoimax.c (strtoull):
+	Declare only if HAVE_UNSIGNED_LONG_LONG_INT.
+	(strtoll): Declare only if HAVE_LONG_LONG_INT.
+
 2014-01-16  Daniel Albers  <daniel@lbe.rs>  (tiny change)
 
 	relocatable-perl: fix texi syntax
--- a/lib/strtoimax.c	Thu Jan 16 11:02:33 2014 -0800
+++ b/lib/strtoimax.c	Thu Jan 16 13:01:07 2014 -0800
@@ -28,20 +28,24 @@
 #include "verify.h"
 
 #ifdef UNSIGNED
-# ifndef HAVE_DECL_STRTOULL
+# if HAVE_UNSIGNED_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOULL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOULL
 unsigned long long int strtoull (char const *, char **, int);
+#  endif
 # endif
 
 #else
 
-# ifndef HAVE_DECL_STRTOLL
+# if HAVE_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOLL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOLL && HAVE_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOLL
 long long int strtoll (char const *, char **, int);
+#  endif
 # endif
 #endif