Add support for weak symbols in LTO.

llvm-svn: 261881
This commit is contained in:
Rafael Espindola
2016-02-25 16:25:41 +00:00
parent f1ce4cf1f1
commit 148445ef98
4 changed files with 23 additions and 5 deletions

View File

@@ -450,10 +450,12 @@ void BitcodeFile::parse() {
Sym.printName(OS);
StringRef NameRef = Saver.save(StringRef(Name));
SymbolBody *Body;
if (Sym.getFlags() & BasicSymbolRef::SF_Undefined)
uint32_t Flags = Sym.getFlags();
if (Flags & BasicSymbolRef::SF_Undefined)
Body = new (Alloc) Undefined(NameRef, false, STV_DEFAULT, false);
else
Body = new (Alloc) DefinedBitcode(NameRef);
Body =
new (Alloc) DefinedBitcode(NameRef, Flags & BasicSymbolRef::SF_Weak);
SymbolBodies.push_back(Body);
}
}