xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2010-08-04-MingWCrash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-pc-mingw32
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @func() nounwind personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
4*9880d681SAndroid Build Coastguard Workerinvoke.cont:
5*9880d681SAndroid Build Coastguard Worker  %call = tail call i8* @malloc()
6*9880d681SAndroid Build Coastguard Worker  %a = invoke i32 @bar()
7*9880d681SAndroid Build Coastguard Worker          to label %bb1 unwind label %lpad
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerbb1:
10*9880d681SAndroid Build Coastguard Worker  ret void
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerlpad:
13*9880d681SAndroid Build Coastguard Worker  %exn.ptr = landingpad { i8*, i32 }
14*9880d681SAndroid Build Coastguard Worker           catch i8* null
15*9880d681SAndroid Build Coastguard Worker  %exn = extractvalue { i8*, i32 } %exn.ptr, 0
16*9880d681SAndroid Build Coastguard Worker  %eh.selector = extractvalue { i8*, i32 } %exn.ptr, 1
17*9880d681SAndroid Build Coastguard Worker  %ehspec.fails = icmp slt i32 %eh.selector, 0
18*9880d681SAndroid Build Coastguard Worker  br i1 %ehspec.fails, label %ehspec.unexpected, label %cleanup
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workercleanup:
21*9880d681SAndroid Build Coastguard Worker  resume { i8*, i32 } %exn.ptr
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerehspec.unexpected:
24*9880d681SAndroid Build Coastguard Worker  tail call void @__cxa_call_unexpected(i8* %exn) noreturn nounwind
25*9880d681SAndroid Build Coastguard Worker  unreachable
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdeclare noalias i8* @malloc()
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdeclare void @_Unwind_Resume_or_Rethrow(i8*)
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerdeclare void @__cxa_call_unexpected(i8*)
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdeclare i32 @bar()
37