From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 2 Jul 2007 08:19:55 +0000 (+0000)
Subject: * lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f08d5f7fdf15738d674f1118f8561a309e34c236;p=pspp

* lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
#define __STDC_LIMIT_MACROS temporarily while including
<stdint.h>, so that __STDC_LIMIT_MACROS is defined.
Problem reported by Joel E. Denny in
<http://lists.gnu.org/archive/html/bug-gnulib/2007-07/msg00008.html>.
---

diff --git a/ChangeLog b/ChangeLog
index 0152979eb0..24f9a85377 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
+	#define __STDC_LIMIT_MACROS temporarily while including
+	<stdint.h>, so that __STDC_LIMIT_MACROS is defined.
+	Problem reported by Joel E. Denny in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2007-07/msg00008.html>.
+
 2007-07-01  Bruno Haible  <bruno@clisp.org>
 
 	* lib/unistdio.h: New file.
diff --git a/lib/inttypes_.h b/lib/inttypes_.h
index 5257275fd1..38fdcc608b 100644
--- a/lib/inttypes_.h
+++ b/lib/inttypes_.h
@@ -35,7 +35,17 @@
 #define INTTYPES_H
 
 /* Include <stdint.h> or the gnulib replacement.  */
-#include <stdint.h>
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+# include <stdint.h>
+#else
+/* Macros like INT32_MIN are used below, so define __STDC_LIMIT_MACROS
+   while including <stdint.h>; this isn't namespace clean for C++,
+   unfortunately.  */
+# define __STDC_LIMIT_MACROS
+# include <stdint.h>
+# undef __STDC_LIMIT_MACROS
+#endif
+
 /* Get CHAR_BIT.  */
 #include <limits.h>