Sounds good to me, but Eric or Marshall need to sign off.
On Thu, Aug 3, 2017 at 10:15 AM, Shoaib Meenai <smee...@fb.com> wrote: > Ping. > > On 7/28/17, 7:57 PM, "Shoaib Meenai" <smee...@fb.com> wrote: > > Marshall, Eric, Hans, > > Any objections to backporting this to 5.0? It fixes a potential visibility > issue for clients of the header. > > On 7/28/17, 7:54 PM, "cfe-commits on behalf of Shoaib Meenai via > cfe-commits" <cfe-commits-boun...@lists.llvm.org on behalf of > cfe-commits@lists.llvm.org> wrote: > > Author: smeenai > Date: Fri Jul 28 19:54:41 2017 > New Revision: 309474 > > URL: > https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D309474-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E&s=5q7TS5mhaUsf-1jQBqX62RvjcqAiy2whh8RO7yFhPyA&e= > Log: > [libc++] Hoist extern template above first use > > This function template is referenced inside class basic_string as a > friend function. The extern template declaration needs to be above > that > friend declaration to actually take effect. > > This is important because this function was marked as exported in > r307966, so without the extern template taking effect, it can leak > into > other DSOs as a visible symbol. > > Modified: > libcxx/trunk/include/string > > Modified: libcxx/trunk/include/string > URL: > https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_string-3Frev-3D309474-26r1-3D309473-26r2-3D309474-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E&s=zFJXc9CA6Sgyh25kGeAh4Qo36gpNQX_zo2qRlRFJoL8&e= > > ============================================================================== > --- libcxx/trunk/include/string (original) > +++ libcxx/trunk/include/string Fri Jul 28 19:54:41 2017 > @@ -556,6 +556,8 @@ template<class _CharT, class _Traits, cl > basic_string<_CharT, _Traits, _Allocator> > operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, > _CharT __y); > > +_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+<char, > char_traits<char>, allocator<char> >(char const*, string const&)) > + > template <bool> > class _LIBCPP_TEMPLATE_VIS __basic_string_common > { > @@ -3999,7 +4001,6 @@ basic_string<_CharT, _Traits, _Allocator > > _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS > basic_string<char>) > _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS > basic_string<wchar_t>) > -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+<char, > char_traits<char>, allocator<char> >(char const*, string const&)) > > #if _LIBCPP_STD_VER > 11 > // Literal suffixes for basic_string [basic.string.literals] > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E&s=95GYNfQT_kBVjYvYRYnF3mje6PEyF4EDl4MCBQKCu88&e= > > > > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits