Home | History | Annotate | Download | only in Inline
      1 ; RUN: opt < %s -inline -prune-eh -disable-output
      2 ; PR992
      3 target datalayout = "e-p:32:32"
      4 target triple = "i686-pc-linux-gnu"
      5 deplibs = [ "stdc++", "c", "crtend" ]
      6 	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
      7 	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
      8 	%"struct.__cxxabiv1::__array_type_info" = type { %"struct.std::type_info" }
      9 	%"struct.__cxxabiv1::__si_class_type_info" = type { %"struct.__cxxabiv1::__array_type_info", %"struct.__cxxabiv1::__array_type_info"* }
     10 	%"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" = type { i32 }
     11 	%"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* }
     12 	%"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" = type { i32* }
     13 	%"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** }
     14 	%"struct.__gnu_cxx::stdio_sync_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", %struct._IO_FILE*, i32 }
     15 	%"struct.__gnu_cxx::stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", %struct._IO_FILE*, i32 }
     16 	%struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
     17 	%struct.__mbstate_t = type { i32, %"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" }
     18 	%struct.locale_data = type opaque
     19 	%"struct.std::__basic_file<char>" = type { %struct._IO_FILE*, i1 }
     20 	%"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" }
     21 	%"struct.std::basic_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* }
     22 	%"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i32*, i32, i1, i1, i1, i1, i32, i32*, i32*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* }
     23 	%"struct.std::basic_fstream<char,std::char_traits<char> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" }
     24 	%"struct.std::basic_fstream<wchar_t,std::char_traits<wchar_t> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
     25 	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i1, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
     26 	%"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >"*, i32, i1, %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, %"struct.std::codecvt<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
     27 	%"struct.std::basic_iostream<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
     28 	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
     29 	%"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
     30 	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
     31 	%"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, i32*, i32*, i32*, i32*, i32*, i32*, %"struct.std::locale" }
     32 	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" }
     33 	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" }
     34 	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 }
     35 	%"struct.std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >" = type { %"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" }
     36 	%"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct* }
     37 	%"struct.std::collate<char>" = type { %"struct.std::locale::facet", %struct.__locale_struct* }
     38 	%"struct.std::collate_byname<char>" = type { %"struct.std::collate<char>" }
     39 	%"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct*, i1, i32*, i32*, i16* }
     40 	%"struct.std::ctype_byname<char>" = type { %"struct.std::ctype<char>" }
     41 	%"struct.std::domain_error" = type { %"struct.std::logic_error" }
     42 	%"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" }
     43 	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
     44 	%"struct.std::ios_base::_Words" = type { i8*, i32 }
     45 	%"struct.std::istreambuf_iterator<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, i32 }
     46 	%"struct.std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, i32 }
     47 	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
     48 	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
     49 	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
     50 	%"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
     51 	%"struct.std::type_info" = type { i32 (...)**, i8* }
     52 @.str_11 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
     53 @.str_9 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
     54 @.str_1 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
     55 
     56 define void @main() {
     57 entry:
     58 	tail call fastcc void @_ZNSolsEi( )
     59 	ret void
     60 }
     61 
     62 define fastcc void @_ZNSolsEi() {
     63 entry:
     64 	%tmp.22 = icmp eq i32 0, 0		; <i1> [#uses=1]
     65 	br i1 %tmp.22, label %else, label %then
     66 
     67 then:		; preds = %entry
     68 	ret void
     69 
     70 else:		; preds = %entry
     71 	tail call fastcc void @_ZNSolsEl( )
     72 	ret void
     73 }
     74 
     75 define void @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_() {
     76 entry:
     77 	ret void
     78 }
     79 
     80 define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() {
     81 entry:
     82 	tail call fastcc void @_ZSt19__throw_ios_failurePKc( )
     83 	ret void
     84 }
     85 
     86 define fastcc void @_ZNSo3putEc() {
     87 entry:
     88 	ret void
     89 }
     90 
     91 define fastcc void @_ZNSolsEl() {
     92 entry:
     93 	%tmp.21.i = icmp eq %"struct.std::basic_ostream<char,std::char_traits<char> >"* null, null		; <i1> [#uses=1]
     94 	br i1 %tmp.21.i, label %endif.0.i, label %shortcirc_next.i
     95 
     96 shortcirc_next.i:		; preds = %entry
     97 	ret void
     98 
     99 endif.0.i:		; preds = %entry
    100 	call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( )
    101 	ret void
    102 }
    103 
    104 define fastcc void @_ZSt19__throw_ios_failurePKc() {
    105 entry:
    106 	call fastcc void @_ZNSsC1EPKcRKSaIcE( )
    107 	ret void
    108 }
    109 
    110 define fastcc void @_ZNSt8ios_baseD2Ev() {
    111 entry:
    112 	unreachable
    113 }
    114 
    115 define void @_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv() {
    116 entry:
    117 	unreachable
    118 }
    119 
    120 define void @_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev() {
    121 entry:
    122 	unreachable
    123 }
    124 
    125 define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci() {
    126 entry:
    127 	ret void
    128 }
    129 
    130 define fastcc void @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale() {
    131 entry:
    132 	ret void
    133 }
    134 
    135 declare fastcc void @_ZNSaIcED1Ev()
    136 
    137 define fastcc void @_ZSt19__throw_logic_errorPKc() {
    138 entry:
    139 	call fastcc void @_ZNSt11logic_errorC1ERKSs( )
    140 	ret void
    141 }
    142 
    143 define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() {
    144 entry:
    145 	br i1 false, label %then.0, label %endif.0
    146 
    147 then.0:		; preds = %entry
    148 	call fastcc void @_ZSt20__throw_length_errorPKc( )
    149 	ret void
    150 
    151 endif.0:		; preds = %entry
    152 	ret void
    153 }
    154 
    155 define fastcc void @_ZSt20__throw_length_errorPKc() {
    156 entry:
    157 	call fastcc void @_ZNSt12length_errorC1ERKSs( )
    158 	ret void
    159 }
    160 
    161 define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
    162 entry:
    163 	br i1 false, label %then.1.i, label %endif.1.i
    164 
    165 then.1.i:		; preds = %entry
    166 	call fastcc void @_ZSt19__throw_logic_errorPKc( )
    167 	ret void
    168 
    169 endif.1.i:		; preds = %entry
    170 	call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
    171 	unreachable
    172 }
    173 
    174 define fastcc void @_ZNSsC1ERKSs() {
    175 entry:
    176 	call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( )
    177 	invoke fastcc void @_ZNSaIcEC1ERKS_( )
    178 			to label %invoke_cont.1 unwind label %invoke_catch.1
    179 
    180 invoke_catch.1:		; preds = %entry
    181         %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
    182                  catch i8* null
    183 	call fastcc void @_ZNSaIcED1Ev( )
    184 	resume { i8*, i32 } %exn
    185 
    186 invoke_cont.1:		; preds = %entry
    187 	call fastcc void @_ZNSaIcEC2ERKS_( )
    188 	ret void
    189 }
    190 
    191 define fastcc void @_ZNSs7reserveEj() {
    192 entry:
    193 	ret void
    194 }
    195 
    196 define fastcc void @_ZNSaIcEC1ERKS_() {
    197 entry:
    198 	ret void
    199 }
    200 
    201 define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() {
    202 entry:
    203 	br i1 false, label %else.i, label %cond_true
    204 
    205 cond_true:		; preds = %entry
    206 	ret void
    207 
    208 else.i:		; preds = %entry
    209 	tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
    210 	ret void
    211 }
    212 
    213 define fastcc void @_ZNSsC1EPKcRKSaIcE() {
    214 entry:
    215 	tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( )
    216 	unreachable
    217 }
    218 
    219 define fastcc void @_ZNSaIcEC2ERKS_() {
    220 entry:
    221 	ret void
    222 }
    223 
    224 define void @_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev() {
    225 entry:
    226 	unreachable
    227 }
    228 
    229 define void @_ZNSt14collate_bynameIcED1Ev() {
    230 entry:
    231 	unreachable
    232 }
    233 
    234 define void @_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy() {
    235 entry:
    236 	ret void
    237 }
    238 
    239 define void @_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED1Ev() {
    240 entry:
    241 	unreachable
    242 }
    243 
    244 define void @_ZNSt12ctype_bynameIcED0Ev() {
    245 entry:
    246 	unreachable
    247 }
    248 
    249 define fastcc void @_ZNSt8messagesIwEC1Ej() {
    250 entry:
    251 	ret void
    252 }
    253 
    254 define fastcc void @_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi() {
    255 entry:
    256 	ret void
    257 }
    258 
    259 define fastcc void @_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej() {
    260 entry:
    261 	ret void
    262 }
    263 
    264 define fastcc void @_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() {
    265 entry:
    266 	ret void
    267 }
    268 
    269 define fastcc void @_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs() {
    270 entry:
    271 	unreachable
    272 }
    273 
    274 define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_() {
    275 entry:
    276 	ret void
    277 }
    278 
    279 define void @_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev() {
    280 entry:
    281 	unreachable
    282 }
    283 
    284 define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv() {
    285 entry:
    286 	ret void
    287 }
    288 
    289 define void @_ZNSt9exceptionD0Ev() {
    290 entry:
    291 	unreachable
    292 }
    293 
    294 define fastcc void @_ZNSt11logic_errorC1ERKSs() {
    295 entry:
    296 	call fastcc void @_ZNSsC1ERKSs( )
    297 	ret void
    298 }
    299 
    300 define fastcc void @_ZNSt11logic_errorD2Ev() {
    301 entry:
    302 	unreachable
    303 }
    304 
    305 define fastcc void @_ZNSt12length_errorC1ERKSs() {
    306 entry:
    307 	invoke fastcc void @_ZNSsC1ERKSs( )
    308 			to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
    309 
    310 invoke_catch.i:		; preds = %entry
    311         %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
    312                  catch i8* null
    313 	resume { i8*, i32 } %exn
    314 
    315 _ZNSt11logic_errorC2ERKSs.exit:		; preds = %entry
    316 	ret void
    317 }
    318 
    319 define void @_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_() {
    320 entry:
    321 	ret void
    322 }
    323 
    324 define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE16_S_construct_auxIPKwEEPwT_S7_RKS1_12__false_type() {
    325 entry:
    326 	ret void
    327 }
    328 
    329 define void @_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev() {
    330 entry:
    331 	ret void
    332 }
    333 
    334 define void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev() {
    335 entry:
    336 	unreachable
    337 }
    338 
    339 define fastcc void @_ZNSt5ctypeIcEC1EPKtbj() {
    340 entry:
    341 	ret void
    342 }
    343 
    344 declare i32 @__gxx_personality_v0(...)
    345