summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/COFF/SymbolTable.cpp13
-rw-r--r--lld/COFF/SymbolTable.h2
2 files changed, 4 insertions, 11 deletions
diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp
index 56298b960bc..015d7075dca 100644
--- a/lld/COFF/SymbolTable.cpp
+++ b/lld/COFF/SymbolTable.cpp
@@ -22,9 +22,9 @@ namespace lld {
namespace coff {
SymbolTable::SymbolTable() {
- addSymbol(new DefinedAbsolute("__ImageBase", Config->ImageBase));
+ resolve(new (Alloc) DefinedAbsolute("__ImageBase", Config->ImageBase));
if (!Config->EntryName.empty())
- addUndefined(Config->EntryName);
+ resolve(new (Alloc) Undefined(Config->EntryName));
}
std::error_code SymbolTable::addFile(std::unique_ptr<InputFile> File) {
@@ -192,7 +192,7 @@ ErrorOr<StringRef> SymbolTable::findDefaultEntry() {
return StringRef(E[1]);
if (!find(E[0]))
continue;
- if (auto EC = addSymbol(new Undefined(E[1])))
+ if (auto EC = resolve(new (Alloc) Undefined(E[1])))
return EC;
return StringRef(E[1]);
}
@@ -201,7 +201,7 @@ ErrorOr<StringRef> SymbolTable::findDefaultEntry() {
}
std::error_code SymbolTable::addUndefined(StringRef Name) {
- return addSymbol(new Undefined(Name));
+ return resolve(new (Alloc) Undefined(Name));
}
// Resolve To, and make From an alias to To.
@@ -213,11 +213,6 @@ std::error_code SymbolTable::rename(StringRef From, StringRef To) {
return std::error_code();
}
-std::error_code SymbolTable::addSymbol(SymbolBody *Body) {
- OwningSymbols.push_back(std::unique_ptr<SymbolBody>(Body));
- return resolve(Body);
-}
-
void SymbolTable::dump() {
for (auto &P : Symtab) {
Symbol *Ref = P.second;
diff --git a/lld/COFF/SymbolTable.h b/lld/COFF/SymbolTable.h
index bb50cd3dea7..0c5e795d79c 100644
--- a/lld/COFF/SymbolTable.h
+++ b/lld/COFF/SymbolTable.h
@@ -84,12 +84,10 @@ private:
std::error_code resolve(SymbolBody *Body);
std::error_code addMemberFile(Lazy *Body);
- std::error_code addSymbol(SymbolBody *Body);
std::unordered_map<StringRef, Symbol *> Symtab;
std::vector<std::unique_ptr<ArchiveFile>> ArchiveFiles;
std::vector<std::unique_ptr<BitcodeFile>> BitcodeFiles;
- std::vector<std::unique_ptr<SymbolBody>> OwningSymbols;
std::unique_ptr<MemoryBuffer> LTOObjectFile;
llvm::BumpPtrAllocator Alloc;
};
OpenPOWER on IntegriCloud