Move the personality function from LandingPadInst to Function
[oota-llvm.git] / test / Transforms / DeadArgElim / 2009-03-17-MRE-Invoke.ll
1 ; RUN: opt < %s -deadargelim | llvm-dis
2 ; PR3807
3
4 define internal { i32, i32 } @foo() {
5   ret {i32,i32} {i32 42, i32 4}
6 }
7
8 define i32 @bar() personality i32 (...)* @__gxx_personality_v0 {
9   %x = invoke {i32,i32} @foo() to label %T unwind label %T2
10 T:
11   %y = extractvalue {i32,i32} %x, 1
12   ret i32 %y
13 T2:
14   %exn = landingpad {i8*, i32}
15             cleanup
16   unreachable
17 }
18
19 define i32 @bar2() personality i32 (...)* @__gxx_personality_v0 {
20 entry:
21   %x = invoke {i32,i32} @foo() to label %T unwind label %T2
22 T:
23   %PN = phi i32 [0, %entry]
24   %y = extractvalue {i32,i32} %x, 1
25   ret i32 %y
26 T2:
27   %exn = landingpad {i8*, i32}
28             cleanup
29   unreachable
30 }
31
32 declare i32 @__gxx_personality_v0(...)