changeset 14015:41026f5e29c1

stdint: avoid HP-UX 10.20 preprocessor bug * lib/stdint.in.h (INT64_MAX, UINT64_MAX): Check via #ifdef rather than #if. * tests/test-floor2.c (main): Likewise. Reported by Peter O'Gorman. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Fri, 24 Dec 2010 13:39:50 -0700
parents d02ecbcfc84d
children fdade8a28ed5
files ChangeLog lib/stdint.in.h tests/test-floor2.c
diffstat 3 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Dec 24 13:27:09 2010 -0700
+++ b/ChangeLog	Fri Dec 24 13:39:50 2010 -0700
@@ -1,5 +1,11 @@
 2010-12-24  Eric Blake  <eblake@redhat.com>
 
+	stdint: avoid HP-UX 10.20 preprocessor bug
+	* lib/stdint.in.h (INT64_MAX, UINT64_MAX): Check via #ifdef rather
+	than #if.
+	* tests/test-floor2.c (main): Likewise.
+	Reported by Peter O'Gorman.
+
 	pipe: make obsoletion transition easier
 	* lib/pipe.h: Restore file as thin shim around "spawn-pipe.h".
 	* modules/pipe (Files): Include revived file.
--- a/lib/stdint.in.h	Fri Dec 24 13:27:09 2010 -0700
+++ b/lib/stdint.in.h	Fri Dec 24 13:39:50 2010 -0700
@@ -137,9 +137,10 @@
 /* If the system defines INT64_MAX, assume int64_t works.  That way,
    if the underlying platform defines int64_t to be a 64-bit long long
    int, the code below won't mistakenly define it to be a 64-bit long
-   int, which would mess up C++ name mangling.  */
+   int, which would mess up C++ name mangling.  We must use #ifdef
+   rather than #if, to avoid an error with HP-UX 10.20 cc.  */
 
-#if INT64_MAX
+#ifdef INT64_MAX
 # define GL_INT64_T
 #else
 /* Do not undefine int64_t if gnulib is not being used with 64-bit
@@ -162,7 +163,7 @@
 # endif
 #endif
 
-#if UINT64_MAX
+#ifdef UINT64_MAX
 # define GL_UINT64_T
 #else
 # if ULONG_MAX >> 31 >> 31 >> 1 == 1
--- a/tests/test-floor2.c	Fri Dec 24 13:27:09 2010 -0700
+++ b/tests/test-floor2.c	Fri Dec 24 13:39:50 2010 -0700
@@ -144,7 +144,7 @@
 int
 main ()
 {
-#if UINT64_MAX
+#ifdef UINT64_MAX
   unsigned int highbits;
   unsigned int lowbits;
   int error = 0;