summaryrefslogtreecommitdiff
path: root/lib/Linker
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-05-06 22:52:54 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-05-06 22:52:54 +0000
commit149a3153694f8b75f8f2f1754575e6a52b45214a (patch)
treeabddca772e80923f4f648395efe0e30c16480bdf /lib/Linker
parentb04adddd50dfa4c3fbdad3b15d601402254c1ff5 (diff)
downloadllvm-149a3153694f8b75f8f2f1754575e6a52b45214a.tar.gz
llvm-149a3153694f8b75f8f2f1754575e6a52b45214a.tar.bz2
llvm-149a3153694f8b75f8f2f1754575e6a52b45214a.tar.xz
If weak GlobalVariable was bitcast'ed to different type during linking
we will need to strip all casts for intializer lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50776 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Linker')
-rw-r--r--lib/Linker/LinkModules.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index a82b266bbd..ddc9081d65 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -758,7 +758,7 @@ static bool LinkGlobalInits(Module *Dest, const Module *Src,
Constant *SInit =
cast<Constant>(RemapOperand(SGV->getInitializer(), ValueMap));
- GlobalVariable *DGV = cast<GlobalVariable>(ValueMap[SGV]);
+ GlobalVariable *DGV = cast<GlobalVariable>(StripPointerCasts(ValueMap[SGV]));
if (DGV->hasInitializer()) {
if (SGV->hasExternalLinkage()) {
if (DGV->getInitializer() != SInit)