There were a few more places where the library would use identifiers
such as "T" or "charT" in the headers. This patch replaces them with
reserved identifiers to protect against user-defined macros.
diff --git a/include/__locale b/include/__locale
index 0097fc2..42cf4d9 100644
--- a/include/__locale
+++ b/include/__locale
@@ -1420,7 +1420,7 @@ protected:
// template <class charT> class numpunct_byname
-template <class charT> class _LIBCPP_TYPE_VIS_ONLY numpunct_byname;
+template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY numpunct_byname;
template <>
class _LIBCPP_TYPE_VIS numpunct_byname<char>
diff --git a/include/atomic b/include/atomic
index 7a6dd24..cf6cfc5 100644
--- a/include/atomic
+++ b/include/atomic
@@ -551,20 +551,20 @@ typedef enum memory_order
#if _GNUC_VER >= 407
namespace __gcc_atomic {
-template <typename T>
+template <typename __Tp>
struct __gcc_atomic_t {
__gcc_atomic_t() _NOEXCEPT {}
- explicit __gcc_atomic_t(T value) _NOEXCEPT : __a_value(value) {}
- T __a_value;
+ explicit __gcc_atomic_t(__Tp value) _NOEXCEPT : __a_value(value) {}
+ __Tp __a_value;
};
#define _Atomic(x) __gcc_atomic::__gcc_atomic_t<x>
-template <typename T> T __create();
+template <typename __Tp> __Tp __create();
template <typename __Tp, typename __Td>
typename enable_if<sizeof(__Tp()->__a_value = __create<__Td>()), char>::type
__test_atomic_assignable(int);
-template <typename T, typename U>
+template <typename __Tp, typename __Up>
__two __test_atomic_assignable(...);
template <typename __Tp, typename __Td>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits