[libcxx-commits] [libcxx] r355760 - Work around dllimport bug with exclude_from_explicit_instantiation.

Eric Fiselier via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 8 17:05:27 PST 2019


llvm.org/PR41018

On Fri, Mar 8, 2019 at 7:00 PM Shoaib Meenai <smeenai at fb.com> wrote:

> Have you filed a clang bug?
>
> On 3/8/19, 3:58 PM, "libcxx-commits on behalf of Eric Fiselier via
> libcxx-commits" <libcxx-commits-bounces at lists.llvm.org on behalf of
> libcxx-commits at lists.llvm.org> wrote:
>
>     Author: ericwf
>     Date: Fri Mar  8 15:59:29 2019
>     New Revision: 355760
>
>     URL:
> 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=
>     Log:
>     Work around dllimport bug with exclude_from_explicit_instantiation.
>
>     When dllimport is specified on a class, and
>     exclude_from_explicit_instatiation is specified on a member, clang-cl
>     will still expect a definition to be available externally. But this is
>     not correct.
>
>     Surprisingly one one symbol seems to be consistently affected by this
>     bug. So this patch simply works around it there.
>
>     Modified:
>         libcxx/trunk/include/__locale
>
>     Modified: libcxx/trunk/include/__locale
>     URL:
> 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=
>
> ==============================================================================
>     --- libcxx/trunk/include/__locale (original)
>     +++ libcxx/trunk/include/__locale Fri Mar  8 15:59:29 2019
>     @@ -254,7 +254,10 @@ public:
>              return do_compare(__lo1, __hi1, __lo2, __hi2);
>          }
>
>     +    // FIXME(EricWF): The _LIBCPP_ALWAYS_INLINE is needed on Windows
> to work
>     +    // around a dllimport bug that expects an external instantiation.
>          _LIBCPP_INLINE_VISIBILITY
>     +    _LIBCPP_ALWAYS_INLINE
>          string_type transform(const char_type* __lo, const char_type*
> __hi) const
>          {
>              return do_transform(__lo, __hi);
>
>
>     _______________________________________________
>     libcxx-commits mailing list
>     libcxx-commits at lists.llvm.org
>
> 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=
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190308/33b0c2ac/attachment-0001.html>


More information about the libcxx-commits mailing list