[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


https://llvm.org/bugs/show_bug.cgi?id=23667

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);
    s.f();
  }

  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