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.

llvm-svn: 223763

llvm/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;
   }