Lang Hames | 0d6dd49 | 2009-11-16 20:03:13 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s |
| 2 | ; PR5495 |
Lang Hames | 0d6dd49 | 2009-11-16 20:03:13 +0000 | [diff] [blame] | 3 | |
| 4 | %"struct.std::__ctype_abstract_base<wchar_t>" = type { %"struct.std::locale::facet" } |
| 5 | %"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 | %"struct.std::basic_istream<char,std::char_traits<char> >" = type { i32 (...)**, i32, %"struct.std::basic_ios<char,std::char_traits<char> >" } |
| 7 | %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" } |
| 8 | %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" } |
| 9 | %"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 } |
| 10 | %"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 | %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } |
| 12 | %"struct.std::ios_base::_Words" = type { i8*, i32 } |
| 13 | %"struct.std::locale" = type { %"struct.std::locale::_Impl"* } |
| 14 | %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } |
| 15 | %"struct.std::locale::facet" = type { i32 (...)**, i32 } |
| 16 | %union..0._15 = type { i32 } |
| 17 | |
| 18 | declare i8* @llvm.eh.exception() nounwind readonly |
| 19 | |
| 20 | declare i8* @__cxa_begin_catch(i8*) nounwind |
| 21 | |
| 22 | declare %"struct.std::ctype<char>"* @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale(%"struct.std::locale"*) |
| 23 | |
| 24 | define %"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) { |
| 25 | entry: |
| 26 | %0 = invoke %"struct.std::ctype<char>"* @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale(%"struct.std::locale"* undef) |
| 27 | to label %invcont8 unwind label %lpad74 ; <%"struct.std::ctype<char>"*> [#uses=0] |
| 28 | |
| 29 | invcont8: ; preds = %entry |
| 30 | %1 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) |
| 31 | to label %bb26.preheader unwind label %lpad ; <i32> [#uses=0] |
| 32 | |
| 33 | bb26.preheader: ; preds = %invcont8 |
| 34 | br label %invcont38 |
| 35 | |
| 36 | bb1.i100: ; preds = %invcont38 |
| 37 | %2 = add nsw i32 1, %__extracted.0 ; <i32> [#uses=3] |
| 38 | br i1 undef, label %bb.i97, label %bb1.i |
| 39 | |
| 40 | bb.i97: ; preds = %bb1.i100 |
| 41 | br label %invcont38 |
| 42 | |
| 43 | bb1.i: ; preds = %bb1.i100 |
| 44 | %3 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) |
| 45 | to label %invcont38 unwind label %lpad ; <i32> [#uses=0] |
| 46 | |
| 47 | invcont24: ; preds = %invcont38 |
| 48 | %4 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) |
| 49 | to label %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i unwind label %lpad ; <i32> [#uses=0] |
| 50 | |
| 51 | _ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i: ; preds = %invcont24 |
| 52 | br i1 undef, label %invcont25, label %bb.i93 |
| 53 | |
| 54 | bb.i93: ; preds = %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i |
| 55 | %5 = invoke i32 undef(%"struct.std::basic_streambuf<char,std::char_traits<char> >"* undef) |
| 56 | to label %invcont25 unwind label %lpad ; <i32> [#uses=0] |
| 57 | |
| 58 | invcont25: ; preds = %bb.i93, %_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv.exit.i |
| 59 | br label %invcont38 |
| 60 | |
| 61 | invcont38: ; preds = %invcont25, %bb1.i, %bb.i97, %bb26.preheader |
| 62 | %__extracted.0 = phi i32 [ 0, %bb26.preheader ], [ undef, %invcont25 ], [ %2, %bb.i97 ], [ %2, %bb1.i ] ; <i32> [#uses=1] |
| 63 | br i1 false, label %bb1.i100, label %invcont24 |
| 64 | |
| 65 | lpad: ; preds = %bb.i93, %invcont24, %bb1.i, %invcont8 |
| 66 | %__extracted.1 = phi i32 [ 0, %invcont8 ], [ %2, %bb1.i ], [ undef, %bb.i93 ], [ undef, %invcont24 ] ; <i32> [#uses=0] |
| 67 | %eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=1] |
| 68 | %6 = call i8* @__cxa_begin_catch(i8* %eh_ptr) nounwind ; <i8*> [#uses=0] |
| 69 | unreachable |
| 70 | |
| 71 | lpad74: ; preds = %entry |
| 72 | unreachable |
| 73 | } |