xref: /llvm-project/llvm/test/ExecutionEngine/MCJIT/Inputs/multi-module-eh-b.ll (revision 2d56d8c4e8751c7e2cab927cdeb4e519af3f3585)
1declare ptr @__cxa_allocate_exception(i64)
2declare void @__cxa_throw(ptr, ptr, ptr)
3declare i32 @__gxx_personality_v0(...)
4declare void @__cxa_end_catch()
5declare ptr @__cxa_begin_catch(ptr)
6
7@_ZTIi = external constant ptr
8
9define void @throwException_B() {
10  %exception = tail call ptr @__cxa_allocate_exception(i64 4)
11  call void @__cxa_throw(ptr %exception, ptr @_ZTIi, ptr null)
12  unreachable
13}
14
15define i32 @FB() personality ptr @__gxx_personality_v0 {
16entry:
17  invoke void @throwException_B()
18          to label %try.cont unwind label %lpad
19
20lpad:
21  %p = landingpad { ptr, i32 }
22          catch ptr @_ZTIi
23  %e = extractvalue { ptr, i32 } %p, 0
24  call ptr @__cxa_begin_catch(ptr %e)
25  call void @__cxa_end_catch()
26  br label %try.cont
27
28try.cont:
29  ret i32 0
30}
31