1 declare i8* @__cxa_allocate_exception(i64) 2 declare void @__cxa_throw(i8*, i8*, i8*) 3 declare i32 @__gxx_personality_v0(...) 4 declare void @__cxa_end_catch() 5 declare i8* @__cxa_begin_catch(i8*) 6 7 @_ZTIi = external constant i8* 8 9 define void @throwException_B() { 10 %exception = tail call i8* @__cxa_allocate_exception(i64 4) 11 call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null) 12 unreachable 13 } 14 15 define i32 @FB() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { 16 entry: 17 invoke void @throwException_B() 18 to label %try.cont unwind label %lpad 19 20 lpad: 21 %p = landingpad { i8*, i32 } 22 catch i8* bitcast (i8** @_ZTIi to i8*) 23 %e = extractvalue { i8*, i32 } %p, 0 24 call i8* @__cxa_begin_catch(i8* %e) 25 call void @__cxa_end_catch() 26 br label %try.cont 27 28 try.cont: 29 ret i32 0 30 } 31