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

Reply via email to