From 8df1d5a54673e7d94824f6c169b1618284f32ecf Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Thu, 1 Nov 2018 14:41:37 +0000 Subject: [PATCH] [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 --- libcxx/include/map | 32 ++++++++++++++--------------- libcxx/include/set | 40 ++++++++++++++++++------------------ libcxx/test/support/nasty_macros.hpp | 3 +++ 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/libcxx/include/map b/libcxx/include/map index 472ac31..d3c59f3 100644 --- a/libcxx/include/map +++ b/libcxx/include/map @@ -1323,33 +1323,33 @@ public: { return __tree_.template __node_handle_extract(__it.__i_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(map& __source) + void merge(map& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(map&& __source) + void merge(map&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multimap& __source) + void merge(multimap& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multimap&& __source) + void merge(multimap&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); @@ -1942,33 +1942,33 @@ public: return __tree_.template __node_handle_extract( __it.__i_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multimap& __source) + void merge(multimap& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); return __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multimap&& __source) + void merge(multimap&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); return __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(map& __source) + void merge(map& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); return __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(map&& __source) + void merge(map&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); diff --git a/libcxx/include/set b/libcxx/include/set index 80cc7b0..ccf785a 100644 --- a/libcxx/include/set +++ b/libcxx/include/set @@ -513,7 +513,7 @@ public: #if _LIBCPP_STD_VER > 11 template - _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 __il, const allocator_type& __a) : set(__il, key_compare(), __a) {} #endif @@ -707,33 +707,33 @@ public: { return __tree_.template __node_handle_extract(__it); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(set& __source) + void merge(set& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(set&& __source) + void merge(set&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multiset& __source) + void merge(multiset& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_unique(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multiset&& __source) + void merge(multiset&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); @@ -984,7 +984,7 @@ public: #if _LIBCPP_STD_VER > 11 template - _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 __il, const allocator_type& __a) : multiset(__il, key_compare(), __a) {} #endif @@ -1185,33 +1185,33 @@ public: { return __tree_.template __node_handle_extract(__it); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multiset& __source) + void merge(multiset& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(multiset&& __source) + void merge(multiset&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(set& __source) + void merge(set& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); __tree_.__node_handle_merge_multi(__source.__tree_); } - template + template _LIBCPP_INLINE_VISIBILITY - void merge(set&& __source) + void merge(set&& __source) { _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(), "merging container with incompatible allocator"); diff --git a/libcxx/test/support/nasty_macros.hpp b/libcxx/test/support/nasty_macros.hpp index 97a17bb..3c2a5e2 100644 --- a/libcxx/test/support/nasty_macros.hpp +++ b/libcxx/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 -- 2.7.4