1 ; RUN: opt < %s -inline -prune-eh -disable-output 2 ; PR993 3 target datalayout = "e-p:32:32" 4 target triple = "i386-unknown-openbsd3.9" 5 deplibs = [ "stdc++", "c", "crtend" ] 6 %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* } 7 %"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** } 8 %struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } 9 %struct.__sbuf = type { i8*, i32 } 10 %"struct.std::__basic_file<char>" = type { %struct.__sFILE*, i1 } 11 %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" } 12 %"struct.std::bad_alloc" = type { %"struct.__gnu_cxx::char_producer<char>" } 13 %"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, %union.__mbstate_t, %union.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* } 14 %"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>"* } 15 %"struct.std::basic_iostream<char,std::char_traits<char> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<char,std::char_traits<char> >" } 16 %"struct.std::basic_ofstream<char,std::char_traits<char> >" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" } 17 %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" } 18 %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" } 19 %"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> > >" } 20 %"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" } 21 %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 } 22 %"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32* } 23 %"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32*, i1, i32*, i32*, i32* } 24 %"struct.std::domain_error" = type { %"struct.std::logic_error" } 25 %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %struct.__sbuf, [8 x %struct.__sbuf], i32, %struct.__sbuf*, %"struct.std::locale" } 26 %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } 27 %"struct.std::ios_base::_Words" = type { i8*, i32 } 28 %"struct.std::locale" = type { %"struct.std::locale::_Impl"* } 29 %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } 30 %"struct.std::locale::facet" = type { i32 (...)**, i32 } 31 %"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" } 32 %union.__mbstate_t = type { i64, [120 x i8] } 33 @.str_1 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] 34 @.str_9 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] 35 36 define void @main() { 37 entry: 38 call fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode( ) 39 ret void 40 } 41 42 define fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode() { 43 entry: 44 %tmp.6 = icmp eq %"struct.std::basic_filebuf<char,std::char_traits<char> >"* null, null ; <i1> [#uses=1] 45 br i1 %tmp.6, label %then, label %UnifiedReturnBlock 46 47 then: ; preds = %entry 48 tail call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( ) 49 ret void 50 51 UnifiedReturnBlock: ; preds = %entry 52 ret void 53 } 54 55 define fastcc void @_ZN10__cxxabiv111__terminateEPFvvE() { 56 entry: 57 unreachable 58 } 59 60 define void @_ZNSdD0Ev() { 61 entry: 62 unreachable 63 } 64 65 define void @_ZThn8_NSdD1Ev() { 66 entry: 67 ret void 68 } 69 70 define void @_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev() { 71 entry: 72 ret void 73 } 74 75 define void @_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi() { 76 entry: 77 unreachable 78 } 79 80 define fastcc void @_ZNSoD2Ev() { 81 entry: 82 unreachable 83 } 84 85 define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev() { 86 entry: 87 unreachable 88 } 89 90 define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() { 91 entry: 92 tail call fastcc void @_ZSt19__throw_ios_failurePKc( ) 93 ret void 94 } 95 96 declare fastcc void @_ZNSaIcED1Ev() 97 98 define fastcc void @_ZNSsC1EPKcRKSaIcE() { 99 entry: 100 tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( ) 101 unreachable 102 } 103 104 define fastcc void @_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii() { 105 entry: 106 ret void 107 } 108 109 define fastcc void @_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() { 110 entry: 111 ret void 112 } 113 114 define fastcc void @_ZSt19__throw_ios_failurePKc() { 115 entry: 116 call fastcc void @_ZNSsC1EPKcRKSaIcE( ) 117 unwind 118 } 119 120 define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() { 121 entry: 122 ret void 123 } 124 125 define void @_ZNSt9bad_allocD1Ev() { 126 entry: 127 unreachable 128 } 129 130 define fastcc void @_ZSt19__throw_logic_errorPKc() { 131 entry: 132 invoke fastcc void @_ZNSt11logic_errorC1ERKSs( ) 133 to label %try_exit.0 unwind label %try_catch.0 134 135 try_catch.0: ; preds = %entry 136 unreachable 137 138 try_exit.0: ; preds = %entry 139 unwind 140 } 141 142 define fastcc void @_ZNSt11logic_errorC1ERKSs() { 143 entry: 144 call fastcc void @_ZNSsC1ERKSs( ) 145 ret void 146 } 147 148 define void @_ZNSt12domain_errorD1Ev() { 149 entry: 150 unreachable 151 } 152 153 define fastcc void @_ZSt20__throw_length_errorPKc() { 154 entry: 155 call fastcc void @_ZNSt12length_errorC1ERKSs( ) 156 unwind 157 } 158 159 define fastcc void @_ZNSt12length_errorC1ERKSs() { 160 entry: 161 invoke fastcc void @_ZNSsC1ERKSs( ) 162 to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i 163 164 invoke_catch.i: ; preds = %entry 165 unwind 166 167 _ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry 168 ret void 169 } 170 171 define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() { 172 entry: 173 call fastcc void @_ZSt20__throw_length_errorPKc( ) 174 unreachable 175 } 176 177 define fastcc void @_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag() { 178 entry: 179 unreachable 180 } 181 182 define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { 183 entry: 184 br i1 false, label %then.1.i, label %endif.1.i 185 186 then.1.i: ; preds = %entry 187 call fastcc void @_ZSt19__throw_logic_errorPKc( ) 188 br label %endif.1.i 189 190 endif.1.i: ; preds = %then.1.i, %entry 191 call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) 192 unreachable 193 } 194 195 define fastcc void @_ZNSsC1ERKSs() { 196 entry: 197 call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( ) 198 invoke fastcc void @_ZNSaIcEC1ERKS_( ) 199 to label %invoke_cont.1 unwind label %invoke_catch.1 200 201 invoke_catch.1: ; preds = %entry 202 call fastcc void @_ZNSaIcED1Ev( ) 203 unwind 204 205 invoke_cont.1: ; preds = %entry 206 call fastcc void @_ZNSaIcEC2ERKS_( ) 207 ret void 208 } 209 210 define fastcc void @_ZNSaIcEC1ERKS_() { 211 entry: 212 ret void 213 } 214 215 define fastcc void @_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc() { 216 entry: 217 ret void 218 } 219 220 define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() { 221 entry: 222 br i1 false, label %else.i, label %cond_true 223 224 cond_true: ; preds = %entry 225 ret void 226 227 else.i: ; preds = %entry 228 tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) 229 unreachable 230 } 231 232 define fastcc void @_ZNSaIcEC2ERKS_() { 233 entry: 234 ret void 235 } 236 237 define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE8allocateEj() { 238 entry: 239 ret void 240 } 241 242 define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE9_S_refillEj() { 243 entry: 244 unreachable 245 } 246