[libcxx] r345834 - [libcxx] Fix usage of _C2, which is a "nasty macro" in some environments

Louis Dionne ldionne at apple.com
Thu Nov 1 07:41:38 PDT 2018


Author: ldionne
Date: Thu Nov  1 07:41:37 2018
New Revision: 345834

URL: http://llvm.org/viewvc/llvm-project?rev=345834&view=rev
Log:
[libcxx] Fix usage of _C2, which is a "nasty macro" in some environments

The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775.

Modified:
    libcxx/trunk/include/map
    libcxx/trunk/include/set
    libcxx/trunk/test/support/nasty_macros.hpp

Modified: libcxx/trunk/include/map
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=345834&r1=345833&r2=345834&view=diff
==============================================================================
--- libcxx/trunk/include/map (original)
+++ libcxx/trunk/include/map Thu Nov  1 07:41:37 2018
@@ -1323,33 +1323,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it.__i_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
@@ -1942,33 +1942,33 @@ public:
         return __tree_.template __node_handle_extract<node_type>(
             __it.__i_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");

Modified: libcxx/trunk/include/set
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/set?rev=345834&r1=345833&r2=345834&view=diff
==============================================================================
--- libcxx/trunk/include/set (original)
+++ libcxx/trunk/include/set Thu Nov  1 07:41:37 2018
@@ -513,7 +513,7 @@ public:
 
 #if _LIBCPP_STD_VER > 11
         template <class _InputIterator>
-        _LIBCPP_INLINE_VISIBILITY 
+        _LIBCPP_INLINE_VISIBILITY
         set(_InputIterator __f, _InputIterator __l, const allocator_type& __a)
             : set(__f, __l, key_compare(), __a) {}
 #endif
@@ -569,7 +569,7 @@ public:
         }
 
 #if _LIBCPP_STD_VER > 11
-    _LIBCPP_INLINE_VISIBILITY 
+    _LIBCPP_INLINE_VISIBILITY
     set(initializer_list<value_type> __il, const allocator_type& __a)
         : set(__il, key_compare(), __a) {}
 #endif
@@ -707,33 +707,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>& __source)
+    void merge(set<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>&& __source)
+    void merge(set<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>&& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
@@ -984,7 +984,7 @@ public:
 
 #if _LIBCPP_STD_VER > 11
         template <class _InputIterator>
-        _LIBCPP_INLINE_VISIBILITY 
+        _LIBCPP_INLINE_VISIBILITY
         multiset(_InputIterator __f, _InputIterator __l, const allocator_type& __a)
             : multiset(__f, __l, key_compare(), __a) {}
 #endif
@@ -1048,7 +1048,7 @@ public:
         }
 
 #if _LIBCPP_STD_VER > 11
-    _LIBCPP_INLINE_VISIBILITY 
+    _LIBCPP_INLINE_VISIBILITY
     multiset(initializer_list<value_type> __il, const allocator_type& __a)
         : multiset(__il, key_compare(), __a) {}
 #endif
@@ -1185,33 +1185,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>&& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>& __source)
+    void merge(set<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>&& __source)
+    void merge(set<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");

Modified: libcxx/trunk/test/support/nasty_macros.hpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/nasty_macros.hpp?rev=345834&r1=345833&r2=345834&view=diff
==============================================================================
--- libcxx/trunk/test/support/nasty_macros.hpp (original)
+++ libcxx/trunk/test/support/nasty_macros.hpp Thu Nov  1 07:41:37 2018
@@ -49,6 +49,9 @@
 #define _CRPC NASTY_MACRO
 #define _CPC  NASTY_MACRO
 
+// yvals.h on MINGW defines this macro
+#define _C2 NASTY_MACRO
+
 // Test that libc++ doesn't use names reserved by WIN32 API Macros.
 // NOTE: Obviously we can only define these on non-windows platforms.
 #ifndef _WIN32




More information about the libcxx-commits mailing list