[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.
llvm-svn: 345834
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 8df1d5a54673e7d94824f6c169b1618284f32ecf
diff --git a/include/map b/include/map
index 472ac31..d3c59f3 100644
--- a/include/map
+++ b/include/map
@@ -1323,33 +1323,33 @@
{
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 @@
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");
diff --git a/include/set b/include/set
index 80cc7b0..ccf785a 100644
--- a/include/set
+++ b/include/set
@@ -513,7 +513,7 @@
#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 @@
}
#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 @@
{
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 @@
#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 @@
}
#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 @@
{
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");
diff --git a/test/support/nasty_macros.hpp b/test/support/nasty_macros.hpp
index 97a17bb..3c2a5e2 100644
--- a/test/support/nasty_macros.hpp
+++ b/test/support/nasty_macros.hpp
@@ -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