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