diff options
author | Richard Osborne <richard@xmos.com> | 2012-09-24 17:10:03 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2012-09-24 17:10:03 +0000 |
commit | bdc76fc75ab915214a35649d99fcac0341585ef5 (patch) | |
tree | 098e9b02acb66c3d197fafcbda166c811eea1e80 /test | |
parent | 84d882ee56b76d571971e9f265be1611b1583720 (diff) |
Add missing check for presence of target data.
This avoids a crash in visitAllocaInst when target data isn't available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164539 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll b/test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll new file mode 100644 index 0000000000..a31aa822e6 --- /dev/null +++ b/test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll @@ -0,0 +1,19 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +; Check we don't crash due to lack of target data. + +@G = constant [100 x i8] zeroinitializer + +declare void @bar(i8*) +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind + +define void @test() { +; CHECK: @test +; CHECK: llvm.memcpy +; CHECK ret void + %A = alloca [100 x i8] + %a = getelementptr inbounds [100 x i8]* %A, i64 0, i64 0 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* getelementptr inbounds ([100 x i8]* @G, i64 0, i32 0), i64 100, i32 4, i1 false) + call void @bar(i8* %a) readonly + ret void +} |