257 lines · plain
1; RUN: opt -passes=mergefunc -disable-output < %s2; This used to crash.3 4target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"5target triple = "i386-pc-linux-gnu"6 7%"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }8%"struct.kc::impl_CexpressionDQ" = type { %"struct.kc::impl_Ccode_option", ptr, ptr }9%"struct.kc::impl_Ctext" = type { %"struct.kc::impl_Ccode_option", i32, ptr, ptr, ptr }10%"struct.kc::impl_Ctext_elem" = type { %"struct.kc::impl_abstract_phylum", i32, ptr }11%"struct.kc::impl_ID" = type { %"struct.kc::impl_abstract_phylum", ptr, ptr, i32, ptr }12%"struct.kc::impl_abstract_phylum" = type { ptr }13%"struct.kc::impl_ac_abstract_declarator_AcAbsdeclDirdecl" = type { %"struct.kc::impl_Ccode_option", ptr, ptr }14%"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", ptr }15%"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, ptr, ptr }16%"struct.kc::impl_fileline" = type { %"struct.kc::impl_abstract_phylum", ptr, i32 }17%"struct.kc::impl_fileline_FileLine" = type { %"struct.kc::impl_fileline" }18%"struct.kc::impl_outmostpatterns" = type { %"struct.kc::impl_Ccode_option", ptr, ptr }19%"struct.kc::impl_withcaseinfo_Withcaseinfo" = type { %"struct.kc::impl_Ccode_option", ptr, ptr, ptr }20 21@_ZTVN2kc13impl_filelineE = external constant [13 x ptr], align 3222@.str = external constant [1 x i8], align 123@_ZTVN2kc22impl_fileline_FileLineE = external constant [13 x ptr], align 3224 25define void @_ZN2kc22impl_fileline_FileLineC2EPNS_20impl_casestring__StrEi(ptr %this, ptr %_file, i32 %_line) align 2 personality ptr @__gxx_personality_v0 {26entry:27 %this_addr = alloca ptr, align 428 %_file_addr = alloca ptr, align 429 %_line_addr = alloca i32, align 430 %save_filt.150 = alloca i3231 %save_eptr.149 = alloca ptr32 %iftmp.99 = alloca ptr33 %eh_exception = alloca ptr34 %eh_selector = alloca i3235 %"alloca point" = bitcast i32 0 to i3236 store ptr %this, ptr %this_addr37 store ptr %_file, ptr %_file_addr38 store i32 %_line, ptr %_line_addr39 %0 = load ptr, ptr %this_addr, align 440 call void @_ZN2kc13impl_filelineC2Ev() nounwind41 %1 = load ptr, ptr %this_addr, align 442 store ptr getelementptr inbounds ([13 x ptr], ptr @_ZTVN2kc22impl_fileline_FileLineE, i32 0, i32 2), ptr %1, align 443 %2 = load ptr, ptr %_file_addr, align 444 %3 = icmp eq ptr %2, null45 br i1 %3, label %bb, label %bb146 47bb: ; preds = %entry48 %4 = invoke ptr @_ZN2kc12mkcasestringEPKci()49 to label %invcont unwind label %lpad50 51invcont: ; preds = %bb52 store ptr %4, ptr %iftmp.99, align 453 br label %bb254 55bb1: ; preds = %entry56 %5 = load ptr, ptr %_file_addr, align 457 store ptr %5, ptr %iftmp.99, align 458 br label %bb259 60bb2: ; preds = %bb1, %invcont61 %6 = load ptr, ptr %this_addr, align 462 %7 = getelementptr inbounds %"struct.kc::impl_fileline", ptr %6, i32 0, i32 163 %8 = load ptr, ptr %iftmp.99, align 464 store ptr %8, ptr %7, align 465 %9 = load ptr, ptr %this_addr, align 466 %10 = getelementptr inbounds %"struct.kc::impl_fileline", ptr %9, i32 0, i32 267 %11 = load i32, ptr %_line_addr, align 468 store i32 %11, ptr %10, align 469 ret void70 71lpad: ; preds = %bb72 %eh_ptr = landingpad { ptr, i32 }73 cleanup74 %exn = extractvalue { ptr, i32 } %eh_ptr, 075 store ptr %exn, ptr %eh_exception76 %eh_ptr4 = load ptr, ptr %eh_exception77 %eh_select5 = extractvalue { ptr, i32 } %eh_ptr, 178 store i32 %eh_select5, ptr %eh_selector79 %eh_select = load i32, ptr %eh_selector80 store i32 %eh_select, ptr %save_filt.150, align 481 %eh_value = load ptr, ptr %eh_exception82 store ptr %eh_value, ptr %save_eptr.149, align 483 %12 = load ptr, ptr %this_addr, align 484 call void @_ZN2kc13impl_filelineD2Ev(ptr %12) nounwind85 %13 = load ptr, ptr %save_eptr.149, align 486 store ptr %13, ptr %eh_exception, align 487 %14 = load i32, ptr %save_filt.150, align 488 store i32 %14, ptr %eh_selector, align 489 %eh_ptr6 = load ptr, ptr %eh_exception90 call void @_Unwind_Resume_or_Rethrow()91 unreachable92}93 94declare void @_ZN2kc13impl_filelineC2Ev() nounwind align 295 96define void @_ZN2kc13impl_filelineD1Ev(ptr %this) nounwind align 2 {97entry:98 %this_addr = alloca ptr, align 499 %"alloca point" = bitcast i32 0 to i32100 store ptr %this, ptr %this_addr101 %0 = load ptr, ptr %this_addr, align 4102 store ptr getelementptr inbounds ([13 x ptr], ptr @_ZTVN2kc13impl_filelineE, i32 0, i32 2), ptr %0, align 4103 %1 = trunc i32 0 to i8104 %toBool = icmp ne i8 %1, 0105 br i1 %toBool, label %bb1, label %return106 107bb1: ; preds = %entry108 %2 = load ptr, ptr %this_addr, align 4109 call void @_ZdlPv() nounwind110 br label %return111 112return: ; preds = %bb1, %entry113 ret void114}115 116declare void @_ZdlPv() nounwind117 118define void @_ZN2kc13impl_filelineD2Ev(ptr %this) nounwind align 2 {119entry:120 %this_addr = alloca ptr, align 4121 %"alloca point" = bitcast i32 0 to i32122 store ptr %this, ptr %this_addr123 %0 = load ptr, ptr %this_addr, align 4124 store ptr getelementptr inbounds ([13 x ptr], ptr @_ZTVN2kc13impl_filelineE, i32 0, i32 2), ptr %0, align 4125 %1 = trunc i32 0 to i8126 %toBool = icmp ne i8 %1, 0127 br i1 %toBool, label %bb1, label %return128 129bb1: ; preds = %entry130 %2 = load ptr, ptr %this_addr, align 4131 call void @_ZdlPv() nounwind132 br label %return133 134return: ; preds = %bb1, %entry135 ret void136}137 138define void @_ZN2kc22impl_fileline_FileLineC1EPNS_20impl_casestring__StrEi(ptr %this, ptr %_file, i32 %_line) align 2 personality ptr @__gxx_personality_v0 {139entry:140 %this_addr = alloca ptr, align 4141 %_file_addr = alloca ptr, align 4142 %_line_addr = alloca i32, align 4143 %save_filt.148 = alloca i32144 %save_eptr.147 = alloca ptr145 %iftmp.99 = alloca ptr146 %eh_exception = alloca ptr147 %eh_selector = alloca i32148 %"alloca point" = bitcast i32 0 to i32149 store ptr %this, ptr %this_addr150 store ptr %_file, ptr %_file_addr151 store i32 %_line, ptr %_line_addr152 %0 = load ptr, ptr %this_addr, align 4153 call void @_ZN2kc13impl_filelineC2Ev() nounwind154 %1 = load ptr, ptr %this_addr, align 4155 store ptr getelementptr inbounds ([13 x ptr], ptr @_ZTVN2kc22impl_fileline_FileLineE, i32 0, i32 2), ptr %1, align 4156 %2 = load ptr, ptr %_file_addr, align 4157 %3 = icmp eq ptr %2, null158 br i1 %3, label %bb, label %bb1159 160bb: ; preds = %entry161 %4 = invoke ptr @_ZN2kc12mkcasestringEPKci()162 to label %invcont unwind label %lpad163 164invcont: ; preds = %bb165 store ptr %4, ptr %iftmp.99, align 4166 br label %bb2167 168bb1: ; preds = %entry169 %5 = load ptr, ptr %_file_addr, align 4170 store ptr %5, ptr %iftmp.99, align 4171 br label %bb2172 173bb2: ; preds = %bb1, %invcont174 %6 = load ptr, ptr %this_addr, align 4175 %7 = getelementptr inbounds %"struct.kc::impl_fileline", ptr %6, i32 0, i32 1176 %8 = load ptr, ptr %iftmp.99, align 4177 store ptr %8, ptr %7, align 4178 %9 = load ptr, ptr %this_addr, align 4179 %10 = getelementptr inbounds %"struct.kc::impl_fileline", ptr %9, i32 0, i32 2180 %11 = load i32, ptr %_line_addr, align 4181 store i32 %11, ptr %10, align 4182 ret void183 184lpad: ; preds = %bb185 %eh_ptr = landingpad { ptr, i32 }186 cleanup187 %exn = extractvalue { ptr, i32 } %eh_ptr, 0188 store ptr %exn, ptr %eh_exception189 %eh_ptr4 = load ptr, ptr %eh_exception190 %eh_select5 = extractvalue { ptr, i32 } %eh_ptr, 1191 store i32 %eh_select5, ptr %eh_selector192 %eh_select = load i32, ptr %eh_selector193 store i32 %eh_select, ptr %save_filt.148, align 4194 %eh_value = load ptr, ptr %eh_exception195 store ptr %eh_value, ptr %save_eptr.147, align 4196 %12 = load ptr, ptr %this_addr, align 4197 call void @_ZN2kc13impl_filelineD2Ev(ptr %12) nounwind198 %13 = load ptr, ptr %save_eptr.147, align 4199 store ptr %13, ptr %eh_exception, align 4200 %14 = load i32, ptr %save_filt.148, align 4201 store i32 %14, ptr %eh_selector, align 4202 %eh_ptr6 = load ptr, ptr %eh_exception203 call void @_Unwind_Resume_or_Rethrow()204 unreachable205}206 207declare i32 @__gxx_personality_v0(...)208 209declare void @_Unwind_Resume_or_Rethrow()210 211define void @_ZN2kc21printer_functor_classC2Ev(ptr %this) nounwind align 2 {212entry:213 unreachable214}215 216define ptr @_ZN2kc11phylum_castIPNS_17impl_withcaseinfoES1_EET_PT0_(ptr %t) nounwind {217entry:218 ret ptr null219}220 221define ptr @_ZNK2kc43impl_ac_direct_declarator_AcDirectDeclProto9subphylumEi(ptr %this, i32 %no) nounwind align 2 {222entry:223 ret ptr undef224}225 226define void @_ZN2kc30impl_withcaseinfo_WithcaseinfoD0Ev(ptr %this) nounwind align 2 {227entry:228 unreachable229}230 231define void @_ZN2kc30impl_withcaseinfo_WithcaseinfoC1EPNS_26impl_patternrepresentationES2_PNS_10impl_CtextE(ptr %this, ptr %_patternrepresentation_1, ptr %_patternrepresentation_2, ptr %_Ctext_1) nounwind align 2 {232entry:233 unreachable234}235 236define void @_ZN2kc21impl_rewriteviewsinfoC2EPNS_20impl_rewriteviewinfoEPS0_(ptr %this, ptr %p1, ptr %p2) nounwind align 2 {237entry:238 unreachable239}240 241define ptr @_ZN2kc11phylum_castIPNS_9impl_termENS_20impl_abstract_phylumEEET_PT0_(ptr %t) nounwind {242entry:243 unreachable244}245 246define void @_ZN2kc27impl_ac_parameter_type_listD2Ev(ptr %this) nounwind align 2 {247entry:248 ret void249}250 251define void @_ZN2kc21impl_ac_operator_nameD2Ev(ptr %this) nounwind align 2 {252entry:253 ret void254}255 256declare ptr @_ZN2kc12mkcasestringEPKci()257