diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2012-07-29 01:15:37 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2012-07-29 01:15:37 +0000 |
commit | d64cb165d7741cdaa21405b49c019b9dacfbeb11 (patch) | |
tree | d27ffbc7f2be39af854227785793740a4c7c28a1 /test/Transforms | |
parent | 7fe1b96ef0ac0c59aa7b1c1516336113ff2ddb6b (diff) | |
download | external_llvm-d64cb165d7741cdaa21405b49c019b9dacfbeb11.zip external_llvm-d64cb165d7741cdaa21405b49c019b9dacfbeb11.tar.gz external_llvm-d64cb165d7741cdaa21405b49c019b9dacfbeb11.tar.bz2 |
Add testcases for GlobalOpt changes in r160693 and r160757.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160925 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll b/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll index f426120..a472f10 100644 --- a/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll +++ b/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll @@ -1,12 +1,12 @@ ; RUN: opt -globalopt -S -o - < %s | FileCheck %s -@test1 = internal global i8* null +@glbl = internal global i8* null define void @test1a() { ; CHECK: @test1a ; CHECK-NOT: store ; CHECK-NEXT: ret void - store i8* null, i8** @test1 + store i8* null, i8** @glbl ret void } @@ -14,6 +14,36 @@ define void @test1b(i8* %p) { ; CHECK: @test1b ; CHECK-NEXT: store ; CHECK-NEXT: ret void - store i8* %p, i8** @test1 + store i8* %p, i8** @glbl ret void } + +define void @test2() { +; CHECK: @test2 +; CHECK: alloca i8 + %txt = alloca i8 + call void @foo2(i8* %txt) + %call2 = call i8* @strdup(i8* %txt) + store i8* %call2, i8** @glbl + ret void +} +declare i8* @strdup(i8*) +declare void @foo2(i8*) + +define void @test3() uwtable { +; CHECK: @test3 +; CHECK-NOT: bb1: +; CHECK-NOT: bb2: +; CHECK: invoke + %ptr = invoke i8* @_Znwm(i64 1) + to label %bb1 unwind label %bb2 +bb1: + store i8* %ptr, i8** @glbl + unreachable +bb2: + %tmp1 = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0 + cleanup + resume { i8*, i32 } %tmp1 +} +declare i32 @__gxx_personality_v0(i32, i64, i8*, i8*) +declare i8* @_Znwm(i64) |