1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s 2*9880d681SAndroid Build Coastguard Worker; PR5495 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker%"struct.std::__ctype_abstract_base<wchar_t>" = type { %"struct.std::locale::facet" } 5*9880d681SAndroid Build Coastguard Worker%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__ctype_abstract_base<wchar_t>"*, %"struct.std::__ctype_abstract_base<wchar_t>"* } 6*9880d681SAndroid Build Coastguard Worker%"struct.std::basic_istream<char,std::char_traits<char> >" = type { i32 (...)**, i32, %"struct.std::basic_ios<char,std::char_traits<char> >" } 7*9880d681SAndroid Build Coastguard Worker%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" } 8*9880d681SAndroid Build Coastguard Worker%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" } 9*9880d681SAndroid Build Coastguard Worker%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 } 10*9880d681SAndroid Build Coastguard Worker%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" } 11*9880d681SAndroid Build Coastguard Worker%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } 12*9880d681SAndroid Build Coastguard Worker%"struct.std::ios_base::_Words" = type { i8*, i32 } 13*9880d681SAndroid Build Coastguard Worker%"struct.std::locale" = type { %"struct.std::locale::_Impl"* } 14*9880d681SAndroid Build Coastguard Worker%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } 15*9880d681SAndroid Build Coastguard Worker%"struct.std::locale::facet" = type { i32 (...)**, i32 } 16*9880d681SAndroid Build Coastguard Worker%union..0._15 = type { i32 } 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerdeclare i8* @__cxa_begin_catch(i8*) nounwind 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdeclare %"struct.std::ctype<char>"* @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale(%"struct.std::locale"*) 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdefine %"struct.std::basic_istream<char,std::char_traits<char> >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_(%"struct.std::basic_istream<char,std::char_traits<char> >"* %__in, i8* nocapture %__s) personality i32 (...)* @__gxx_personality_v0 { 23*9880d681SAndroid Build Coastguard Workerentry: 24*9880d681SAndroid Build Coastguard Worker %0 = invoke %"struct.std::ctype<char>"* @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale(%"struct.std::locale"* undef) 25*9880d681SAndroid Build Coastguard Worker to label %invcont8 unwind label %lpad74 ; <%"struct.std::ctype<char>"*> [#uses=0] 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerinvcont8: ; preds = %entry 28*9880d681SAndroid Build Coastguard Worker %1 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) 29*9880d681SAndroid Build Coastguard Worker to label %bb26.preheader unwind label %lpad ; <i32> [#uses=0] 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerbb26.preheader: ; preds = %invcont8 32*9880d681SAndroid Build Coastguard Worker br label %invcont38 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerbb1.i100: ; preds = %invcont38 35*9880d681SAndroid Build Coastguard Worker %2 = add nsw i32 1, %__extracted.0 ; <i32> [#uses=3] 36*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb.i97, label %bb1.i 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerbb.i97: ; preds = %bb1.i100 39*9880d681SAndroid Build Coastguard Worker br label %invcont38 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerbb1.i: ; preds = %bb1.i100 42*9880d681SAndroid Build Coastguard Worker %3 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) 43*9880d681SAndroid Build Coastguard Worker to label %invcont38 unwind label %lpad ; <i32> [#uses=0] 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerinvcont24: ; preds = %invcont38 46*9880d681SAndroid Build Coastguard Worker %4 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) 47*9880d681SAndroid Build Coastguard Worker to label %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i unwind label %lpad ; <i32> [#uses=0] 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i: ; preds = %invcont24 50*9880d681SAndroid Build Coastguard Worker br i1 undef, label %invcont25, label %bb.i93 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workerbb.i93: ; preds = %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i 53*9880d681SAndroid Build Coastguard Worker %5 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) 54*9880d681SAndroid Build Coastguard Worker to label %invcont25 unwind label %lpad ; <i32> [#uses=0] 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerinvcont25: ; preds = %bb.i93, %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i 57*9880d681SAndroid Build Coastguard Worker br label %invcont38 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerinvcont38: ; preds = %invcont25, %bb1.i, %bb.i97, %bb26.preheader 60*9880d681SAndroid Build Coastguard Worker %__extracted.0 = phi i32 [ 0, %bb26.preheader ], [ undef, %invcont25 ], [ %2, %bb.i97 ], [ %2, %bb1.i ] ; <i32> [#uses=1] 61*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb1.i100, label %invcont24 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Workerlpad: ; preds = %bb.i93, %invcont24, %bb1.i, %invcont8 64*9880d681SAndroid Build Coastguard Worker %__extracted.1 = phi i32 [ 0, %invcont8 ], [ %2, %bb1.i ], [ undef, %bb.i93 ], [ undef, %invcont24 ] ; <i32> [#uses=0] 65*9880d681SAndroid Build Coastguard Worker %lpad1 = landingpad { i8*, i32 } 66*9880d681SAndroid Build Coastguard Worker catch i8* null 67*9880d681SAndroid Build Coastguard Worker %eh_ptr = extractvalue { i8*, i32 } %lpad1, 0 68*9880d681SAndroid Build Coastguard Worker %6 = call i8* @__cxa_begin_catch(i8* %eh_ptr) nounwind ; <i8*> [#uses=0] 69*9880d681SAndroid Build Coastguard Worker unreachable 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workerlpad74: ; preds = %entry 72*9880d681SAndroid Build Coastguard Worker %lpad2 = landingpad { i8*, i32 } 73*9880d681SAndroid Build Coastguard Worker cleanup 74*9880d681SAndroid Build Coastguard Worker unreachable 75*9880d681SAndroid Build Coastguard Worker} 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...) 78