Author: smeenai Date: Sun Apr 2 23:04:24 2017 New Revision: 299348 URL: http://llvm.org/viewvc/llvm-project?rev=299348&view=rev Log: [libc++] Explicitly mark specializations as dllexport
Method specializations don't get exported even if there's an exported extern template instantiation on Windows. Explicitly mark the methods for export. They're already exported on Linux and Darwin, so there's no ABI change on those platforms. Modified: libcxx/trunk/include/locale Modified: libcxx/trunk/include/locale URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/locale?rev=299348&r1=299347&r2=299348&view=diff ============================================================================== --- libcxx/trunk/include/locale (original) +++ libcxx/trunk/include/locale Sun Apr 2 23:04:24 2017 @@ -2631,10 +2631,10 @@ private: void init(const char*); }; -template<> void moneypunct_byname<char, false>::init(const char*); -template<> void moneypunct_byname<char, true>::init(const char*); -template<> void moneypunct_byname<wchar_t, false>::init(const char*); -template<> void moneypunct_byname<wchar_t, true>::init(const char*); +template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, false>::init(const char*); +template<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, true>::init(const char*); +template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, false>::init(const char*); +template<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, true>::init(const char*); _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, false>) _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, true>) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits