diff options
author | Chris Lattner <sabre@nondot.org> | 2007-10-12 05:29:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-10-12 05:29:53 +0000 |
commit | 7a839a79f0b113e862651c36b132f7985126ba51 (patch) | |
tree | 7a0fc7ace34abd10c1015b6fe1da4575875fffd4 /test | |
parent | c8c31f71c422d6e73c75f7af050bb0fb782dd41b (diff) | |
download | external_llvm-7a839a79f0b113e862651c36b132f7985126ba51.zip external_llvm-7a839a79f0b113e862651c36b132f7985126ba51.tar.gz external_llvm-7a839a79f0b113e862651c36b132f7985126ba51.tar.bz2 |
testcase for PR1728
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42890 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/malloc3.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/malloc3.ll b/test/Transforms/InstCombine/malloc3.ll new file mode 100644 index 0000000..f6f412d --- /dev/null +++ b/test/Transforms/InstCombine/malloc3.ll @@ -0,0 +1,26 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {malloc.*struct.foo} | count 2 +; PR1728 + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i686-apple-darwin8" + %struct.foo = type { %struct.foo*, [10 x i32] } +@.str = internal constant [21 x i8] c"tmp = %p, next = %p\0A\00" ; <[21 x i8]*> [#uses=1] + +define i32 @main() { +entry: + %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] + %tmp1 = malloc i8, i32 44 ; <i8*> [#uses=1] + %tmp12 = bitcast i8* %tmp1 to %struct.foo* ; <%struct.foo*> [#uses=3] + %tmp3 = malloc i8, i32 44 ; <i8*> [#uses=1] + %tmp34 = bitcast i8* %tmp3 to %struct.foo* ; <%struct.foo*> [#uses=1] + %tmp6 = getelementptr %struct.foo* %tmp12, i32 0, i32 0 ; <%struct.foo**> [#uses=1] + store %struct.foo* %tmp34, %struct.foo** %tmp6, align 4 + %tmp8 = getelementptr %struct.foo* %tmp12, i32 0, i32 0 ; <%struct.foo**> [#uses=1] + %tmp9 = load %struct.foo** %tmp8, align 4 ; <%struct.foo*> [#uses=1] + %tmp10 = getelementptr [21 x i8]* @.str, i32 0, i32 0 ; <i8*> [#uses=1] + %tmp13 = call i32 (i8*, ...)* @printf( i8* %tmp10, %struct.foo* %tmp12, %struct.foo* %tmp9 ) ; <i32> [#uses=0] + ret i32 undef +} + +declare i32 @printf(i8*, ...) + |