]> granicus.if.org Git - llvm/commitdiff
[RuntimeDyld] Skip undefined symbols when building the symbol table.
authorLang Hames <lhames@gmail.com>
Wed, 30 Nov 2016 01:12:07 +0000 (01:12 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 30 Nov 2016 01:12:07 +0000 (01:12 +0000)
Storing these in the symbol table (with zero values) is just wasted space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288225 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

index 82b582a84257a42cdd6afe3af6b235bae4de377e..b1fa57875ed790949ab3db469b711f08c712d1a0 100644 (file)
@@ -205,6 +205,10 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
        ++I) {
     uint32_t Flags = I->getFlags();
 
+    // Skip undefined symbols.
+    if (Flags & SymbolRef::SF_Undefined)
+      continue;
+
     if (Flags & SymbolRef::SF_Common)
       CommonSymbols.push_back(*I);
     else {