<div dir="ltr"><div dir="ltr"><a href="http://llvm.org/PR41018">llvm.org/PR41018</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 8, 2019 at 7:00 PM Shoaib Meenai <<a href="mailto:smeenai@fb.com">smeenai@fb.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Have you filed a clang bug?<br>
<br>
On 3/8/19, 3:58 PM, "libcxx-commits on behalf of Eric Fiselier via libcxx-commits" <<a href="mailto:libcxx-commits-bounces@lists.llvm.org" target="_blank">libcxx-commits-bounces@lists.llvm.org</a> on behalf of <a href="mailto:libcxx-commits@lists.llvm.org" target="_blank">libcxx-commits@lists.llvm.org</a>> wrote:<br>
<br>
Author: ericwf<br>
Date: Fri Mar 8 15:59:29 2019<br>
New Revision: 355760<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D355760-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=YbkTkZgDgW9u3gaZMtaLTrlKrtkxvQhiwJG6USGff9E&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D355760-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=YbkTkZgDgW9u3gaZMtaLTrlKrtkxvQhiwJG6USGff9E&e=</a><br>
Log:<br>
Work around dllimport bug with exclude_from_explicit_instantiation.<br>
<br>
When dllimport is specified on a class, and<br>
exclude_from_explicit_instatiation is specified on a member, clang-cl<br>
will still expect a definition to be available externally. But this is<br>
not correct.<br>
<br>
Surprisingly one one symbol seems to be consistently affected by this<br>
bug. So this patch simply works around it there.<br>
<br>
Modified:<br>
libcxx/trunk/include/__locale<br>
<br>
Modified: libcxx/trunk/include/__locale<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_-5F-5Flocale-3Frev-3D355760-26r1-3D355759-26r2-3D355760-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=AxBEZsvbDRj4wFiydEiujJlo1Iboo0ka31eLYrAVDVI&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_-5F-5Flocale-3Frev-3D355760-26r1-3D355759-26r2-3D355760-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=AxBEZsvbDRj4wFiydEiujJlo1Iboo0ka31eLYrAVDVI&e=</a><br>
==============================================================================<br>
--- libcxx/trunk/include/__locale (original)<br>
+++ libcxx/trunk/include/__locale Fri Mar 8 15:59:29 2019<br>
@@ -254,7 +254,10 @@ public:<br>
return do_compare(__lo1, __hi1, __lo2, __hi2);<br>
}<br>
<br>
+ // FIXME(EricWF): The _LIBCPP_ALWAYS_INLINE is needed on Windows to work<br>
+ // around a dllimport bug that expects an external instantiation.<br>
_LIBCPP_INLINE_VISIBILITY<br>
+ _LIBCPP_ALWAYS_INLINE<br>
string_type transform(const char_type* __lo, const char_type* __hi) const<br>
{<br>
return do_transform(__lo, __hi);<br>
<br>
<br>
_______________________________________________<br>
libcxx-commits mailing list<br>
<a href="mailto:libcxx-commits@lists.llvm.org" target="_blank">libcxx-commits@lists.llvm.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_libcxx-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=-Rpq6jhVffz2Oy22CwLlLwDTFHxDO_jpmK9UIlSeFFs&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_libcxx-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=2Na5lcbfttUEFT5yqeby2oe7VkGdaqttbhZ2DH88d6U&s=-Rpq6jhVffz2Oy22CwLlLwDTFHxDO_jpmK9UIlSeFFs&e=</a><br>
<br>
<br>
</blockquote></div>