[lld] r189534 - [PECOFF] Do not create undefined atom for common symbol.

Rui Ueyama ruiu at google.com
Wed Aug 28 16:16:05 PDT 2013


Author: ruiu
Date: Wed Aug 28 18:16:04 2013
New Revision: 189534

URL: http://llvm.org/viewvc/llvm-project?rev=189534&view=rev
Log:
[PECOFF] Do not create undefined atom for common symbol.

We were creating undefined atoms for common symbols by mistake. That did not
lead to a link failure, for undefined atoms would be resolved by common symbols
in the same file, but that's a waste of resource.

Modified:
    lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp

Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp?rev=189534&r1=189533&r2=189534&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp Wed Aug 28 18:16:04 2013
@@ -221,7 +221,8 @@ private:
   void createUndefinedAtoms(const SymbolVectorT &symbols,
                             vector<const UndefinedAtom *> &result) {
     for (const coff_symbol *sym : symbols) {
-      if (sym->SectionNumber != llvm::COFF::IMAGE_SYM_UNDEFINED)
+      if (sym->SectionNumber != llvm::COFF::IMAGE_SYM_UNDEFINED ||
+          sym->Value != 0)
         continue;
       auto *atom = new (_alloc) COFFUndefinedAtom(*this, _symbolName[sym]);
       result.push_back(atom);





More information about the llvm-commits mailing list