diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2012-10-06 23:06:04 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2012-10-06 23:06:04 +0000 |
commit | a2ca8577e6c88866838fe89c82b8d2c492ad7a59 (patch) | |
tree | 244b72d26d12f547c33a38c2cb79580c6bb8ed17 /gcc/ginclude | |
parent | 21c278c93069690772a23f9c162eeac0030b10f7 (diff) | |
download | gcc-a2ca8577e6c88866838fe89c82b8d2c492ad7a59.tar.gz |
re PR c++/52764 (Including <cstdint> after <stdint.h> fails to define limit macros)
2012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52764
* ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
__STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
* ginclude/stdint-gcc.h: In C++11 unconditionally define
limit and constant macros.
/testsuite
2012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52764
* g++.dg/cpp0x/stdint.C: New.
/libstdc++-v3
2012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52764
* include/c_global/cstdint: Remove __STDC_LIMIT_MACROS and
__STDC_CONSTANT_MACROS related macros.
From-SVN: r192174
Diffstat (limited to 'gcc/ginclude')
-rw-r--r-- | gcc/ginclude/stdint-gcc.h | 14 | ||||
-rw-r--r-- | gcc/ginclude/stdint-wrap.h | 6 |
2 files changed, 15 insertions, 5 deletions
diff --git a/gcc/ginclude/stdint-gcc.h b/gcc/ginclude/stdint-gcc.h index 22780a15efa..64b389930c9 100644 --- a/gcc/ginclude/stdint-gcc.h +++ b/gcc/ginclude/stdint-gcc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2008-2012 Free Software Foundation, Inc. This file is part of GCC. @@ -91,7 +91,8 @@ typedef __UINTPTR_TYPE__ uintptr_t; typedef __INTMAX_TYPE__ intmax_t; typedef __UINTMAX_TYPE__ uintmax_t; -#if !defined __cplusplus || defined __STDC_LIMIT_MACROS +#if (!defined __cplusplus || __cplusplus >= 201103L \ + || defined __STDC_LIMIT_MACROS) /* 7.18.2 Limits of specified-width integer types */ @@ -229,9 +230,11 @@ typedef __UINTMAX_TYPE__ uintmax_t; #undef WINT_MIN #define WINT_MIN __WINT_MIN__ -#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */ +#endif /* (!defined __cplusplus || __cplusplus >= 201103L + || defined __STDC_LIMIT_MACROS) */ -#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS +#if (!defined __cplusplus || __cplusplus >= 201103L \ + || defined __STDC_CONSTANT_MACROS) #undef INT8_C #define INT8_C(c) __INT8_C(c) @@ -254,6 +257,7 @@ typedef __UINTMAX_TYPE__ uintmax_t; #undef UINTMAX_C #define UINTMAX_C(c) __UINTMAX_C(c) -#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ +#endif /* (!defined __cplusplus || __cplusplus >= 201103L + || defined __STDC_CONSTANT_MACROS) */ #endif /* _GCC_STDINT_H */ diff --git a/gcc/ginclude/stdint-wrap.h b/gcc/ginclude/stdint-wrap.h index e45f8198b97..83b6f70c837 100644 --- a/gcc/ginclude/stdint-wrap.h +++ b/gcc/ginclude/stdint-wrap.h @@ -1,5 +1,11 @@ #ifndef _GCC_WRAP_STDINT_H #if __STDC_HOSTED__ +# if defined __cplusplus && __cplusplus >= 201103L +# undef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS +# undef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS +# endif # include_next <stdint.h> #else # include "stdint-gcc.h" |