[LLVMbugs] [Bug 23667] Clang fails to dllexport explicit class template specialization definition with previous explicit template specialization declaration

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed May 27 10:04:42 PDT 2015


Hans Wennborg <hans at chromium.org> changed:

           What    |Removed                     |Added
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #2 from Hans Wennborg <hans at chromium.org> ---
We still fail in some situations:

  template <typename T> struct S {
    S(const S&) {};
    void f() {};
  extern template struct S<int>;

  void use(S<int>& s) {
    S<int> t(s);

  template struct __declspec(dllexport) S<int>;

In the example above, where S::f and S::S are referenced before the explicit
instantiation definition, S::f gets exported but S::S doesn't for some reason.

If use() is moved to after the explicit instantiation definition, both members
are exported.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150527/b4643b26/attachment.html>

More information about the llvm-bugs mailing list