xref: /aosp_15_r20/external/llvm/test/Analysis/Dominators/invoke.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -verify -disable-output < %s
2*9880d681SAndroid Build Coastguard Worker; This tests that we handle unreachable blocks correctly
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @f() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
5*9880d681SAndroid Build Coastguard Worker  %v1 = invoke i32* @g()
6*9880d681SAndroid Build Coastguard Worker          to label %bb1 unwind label %bb2
7*9880d681SAndroid Build Coastguard Worker  invoke void @__dynamic_cast()
8*9880d681SAndroid Build Coastguard Worker          to label %bb1 unwind label %bb2
9*9880d681SAndroid Build Coastguard Workerbb1:
10*9880d681SAndroid Build Coastguard Worker  %Hidden = getelementptr inbounds i32, i32* %v1, i64 1
11*9880d681SAndroid Build Coastguard Worker  ret void
12*9880d681SAndroid Build Coastguard Workerbb2:
13*9880d681SAndroid Build Coastguard Worker  %lpad.loopexit80 = landingpad { i8*, i32 }
14*9880d681SAndroid Build Coastguard Worker          cleanup
15*9880d681SAndroid Build Coastguard Worker  ret void
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
18*9880d681SAndroid Build Coastguard Workerdeclare void @__dynamic_cast()
19*9880d681SAndroid Build Coastguard Workerdeclare i32* @g()
20