From: Fangrui Song Date: Thu, 30 May 2019 14:50:10 +0000 (+0000) Subject: [ELF] De-template addUndefined() and addWrappedSymbols(). NFC X-Git-Tag: llvmorg-10-init~4205 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bdaa39ea6ca4a1a0263ca340abef33376a17ad63;p=platform%2Fupstream%2Fllvm.git [ELF] De-template addUndefined() and addWrappedSymbols(). NFC llvm-svn: 362099 --- diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index a234b8f..b49ab85 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -1483,7 +1483,7 @@ static void readSymbolPartitionSection(InputSectionBase *S) { Sym->Partition = NewPart.getNumber(); } -template static Symbol *addUndefined(StringRef Name) { +static Symbol *addUndefined(StringRef Name) { return Symtab->addSymbol( Undefined{nullptr, Name, STB_GLOBAL, STV_DEFAULT, 0}); } @@ -1530,7 +1530,6 @@ struct WrappedSymbol { // This function instantiates wrapper symbols. At this point, they seem // like they are not being used at all, so we explicitly set some flags so // that LTO won't eliminate them. -template static std::vector addWrappedSymbols(opt::InputArgList &Args) { std::vector V; DenseSet Seen; @@ -1544,8 +1543,8 @@ static std::vector addWrappedSymbols(opt::InputArgList &Args) { if (!Sym) continue; - Symbol *Real = addUndefined(Saver.save("__real_" + Name)); - Symbol *Wrap = addUndefined(Saver.save("__wrap_" + Name)); + Symbol *Real = addUndefined(Saver.save("__real_" + Name)); + Symbol *Wrap = addUndefined(Saver.save("__wrap_" + Name)); V.push_back({Sym, Real, Wrap}); // We want to tell LTO not to inline symbols to be overwritten @@ -1648,7 +1647,7 @@ template void LinkerDriver::link(opt::InputArgList &Args) { // Some symbols (such as __ehdr_start) are defined lazily only when there // are undefined symbols for them, so we add these to trigger that logic. for (StringRef Name : Script->ReferencedSymbols) - addUndefined(Name); + addUndefined(Name); // Handle the `--undefined ` options. for (StringRef S : Config->Undefined) @@ -1701,7 +1700,7 @@ template void LinkerDriver::link(opt::InputArgList &Args) { Out::ElfHeader->Size = sizeof(typename ELFT::Ehdr); // Create wrapped symbols for -wrap option. - std::vector Wrapped = addWrappedSymbols(Args); + std::vector Wrapped = addWrappedSymbols(Args); // We need to create some reserved symbols such as _end. Create them. if (!Config->Relocatable)