From 2b8f6ae6b791099ceff8ad87bcca7f165655c5c7 Mon Sep 17 00:00:00 2001 From: Joey Gouly Date: Thu, 10 Jan 2013 10:49:36 +0000 Subject: [PATCH] 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 --- lib/Linker/LinkModules.cpp | 2 +- test/Linker/testlink1.ll | 6 ++++++ test/Linker/testlink2.ll | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp index e973919de39..41ec114a75f 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(SrcTy)->getNumElements()) return false; } else if (VectorType *DVTy = dyn_cast(DstTy)) { - if (DVTy->getNumElements() != cast(SrcTy)->getNumElements()) + if (DVTy->getNumElements() != cast(SrcTy)->getNumElements()) return false; } diff --git a/test/Linker/testlink1.ll b/test/Linker/testlink1.ll index a8746379b6c..6ba6fd5fd7e 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 1798e31e47d..ff8e5299869 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)