Move the personality function from LandingPadInst to Function
[oota-llvm.git] / test / Transforms / ADCE / 2005-02-17-PHI-Invoke-Crash.ll
1 ; RUN: opt < %s -adce -disable-output
2
3 declare void @strlen()
4
5 declare void @_ZN10QByteArray6resizeEi()
6
7 declare void @q_atomic_decrement()
8
9 define void @_ZNK10QByteArray13leftJustifiedEicb() personality i32 (...)* @__gxx_personality_v0 {
10 entry:
11         invoke void @strlen( )
12                         to label %tmp.3.i.noexc unwind label %invoke_catch.0
13
14 tmp.3.i.noexc:          ; preds = %entry
15         br i1 false, label %then.0, label %else.0
16
17 invoke_catch.0:         ; preds = %entry
18         %exn.0 = landingpad {i8*, i32}
19                  cleanup
20         invoke void @q_atomic_decrement( )
21                         to label %tmp.1.i.i183.noexc unwind label %terminate
22
23 tmp.1.i.i183.noexc:             ; preds = %invoke_catch.0
24         ret void
25
26 then.0:         ; preds = %tmp.3.i.noexc
27         invoke void @_ZN10QByteArray6resizeEi( )
28                         to label %invoke_cont.1 unwind label %invoke_catch.1
29
30 invoke_catch.1:         ; preds = %then.0
31         %exn.1 = landingpad {i8*, i32}
32                  cleanup
33         invoke void @q_atomic_decrement( )
34                         to label %tmp.1.i.i162.noexc unwind label %terminate
35
36 tmp.1.i.i162.noexc:             ; preds = %invoke_catch.1
37         ret void
38
39 invoke_cont.1:          ; preds = %then.0
40         ret void
41
42 else.0:         ; preds = %tmp.3.i.noexc
43         ret void
44
45 terminate:              ; preds = %invoke_catch.1, %invoke_catch.0
46         %dbg.0.1 = phi {  }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ]               ; <{  }*> [#uses=0]
47         %exn = landingpad {i8*, i32}
48                  cleanup
49         unreachable
50 }
51
52 declare i32 @__gxx_personality_v0(...)