[lld] r287938 - [ELF] Add explicit template instantiations for toString

Evgeny Leviant via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 28 23:40:07 PST 2016


If you use toString<ELFT> *after* compiler sees the definition then no.

________________________________
От: David Blaikie <dblaikie at gmail.com>
Отправлено: 28 ноября 2016 г. 21:24
Кому: Evgeny Leviant; llvm-commits at lists.llvm.org
Тема: Re: [lld] r287938 - [ELF] Add explicit template instantiations for toString

Weird - wouldn't that have caused a failure at link time due to missing symbols?

On Mon, Nov 28, 2016 at 10:14 AM Evgeny Leviant <eleviant at accesssoftek.com<mailto:eleviant at accesssoftek.com>> wrote:

They are defined in InputSection.h since r287787. They didn't have explicit instantiations initialy which, I guess, is because they weren't used anywhere, except InputSection.cpp.

________________________________
От: David Blaikie <dblaikie at gmail.com<mailto:dblaikie at gmail.com>>
Отправлено: 28 ноября 2016 г. 20:48
Кому: Evgeny Leviant; llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>
Тема: Re: [lld] r287938 - [ELF] Add explicit template instantiations for toString

Are there extern template declarations in a header somewhere? (usually I'd expect to see them committed as a matched pair)

On Fri, Nov 25, 2016 at 8:52 AM Eugene Leviant via llvm-commits <llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>> wrote:
Author: evgeny777
Date: Fri Nov 25 10:42:04 2016
New Revision: 287938

URL: http://llvm.org/viewvc/llvm-project?rev=287938&view=rev
Log:
[ELF] Add explicit template instantiations for toString

Modified:
    lld/trunk/ELF/InputSection.cpp

Modified: lld/trunk/ELF/InputSection.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputSection.cpp?rev=287938&r1=287937&r2=287938&view=diff
==============================================================================
--- lld/trunk/ELF/InputSection.cpp (original)
+++ lld/trunk/ELF/InputSection.cpp Fri Nov 25 10:42:04 2016
@@ -823,3 +823,8 @@ template class elf::MergeInputSection<EL
 template class elf::MergeInputSection<ELF32BE>;
 template class elf::MergeInputSection<ELF64LE>;
 template class elf::MergeInputSection<ELF64BE>;
+
+template std::string elf::toString(const InputSectionBase<ELF32LE> *);
+template std::string elf::toString(const InputSectionBase<ELF32BE> *);
+template std::string elf::toString(const InputSectionBase<ELF64LE> *);
+template std::string elf::toString(const InputSectionBase<ELF64BE> *);


_______________________________________________
llvm-commits mailing list
llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161129/9693f737/attachment.html>


More information about the llvm-commits mailing list