summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2019-05-28 06:33:06 +0000
committerRui Ueyama <ruiu@google.com>2019-05-28 06:33:06 +0000
commitd8f8abbd4a2823f223bd7bc56445541fb221b512 (patch)
tree7804f764a265df0a4f81469c3f988410cddbd513 /lld/ELF/SymbolTable.cpp
parentfe5eaab2b5b4523886bd63aebcfea8cfce586fa1 (diff)
downloadbcm5719-llvm-d8f8abbd4a2823f223bd7bc56445541fb221b512.tar.gz
bcm5719-llvm-d8f8abbd4a2823f223bd7bc56445541fb221b512.zip
Use SymbolTable::insert() to implement --trace.
Differential Revision: https://reviews.llvm.org/D62381 llvm-svn: 361791
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r--lld/ELF/SymbolTable.cpp19
1 files changed, 3 insertions, 16 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 9fc05d98366..c4d52b1168e 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -32,12 +32,6 @@ using namespace lld::elf;
SymbolTable *elf::Symtab;
-// Set a flag for --trace-symbol so that we can print out a log message
-// if a new symbol with the same name is inserted into the symbol table.
-void SymbolTable::trace(StringRef Name) {
- SymMap.insert({CachedHashStringRef(Name), -1});
-}
-
void SymbolTable::wrap(Symbol *Sym, Symbol *Real, Symbol *Wrap) {
// Swap symbols as instructed by -wrap.
int &Idx1 = SymMap[CachedHashStringRef(Sym->getName())];
@@ -70,13 +64,6 @@ Symbol *SymbolTable::insert(StringRef Name) {
auto P = SymMap.insert({CachedHashStringRef(Name), (int)SymVector.size()});
int &SymIndex = P.first->second;
bool IsNew = P.second;
- bool Traced = false;
-
- if (SymIndex == -1) {
- SymIndex = SymVector.size();
- IsNew = true;
- Traced = true;
- }
if (!IsNew)
return SymVector[SymIndex];
@@ -91,7 +78,6 @@ Symbol *SymbolTable::insert(StringRef Name) {
Sym->IsUsedInRegularObj = false;
Sym->ExportDynamic = false;
Sym->CanInline = true;
- Sym->Traced = Traced;
Sym->ScriptDefined = false;
return Sym;
}
@@ -106,9 +92,10 @@ Symbol *SymbolTable::find(StringRef Name) {
auto It = SymMap.find(CachedHashStringRef(Name));
if (It == SymMap.end())
return nullptr;
- if (It->second == -1)
+ Symbol *Sym = SymVector[It->second];
+ if (Sym->isPlaceholder())
return nullptr;
- return SymVector[It->second];
+ return Sym;
}
// Initialize DemangledSyms with a map from demangled symbols to symbol
OpenPOWER on IntegriCloud