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