summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2019-03-08 23:59:29 +0000
committerEric Fiselier <eric@efcs.ca>2019-03-08 23:59:29 +0000
commit411210838d762303027f7ac8ddc12427d774b170 (patch)
tree0ffd5e2c56ad9bd4f5808d38634a0f8a6ff1d12d
parent98214347c4acded6772a3a7d597f753224d97272 (diff)
downloadbcm5719-llvm-411210838d762303027f7ac8ddc12427d774b170.tar.gz
bcm5719-llvm-411210838d762303027f7ac8ddc12427d774b170.zip
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. llvm-svn: 355760
-rw-r--r--libcxx/include/__locale3
1 files changed, 3 insertions, 0 deletions
diff --git a/libcxx/include/__locale b/libcxx/include/__locale
index 0a275c07a9a..b79d78ddafe 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -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);
OpenPOWER on IntegriCloud