[lld] r284409 - Update for llvm change.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 17 11:51:27 PDT 2016


Author: rafael
Date: Mon Oct 17 13:51:27 2016
New Revision: 284409

URL: http://llvm.org/viewvc/llvm-project?rev=284409&view=rev
Log:
Update for llvm change.

Modified:
    lld/trunk/ELF/InputFiles.cpp

Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=284409&r1=284408&r2=284409&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Mon Oct 17 13:51:27 2016
@@ -693,7 +693,7 @@ static uint8_t mapVisibility(GlobalValue
 }
 
 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
   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<StringR
   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())




More information about the llvm-commits mailing list