aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2008-09-09 21:33:46 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2008-09-09 21:33:46 +0000
commit802841eb8c993791522e6dadc4aa64fac3badec4 (patch)
tree59f780bc075b4a18cf800b7f31a102bec88b4b97
parente56f5f3e5aad70d12c6ea019c99028a4daf5dc2b (diff)
downloadgcc-802841eb8c993791522e6dadc4aa64fac3badec4.zip
gcc-802841eb8c993791522e6dadc4aa64fac3badec4.tar.gz
gcc-802841eb8c993791522e6dadc4aa64fac3badec4.tar.bz2
cinttypes: Restore __STDC_FORMAT_MACRO after inclusion of <inttypes.h>.
2008-09-09 Paolo Carlini <paolo.carlini@oracle.com> * include/tr1_impl/cinttypes: Restore __STDC_FORMAT_MACRO after inclusion of <inttypes.h>. * include/tr1_impl/cstdint: Likewise for __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS after <stdint.h>. * include/bits/postypes.h: Likewise. From-SVN: r140174
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/postypes.h18
-rw-r--r--libstdc++-v3/include/tr1_impl/cinttypes11
-rw-r--r--libstdc++-v3/include/tr1_impl/cstdint10
4 files changed, 42 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d8f8b94..3adbedc 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2008-09-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/tr1_impl/cinttypes: Restore __STDC_FORMAT_MACRO after
+ inclusion of <inttypes.h>.
+ * include/tr1_impl/cstdint: Likewise for __STDC_LIMIT_MACROS and
+ __STDC_CONSTANT_MACROS after <stdint.h>.
+ * include/bits/postypes.h: Likewise.
+
2008-09-09 Andreas Schwab <schwab@suse.de>
* acinclude.m4 (GLIBCXX_CHECK_STANDARD_LAYOUT): Fix compile check
diff --git a/libstdc++-v3/include/bits/postypes.h b/libstdc++-v3/include/bits/postypes.h
index 6d57a24..c186285 100644
--- a/libstdc++-v3/include/bits/postypes.h
+++ b/libstdc++-v3/include/bits/postypes.h
@@ -46,18 +46,30 @@
#include <cwchar> // For mbstate_t
-// XXX If <stdint.h> is really needed, make sure to define the macros,
-// in order not to break <tr1/cstdint> (and <cstdint> in C++0x).
-// Reconsider all this as soon as possible...
+// XXX If <stdint.h> is really needed, make sure to define the macros
+// before including it, in order not to break <tr1/cstdint> (and <cstdint>
+// in C++0x). Reconsider all this as soon as possible...
#if (defined(_GLIBCXX_HAVE_INT64_T) && !defined(_GLIBCXX_HAVE_INT64_T_LONG) \
&& !defined(_GLIBCXX_HAVE_INT64_T_LONG_LONG))
+
#ifndef __STDC_LIMIT_MACROS
+# define _UNDEF__STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
#endif
#ifndef __STDC_CONSTANT_MACROS
+# define _UNDEF__STDC_CONSTANT_MACROS
# define __STDC_CONSTANT_MACROS
#endif
#include <stdint.h> // For int64_t
+#ifdef _UNDEF__STDC_LIMIT_MACROS
+# undef __STDC_LIMIT_MACROS
+# undef _UNDEF__STDC_LIMIT_MACROS
+#endif
+#ifdef _UNDEF__STDC_CONSTANT_MACROS
+# undef __STDC_CONSTANT_MACROS
+# undef _UNDEF__STDC_CONSTANT_MACROS
+#endif
+
#endif
_GLIBCXX_BEGIN_NAMESPACE(std)
diff --git a/libstdc++-v3/include/tr1_impl/cinttypes b/libstdc++-v3/include/tr1_impl/cinttypes
index 2dfafa8..a6b7435 100644
--- a/libstdc++-v3/include/tr1_impl/cinttypes
+++ b/libstdc++-v3/include/tr1_impl/cinttypes
@@ -36,9 +36,16 @@
#if _GLIBCXX_USE_C99_INTTYPES_TR1
-// For 8.11.1/1 (see C99, Note 184)
-#define __STDC_FORMAT_MACROS
+// For 8.11.1/1 (see C99, Note 184)
+#ifndef __STDC_FORMAT_MACROS
+# define _UNDEF__STDC_FORMAT_MACROS
+# define __STDC_FORMAT_MACROS
+#endif
#include_next <inttypes.h>
+#ifdef _UNDEF__STDC_FORMAT_MACROS
+# undef __STDC_FORMAT_MACROS
+# undef _UNDEF__STDC_FORMAT_MACROS
+#endif
namespace std
{
diff --git a/libstdc++-v3/include/tr1_impl/cstdint b/libstdc++-v3/include/tr1_impl/cstdint
index 93edf7c..7ba2fa0 100644
--- a/libstdc++-v3/include/tr1_impl/cstdint
+++ b/libstdc++-v3/include/tr1_impl/cstdint
@@ -38,12 +38,22 @@
// For 8.22.1/1 (see C99, Notes 219, 220, 222)
#ifndef __STDC_LIMIT_MACROS
+# define _UNDEF__STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
#endif
#ifndef __STDC_CONSTANT_MACROS
+# define _UNDEF__STDC_CONSTANT_MACROS
# define __STDC_CONSTANT_MACROS
#endif
#include_next <stdint.h>
+#ifdef _UNDEF__STDC_LIMIT_MACROS
+# undef __STDC_LIMIT_MACROS
+# undef _UNDEF__STDC_LIMIT_MACROS
+#endif
+#ifdef _UNDEF__STDC_CONSTANT_MACROS
+# undef __STDC_CONSTANT_MACROS
+# undef _UNDEF__STDC_CONSTANT_MACROS
+#endif
namespace std
{