From b43f17c835df5d4ffa94f1902fe7af88206d7521 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Mon, 16 Jan 2017 21:15:08 +0000 Subject: Fix std::tuples EBO when targeting the MSVC ABI. MSVC/clang-cl doesn't do a full EBO unless __declspec(empty_bases) is applied to the derived type. This causes certain tuple tests to fail. This patch adds the empty_bases attribute to __tuple_impl in order for tuple to fully provide the EBO. llvm-svn: 292159 --- libcxx/include/tuple | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libcxx/include/tuple') diff --git a/libcxx/include/tuple b/libcxx/include/tuple index cddb70954ee..a17ea01f102 100644 --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -366,7 +366,7 @@ struct __all_default_constructible<__tuple_types<_Tp...>> template struct __tuple_impl; template -struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...> +struct _LIBCPP_DECLSPEC_EMPTY_BASES __tuple_impl<__tuple_indices<_Indx...>, _Tp...> : public __tuple_leaf<_Indx, _Tp>... { _LIBCPP_INLINE_VISIBILITY -- cgit v1.2.3