[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 15:59:30 PST 2019

Author: ericwf
Date: Fri Mar  8 15:59:29 2019
New Revision: 355760

URL: http://llvm.org/viewvc/llvm-project?rev=355760&view=rev
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
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__locale?rev=355760&r1=355759&r2=355760&view=diff
--- 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.
     string_type transform(const char_type* __lo, const char_type* __hi) const
         return do_transform(__lo, __hi);

More information about the libcxx-commits mailing list