summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-10-17 18:51:27 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-10-17 18:51:27 +0000
commitb18783e441a2b33bc2ce88c6bd41709f083ac2ea (patch)
treea01c04dedfb848c9e257cb37fdb3a9fa879593bb
parent62382c930d2fb403d1876bb8d0a8c50665dce704 (diff)
downloadbcm5719-llvm-b18783e441a2b33bc2ce88c6bd41709f083ac2ea.tar.gz
bcm5719-llvm-b18783e441a2b33bc2ce88c6bd41709f083ac2ea.zip
Update for llvm change.
llvm-svn: 284409
-rw-r--r--lld/ELF/InputFiles.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index a5f9b909f11..9c88d5f3fd9 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -693,7 +693,7 @@ static uint8_t mapVisibility(GlobalValue::VisibilityTypes GvVisibility) {
}
template <class ELFT>
-static Symbol *createBitcodeSymbol(const DenseSet<const Comdat *> &KeptComdats,
+static Symbol *createBitcodeSymbol(const DenseSet<StringRef> &KeptComdats,
const lto::InputFile::Symbol &ObjSym,
StringSaver &Saver, BitcodeFile *F) {
StringRef NameRef = Saver.save(ObjSym.getName());
@@ -704,10 +704,10 @@ static Symbol *createBitcodeSymbol(const DenseSet<const Comdat *> &KeptComdats,
uint8_t Visibility = mapVisibility(ObjSym.getVisibility());
bool CanOmitFromDynSym = ObjSym.canBeOmittedFromSymbolTable();
- if (const Comdat *C = check(ObjSym.getComdat()))
- if (!KeptComdats.count(C))
- return Symtab<ELFT>::X->addUndefined(NameRef, Binding, Visibility, Type,
- CanOmitFromDynSym, F);
+ StringRef C = check(ObjSym.getComdat());
+ if (!C.empty() && !KeptComdats.count(C))
+ return Symtab<ELFT>::X->addUndefined(NameRef, Binding, Visibility, Type,
+ CanOmitFromDynSym, F);
if (Flags & BasicSymbolRef::SF_Undefined)
return Symtab<ELFT>::X->addUndefined(NameRef, Binding, Visibility, Type,
@@ -736,11 +736,11 @@ void BitcodeFile::parse(DenseSet<StringRef> &ComdatGroups) {
Obj = check(lto::InputFile::create(MemoryBufferRef(
MB.getBuffer(), Saver.save(ArchiveName + MB.getBufferIdentifier() +
utostr(OffsetInArchive)))));
- DenseSet<const Comdat *> KeptComdats;
+ DenseSet<StringRef> KeptComdats;
for (const auto &P : Obj->getComdatSymbolTable()) {
StringRef N = Saver.save(P.first());
if (ComdatGroups.insert(N).second)
- KeptComdats.insert(&P.second);
+ KeptComdats.insert(N);
}
for (const lto::InputFile::Symbol &ObjSym : Obj->symbols())
OpenPOWER on IntegriCloud