From 868bbf35b079a7f356f6b2fbd9df7e66552bc57e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 4 Aug 2004 08:30:43 +0000 Subject: [PATCH] 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 --- lib/Linker/LinkModules.cpp | 4 ++++ lib/VMCore/Linker.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp index 5eadc388b6d..d10b2ccd9b3 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(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(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 5eadc388b6d..d10b2ccd9b3 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(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(EF->second); + if (DF && RecursiveResolveTypes(SF->getType(), DF->getType(), ST, "")) + DF = 0; // FIXME: gross. } if (!DF || SF->hasInternalLinkage() || DF->hasInternalLinkage()) {