From 138e1609764e2226938df8cd6176303b41e4f325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 18 May 2021 14:45:08 +0000 Subject: [PATCH 25/25] [libcxx] Make the visibility attributes consistent for __narrow_to_utf8/__widen_from_utf8 Use the same visiblity attributes as for all other template specializations in the same file; declare the specialization itself using _LIBCPP_TYPE_VIS, and don't use _LIBCPP_EXPORTED_FROM_ABI on the destructor. Methods that are excluded from the ABI are marked with _LIBCPP_INLINE_VISIBILITY. This makes the vtable exported from DLL builds of libc++. Practically, it doesn't make any difference for the CI configuration, but it can make a difference in mingw setups. Differential Revision: https://reviews.llvm.org/D102717 (cherry picked from commit 3a6be27978aa3e83e9dc2ff2402b2569ce0686fd) --- libcxx/include/__locale | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libcxx/include/__locale b/libcxx/include/__locale index 77e5faab2676..c2800e88e8d2 100644 --- a/libcxx/include/__locale +++ b/libcxx/include/__locale @@ -1484,14 +1484,14 @@ struct __narrow_to_utf8<8> _LIBCPP_SUPPRESS_DEPRECATED_PUSH template <> -struct _LIBCPP_TEMPLATE_VIS __narrow_to_utf8<16> +struct _LIBCPP_TYPE_VIS __narrow_to_utf8<16> : public codecvt { _LIBCPP_INLINE_VISIBILITY __narrow_to_utf8() : codecvt(1) {} _LIBCPP_SUPPRESS_DEPRECATED_POP - _LIBCPP_EXPORTED_FROM_ABI ~__narrow_to_utf8(); + ~__narrow_to_utf8(); template _LIBCPP_INLINE_VISIBILITY @@ -1520,14 +1520,14 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP _LIBCPP_SUPPRESS_DEPRECATED_PUSH template <> -struct _LIBCPP_TEMPLATE_VIS __narrow_to_utf8<32> +struct _LIBCPP_TYPE_VIS __narrow_to_utf8<32> : public codecvt { _LIBCPP_INLINE_VISIBILITY __narrow_to_utf8() : codecvt(1) {} _LIBCPP_SUPPRESS_DEPRECATED_POP - _LIBCPP_EXPORTED_FROM_ABI ~__narrow_to_utf8(); + ~__narrow_to_utf8(); template _LIBCPP_INLINE_VISIBILITY @@ -1578,14 +1578,14 @@ struct __widen_from_utf8<8> _LIBCPP_SUPPRESS_DEPRECATED_PUSH template <> -struct _LIBCPP_TEMPLATE_VIS __widen_from_utf8<16> +struct _LIBCPP_TYPE_VIS __widen_from_utf8<16> : public codecvt { _LIBCPP_INLINE_VISIBILITY __widen_from_utf8() : codecvt(1) {} _LIBCPP_SUPPRESS_DEPRECATED_POP - _LIBCPP_EXPORTED_FROM_ABI ~__widen_from_utf8(); + ~__widen_from_utf8(); template _LIBCPP_INLINE_VISIBILITY @@ -1614,14 +1614,14 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP _LIBCPP_SUPPRESS_DEPRECATED_PUSH template <> -struct _LIBCPP_TEMPLATE_VIS __widen_from_utf8<32> +struct _LIBCPP_TYPE_VIS __widen_from_utf8<32> : public codecvt { _LIBCPP_INLINE_VISIBILITY __widen_from_utf8() : codecvt(1) {} _LIBCPP_SUPPRESS_DEPRECATED_POP - _LIBCPP_EXPORTED_FROM_ABI ~__widen_from_utf8(); + ~__widen_from_utf8(); template _LIBCPP_INLINE_VISIBILITY -- 2.25.1