[libcxx-commits] [PATCH] D97168: [libcxx] Don't use dllimport for a static member in a template
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 2 12:46:34 PST 2021
mstorsjo updated this revision to Diff 327546.
mstorsjo added a comment.
Switched back to adding a new macro, `_LIBCPP_TEMPLATE_DATA_VIS`, as `_LIBCPP_TEMPLATE_VIS` can expand to `__attribute__ ((__type_visibility__("default")))` which doesn't work for data. (Sorry I hadn't noticed that CI had flagged the previous version as failed almost immediately.)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D97168/new/
https://reviews.llvm.org/D97168
Files:
libcxx/include/__config
libcxx/include/string
Index: libcxx/include/string
===================================================================
--- libcxx/include/string
+++ libcxx/include/string
@@ -805,7 +805,7 @@
__compressed_pair<__rep, allocator_type> __r_;
public:
- _LIBCPP_FUNC_VIS
+ _LIBCPP_TEMPLATE_DATA_VIS
static const size_type npos = -1;
_LIBCPP_INLINE_VISIBILITY basic_string()
@@ -4404,7 +4404,7 @@
_LIBCPP_FUNC_VIS wstring to_wstring(long double __val);
template<class _CharT, class _Traits, class _Allocator>
-_LIBCPP_FUNC_VIS
+_LIBCPP_TEMPLATE_DATA_VIS
const typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::npos;
Index: libcxx/include/__config
===================================================================
--- libcxx/include/__config
+++ libcxx/include/__config
@@ -640,6 +640,7 @@
#define _LIBCPP_HIDDEN
#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
#define _LIBCPP_TEMPLATE_VIS
+#define _LIBCPP_TEMPLATE_DATA_VIS
#define _LIBCPP_ENUM_VIS
#endif // defined(_LIBCPP_OBJECT_FORMAT_COFF)
@@ -689,6 +690,14 @@
# endif
#endif
+#ifndef _LIBCPP_TEMPLATE_DATA_VIS
+# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
+# define _LIBCPP_TEMPLATE_DATA_VIS __attribute__ ((__visibility__("default")))
+# else
+# define _LIBCPP_TEMPLATE_DATA_VIS
+# endif
+#endif
+
#ifndef _LIBCPP_EXPORTED_FROM_ABI
# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)
# define _LIBCPP_EXPORTED_FROM_ABI __attribute__((__visibility__("default")))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97168.327546.patch
Type: text/x-patch
Size: 1546 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210302/907adde3/attachment.bin>
More information about the libcxx-commits
mailing list