diff options
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r-- | lld/ELF/SymbolTable.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index 89275cdb0c7..289ffbbfe8f 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -151,7 +151,8 @@ template <class ELFT> void SymbolTable<ELFT>::addCombinedLtoObject() { template <class ELFT> SymbolBody *SymbolTable<ELFT>::addUndefined(StringRef Name) { auto *Sym = new (Alloc) - UndefinedElf<ELFT>(Name, STB_GLOBAL, STV_DEFAULT, /*Type*/ 0); + Undefined(Name, STB_GLOBAL, STV_DEFAULT, /*Type*/ 0, /*Size*/ 0, + /*IsBitcode*/ false); resolve(Sym); return Sym; } @@ -314,7 +315,7 @@ template <class ELFT> Symbol *SymbolTable<ELFT>::insert(SymbolBody *New) { if (K == SymbolBody::DefinedRegularKind || K == SymbolBody::DefinedCommonKind || K == SymbolBody::DefinedSyntheticKind || - K == SymbolBody::UndefinedElfKind) + (K == SymbolBody::UndefinedKind && !New->IsUndefinedBitcode)) Sym->IsUsedInRegularObj = true; return Sym; } |