[libcxx-commits] [PATCH] D112215: [libcxx] [ci] Add CI configurations for MinGW

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Nov 17 12:21:00 PST 2021


ldionne added a comment.

In D112215#3137401 <https://reviews.llvm.org/D112215#3137401>, @mstorsjo wrote:

> In D112215#3137336 <https://reviews.llvm.org/D112215#3137336>, @ldionne wrote:
>
>>> (If the library too was built in C++2b mode, the issue wouldn't appear.)
>>
>> Oh really, do you know why?
>
> As `__exclude_from_explicit_instantiation__` doesn't work as intended when dllimport/export is involved, it turns out that all the methods marked with that attribute actually do end up exported by the shared library. So the library built in C++20 mode lacks the method (as the method is only visible in C++2b mode), the test code in C++2b mode sees the new method and uses it (but expects an extern definition in the libc++ DLL due to the explicit template instantiation, as it doesn't honor `__exclude_from_explicit_instantiation__`).
>
> If the library had been built in C++2b mode, the method would have existed in the library and been found there (even though the intent of the attribute was to use a local instantiation).

Got it, thanks. Yeah the real thing we need to do is fix the damn bug with `__exclude_from_explicit_instantiation__`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112215/new/

https://reviews.llvm.org/D112215



More information about the libcxx-commits mailing list