[llvm-bugs] [Bug 38354] Clang-cl generates more code, in this case the Dtor. Resulting in link errors

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jul 30 10:34:24 PDT 2018


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

Reid Kleckner <rnk at google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|NEW                         |RESOLVED

--- Comment #1 from Reid Kleckner <rnk at google.com> ---
This links successfully without optimizations, but fails with optimizations.

With optimizations, LLVM discards the definition of A<int>::~A in t.obj after
inlining. This is normal for inline functions. Every TU that needs the
definition of an inline function must provide one. This rule exists to allow
each TU to individually discard inline function definitions that are not
needed.

MSVC implements this optimization under /Zc:inline
(https://msdn.microsoft.com/en-us/library/dn642448.aspx), but it is not on by
default for compatibility with code like this.

To fix the code, move the template method definitions into the .h file.

-- 
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/20180730/b2c5360b/attachment-0001.html>


More information about the llvm-bugs mailing list