extern_weak linkage. fixes PR1038

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32603 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Lenharth 2006-12-15 17:35:32 +00:00
parent c8782ad4ee
commit 8753c447a5

View File

@ -365,6 +365,10 @@ static bool GetLinkageResult(GlobalValue *Dest, GlobalValue *Src,
LinkFromSrc = true;
LT = Src->getLinkage();
}
} else if (Dest->hasExternalWeakLinkage()) {
//If the Dest is weak, use the source linkage
LinkFromSrc = true;
LT = Src->getLinkage();
} else {
LinkFromSrc = false;
LT = Dest->getLinkage();
@ -446,7 +450,7 @@ static bool LinkGlobals(Module *Dest, Module *Src,
if (DGV && DGV->hasInternalLinkage())
DGV = 0;
assert(SGV->hasInitializer() ||
assert(SGV->hasInitializer() || SGV->hasExternalWeakLinkage() ||
SGV->hasExternalLinkage() || SGV->hasDLLImportLinkage() &&
"Global must either be external or have an initializer!");