summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Gouly <joey.gouly@arm.com>2013-01-10 10:49:36 +0000
committerJoey Gouly <joey.gouly@arm.com>2013-01-10 10:49:36 +0000
commit2b8f6ae6b791099ceff8ad87bcca7f165655c5c7 (patch)
treeb350eb5816757951add4eec03e66af41d691e188
parent1d505a33f9cb77a2adb644b85136e7be64a186d9 (diff)
downloadllvm-2b8f6ae6b791099ceff8ad87bcca7f165655c5c7.tar.gz
llvm-2b8f6ae6b791099ceff8ad87bcca7f165655c5c7.tar.bz2
llvm-2b8f6ae6b791099ceff8ad87bcca7f165655c5c7.tar.xz
Fix a copy/paste error in the IR Linker, casting an ArrayType instead of a VectorType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172054 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Linker/LinkModules.cpp2
-rw-r--r--test/Linker/testlink1.ll6
-rw-r--r--test/Linker/testlink2.ll3
3 files changed, 10 insertions, 1 deletions
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index e973919de3..41ec114a75 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -180,7 +180,7 @@ bool TypeMapTy::areTypesIsomorphic(Type *DstTy, Type *SrcTy) {
if (DATy->getNumElements() != cast<ArrayType>(SrcTy)->getNumElements())
return false;
} else if (VectorType *DVTy = dyn_cast<VectorType>(DstTy)) {
- if (DVTy->getNumElements() != cast<ArrayType>(SrcTy)->getNumElements())
+ if (DVTy->getNumElements() != cast<VectorType>(SrcTy)->getNumElements())
return false;
}
diff --git a/test/Linker/testlink1.ll b/test/Linker/testlink1.ll
index a8746379b6..6ba6fd5fd7 100644
--- a/test/Linker/testlink1.ll
+++ b/test/Linker/testlink1.ll
@@ -13,6 +13,10 @@
; The uses of intlist in the other file should be remapped.
; CHECK-NOT: {{%intlist.[0-9]}}
+; CHECK: %VecSize = type { <5 x i32> }
+; CHECK: %VecSize.{{[0-9]}} = type { <10 x i32> }
+%VecSize = type { <5 x i32> }
+
%Struct1 = type opaque
@S1GV = external global %Struct1*
@@ -93,3 +97,5 @@ define internal void @Testintern() {
define void @testIntern() {
ret void
}
+
+declare void @VecSizeCrash(%VecSize)
diff --git a/test/Linker/testlink2.ll b/test/Linker/testlink2.ll
index 1798e31e47..ff8e529986 100644
--- a/test/Linker/testlink2.ll
+++ b/test/Linker/testlink2.ll
@@ -8,6 +8,8 @@
%Ty1 = type { %Ty2* }
%Ty2 = type opaque
+%VecSize = type { <10 x i32> }
+
@GVTy1 = global %Ty1* null
@GVTy2 = external global %Ty2*
@@ -53,3 +55,4 @@ define internal void @testIntern() {
ret void
}
+declare void @VecSizeCrash1(%VecSize)