summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-08-04 08:30:43 +0000
committerChris Lattner <sabre@nondot.org>2004-08-04 08:30:43 +0000
commit868bbf35b079a7f356f6b2fbd9df7e66552bc57e (patch)
tree58bb9e7ca0ff695a384ca54637e2a70e9b55a6f4
parentcc7ba49d85b66955516ff0d9574a70e1637dea36 (diff)
downloadllvm-868bbf35b079a7f356f6b2fbd9df7e66552bc57e.tar.gz
llvm-868bbf35b079a7f356f6b2fbd9df7e66552bc57e.tar.bz2
llvm-868bbf35b079a7f356f6b2fbd9df7e66552bc57e.tar.xz
Fix a major regression in my previous checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15486 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Linker/LinkModules.cpp4
-rw-r--r--lib/VMCore/Linker.cpp4
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index 5eadc388b6..d10b2ccd9b 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -411,6 +411,8 @@ static bool LinkGlobals(Module *Dest, const Module *Src,
GlobalsByName.find(SGV->getName());
if (EGV != GlobalsByName.end())
DGV = dyn_cast<GlobalVariable>(EGV->second);
+ if (DGV && RecursiveResolveTypes(SGV->getType(), DGV->getType(), ST, ""))
+ DGV = 0; // FIXME: gross.
}
assert(SGV->hasInitializer() || SGV->hasExternalLinkage() &&
@@ -589,6 +591,8 @@ static bool LinkFunctionProtos(Module *Dest, const Module *Src,
GlobalsByName.find(SF->getName());
if (EF != GlobalsByName.end())
DF = dyn_cast<Function>(EF->second);
+ if (DF && RecursiveResolveTypes(SF->getType(), DF->getType(), ST, ""))
+ DF = 0; // FIXME: gross.
}
if (!DF || SF->hasInternalLinkage() || DF->hasInternalLinkage()) {
diff --git a/lib/VMCore/Linker.cpp b/lib/VMCore/Linker.cpp
index 5eadc388b6..d10b2ccd9b 100644
--- a/lib/VMCore/Linker.cpp
+++ b/lib/VMCore/Linker.cpp
@@ -411,6 +411,8 @@ static bool LinkGlobals(Module *Dest, const Module *Src,
GlobalsByName.find(SGV->getName());
if (EGV != GlobalsByName.end())
DGV = dyn_cast<GlobalVariable>(EGV->second);
+ if (DGV && RecursiveResolveTypes(SGV->getType(), DGV->getType(), ST, ""))
+ DGV = 0; // FIXME: gross.
}
assert(SGV->hasInitializer() || SGV->hasExternalLinkage() &&
@@ -589,6 +591,8 @@ static bool LinkFunctionProtos(Module *Dest, const Module *Src,
GlobalsByName.find(SF->getName());
if (EF != GlobalsByName.end())
DF = dyn_cast<Function>(EF->second);
+ if (DF && RecursiveResolveTypes(SF->getType(), DF->getType(), ST, ""))
+ DF = 0; // FIXME: gross.
}
if (!DF || SF->hasInternalLinkage() || DF->hasInternalLinkage()) {