stdint: avoid HP-UX 10.20 preprocessor bug
authorEric Blake <eblake@redhat.com>
Fri, 24 Dec 2010 20:39:50 +0000 (13:39 -0700)
committerEric Blake <eblake@redhat.com>
Fri, 24 Dec 2010 20:39:50 +0000 (13:39 -0700)
* 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>
ChangeLog
lib/stdint.in.h
tests/test-floor2.c

index 28d6819..b0ddade 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 70822b8..7270ad0 100644 (file)
@@ -137,9 +137,10 @@ typedef unsigned int gl_uint32_t;
 /* 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 @@ typedef long long int gl_int64_t;
 # endif
 #endif
 
-#if UINT64_MAX
+#ifdef UINT64_MAX
 # define GL_UINT64_T
 #else
 # if ULONG_MAX >> 31 >> 31 >> 1 == 1
index e239199..971f24a 100644 (file)
@@ -144,7 +144,7 @@ check (double x)
 int
 main ()
 {
-#if UINT64_MAX
+#ifdef UINT64_MAX
   unsigned int highbits;
   unsigned int lowbits;
   int error = 0;