Simplify. NFC.

llvm-svn: 344074
This commit is contained in:
Rui Ueyama 2018-10-09 20:16:16 +00:00
parent 839ec9d9a4
commit 714abece2b
2 changed files with 4 additions and 12 deletions

View File

@ -234,11 +234,10 @@ std::pair<Symbol *, bool> SymbolTable::insert(StringRef Name, uint8_t Type,
if (!File || File->kind() == InputFile::ObjKind)
S->IsUsedInRegularObj = true;
if (!WasInserted && S->Type != Symbol::UnknownType &&
((Type == STT_TLS) != S->isTls())) {
bool HasTlsAttr = !WasInserted && (!S->isLazy() || S->isTls());
if (HasTlsAttr && (Type == STT_TLS) != S->isTls())
error("TLS attribute mismatch: " + toString(*S) + "\n>>> defined in " +
toString(S->File) + "\n>>> defined in " + toString(File));
}
return {S, WasInserted};
}
@ -566,7 +565,7 @@ void SymbolTable::addLazyArchive(StringRef Name, ArchiveFile &File,
bool WasInserted;
std::tie(S, WasInserted) = Symtab->insert(Name);
if (WasInserted) {
replaceSymbol<LazyArchive>(S, File, Symbol::UnknownType, Sym);
replaceSymbol<LazyArchive>(S, File, STT_NOTYPE, Sym);
return;
}
if (!S->isUndefined())
@ -590,7 +589,7 @@ void SymbolTable::addLazyObject(StringRef Name, LazyObjFile &File) {
bool WasInserted;
std::tie(S, WasInserted) = Symtab->insert(Name);
if (WasInserted) {
replaceSymbol<LazyObject>(S, File, Symbol::UnknownType, Name);
replaceSymbol<LazyObject>(S, File, STT_NOTYPE, Name);
return;
}
if (!S->isUndefined())

View File

@ -195,13 +195,6 @@ public:
// True if this symbol is defined by a linker script.
unsigned ScriptDefined : 1;
// The Type field may also have this value. It means that we have not yet seen
// a non-Lazy symbol with this name, so we don't know what its type is. The
// Type field is normally set to this value for Lazy symbols unless we saw a
// weak undefined symbol first, in which case we need to remember the original
// symbol's type in order to check for TLS mismatches.
enum { UnknownType = 255 };
bool isSection() const { return Type == llvm::ELF::STT_SECTION; }
bool isTls() const { return Type == llvm::ELF::STT_TLS; }
bool isFunc() const { return Type == llvm::ELF::STT_FUNC; }