diff --git a/libcxx/CREDITS.TXT b/libcxx/CREDITS.TXT index aa3c8cf1a8c6e..9cdb9ae992507 100644 --- a/libcxx/CREDITS.TXT +++ b/libcxx/CREDITS.TXT @@ -112,6 +112,11 @@ N: Andrew Morrow E: andrew.c.morrow@gmail.com D: Minor patches and Linux fixes. +N: Justin Novosad +E: junov@google.com +E: justin.novosad@gmail.com +D: Minor fixes, Swift interoperability. + N: Michael Park E: mcypark@gmail.com D: Implementation of . diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index 1e05e4df8ba0f..5355dbbff9998 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -30,6 +30,9 @@ #include <__type_traits/integral_constant.h> #include <__type_traits/is_nothrow_assignable.h> #include <__type_traits/is_nothrow_constructible.h> +#if _LIBCPP_STD_VER >= 20 +# include <__type_traits/is_reference.h> +#endif #include <__type_traits/is_swappable.h> #include <__type_traits/is_trivially_destructible.h> #include <__type_traits/is_trivially_relocatable.h> @@ -68,8 +71,13 @@ protected: public: // Can't be defaulted due to _LIBCPP_COMPRESSED_PAIR not being an aggregate in C++03 and C++11. - _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI __split_buffer_pointer_layout() : __back_cap_(nullptr) {} - + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI __split_buffer_pointer_layout() +#if _LIBCPP_STD_VER >= 20 + // Prevents Swift compiler's C++ importer from implicitly instantiating this ctor when it's not supported. + requires (!is_reference_v) +#endif + : __back_cap_(nullptr) {} + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit __split_buffer_pointer_layout(const allocator_type& __alloc) : __back_cap_(nullptr), __alloc_(__alloc) {}