OSDN Git Service

Skip declarations in the case of functions.
authorMichael Ilseman <milseman@apple.com>
Tue, 9 Dec 2014 08:20:06 +0000 (08:20 +0000)
committerMichael Ilseman <milseman@apple.com>
Tue, 9 Dec 2014 08:20:06 +0000 (08:20 +0000)
This is a revert of r223521 in spirit, if not in content. I am not
sure why declarations ended up in LazilyLinkGlobalValues in the first
place; that will take some more investigation.

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

lib/Linker/LinkModules.cpp

index bf07644..dd637be 100644 (file)
@@ -1533,6 +1533,9 @@ bool ModuleLinker::run() {
     GlobalValue *SGV = LazilyLinkGlobalValues.back();
     LazilyLinkGlobalValues.pop_back();
 
+    if (auto F = dyn_cast<Function>(SGV))
+      if (F->isDeclaration())
+        continue;
     if (linkGlobalValueBody(*SGV))
       return true;
   }