; RUN: opt -objc-arc -S < %s ; rdar://12277446 ; rdar://12480535 ; rdar://14590914 ; rdar://15377890 ; The total number of paths grows exponentially with the number of branches, and a ; computation of this number can overflow any reasonable fixed-sized ; integer. This can occur in both the addition phase when we are adding up the ; total bottomup/topdown paths and when we multiply them together at the end. target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32" target triple = "thumbv7-apple-ios5.0.0" %struct.NSConstantString = type { i32*, i32, i8*, i32 } %struct.CGPoint = type { float, float } @_unnamed_cfstring = external constant %struct.NSConstantString, section "__DATA,__cfstring" @_unnamed_cfstring_2 = external constant %struct.NSConstantString, section "__DATA,__cfstring" declare i8* @llvm.objc.retain(i8*) nonlazybind declare i8* @llvm.objc.retainAutoreleasedReturnValue(i8*) nonlazybind declare void @llvm.objc.release(i8*) nonlazybind declare i8* @returner() declare i8* @objc_msgSend(i8*, i8*, ...) nonlazybind declare void @NSLog(i8*, ...) declare void @objc_msgSend_stret(i8*, i8*, ...) declare i32 @__gxx_personality_sj0(...) declare i32 @__objc_personality_v0(...) define hidden void @test1() personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) { entry: br i1 undef, label %msgSend.nullinit, label %msgSend.call msgSend.call: ; preds = %entry br label %msgSend.cont msgSend.nullinit: ; preds = %entry br label %msgSend.cont msgSend.cont: ; preds = %msgSend.nullinit, %msgSend.call %0 = bitcast %struct.NSConstantString* @_unnamed_cfstring to i8* %1 = call i8* @llvm.objc.retain(i8* %0) nounwind br i1 undef, label %msgSend.nullinit33, label %msgSend.call32 msgSend.call32: ; preds = %if.end10 br label %msgSend.cont34 msgSend.nullinit33: ; preds = %if.end10 br label %msgSend.cont34 msgSend.cont34: ; preds = %msgSend.nullinit33, %msgSend.call32 br i1 undef, label %msgSend.nullinit38, label %msgSend.call37 msgSend.call37: ; preds = %msgSend.cont34 br label %msgSend.cont39 msgSend.nullinit38: ; preds = %msgSend.cont34 br label %msgSend.cont39 msgSend.cont39: ; preds = %msgSend.nullinit38, %msgSend.call37 br i1 undef, label %msgSend.nullinit49, label %msgSend.call48 msgSend.call48: ; preds = %msgSend.cont39 br label %msgSend.cont50 msgSend.nullinit49: ; preds = %msgSend.cont39 br label %msgSend.cont50 msgSend.cont50: ; preds = %msgSend.nullinit49, %msgSend.call48 br i1 undef, label %msgSend.nullinit61, label %msgSend.call60 msgSend.call60: ; preds = %msgSend.cont50 br label %msgSend.cont62 msgSend.nullinit61: ; preds = %msgSend.cont50 br label %msgSend.cont62 msgSend.cont62: ; preds = %msgSend.nullinit61, %msgSend.call60 br i1 undef, label %msgSend.nullinit67, label %msgSend.call66 msgSend.call66: ; preds = %msgSend.cont62 br label %msgSend.cont68 msgSend.nullinit67: ; preds = %msgSend.cont62 br label %msgSend.cont68 msgSend.cont68: ; preds = %msgSend.nullinit67, %msgSend.call66 br i1 undef, label %msgSend.nullinit84, label %msgSend.call83 msgSend.call83: ; preds = %msgSend.cont68 br label %msgSend.cont85 msgSend.nullinit84: ; preds = %msgSend.cont68 br label %msgSend.cont85 msgSend.cont85: ; preds = %msgSend.nullinit84, %msgSend.call83 br i1 undef, label %msgSend.nullinit90, label %msgSend.call89 msgSend.call89: ; preds = %msgSend.cont85 br label %msgSend.cont91 msgSend.nullinit90: ; preds = %msgSend.cont85 br label %msgSend.cont91 msgSend.cont91: ; preds = %msgSend.nullinit90, %msgSend.call89 br i1 undef, label %msgSend.nullinit104, label %msgSend.call103 msgSend.call103: ; preds = %msgSend.cont91 br label %msgSend.cont105 msgSend.nullinit104: ; preds = %msgSend.cont91 br label %msgSend.cont105 msgSend.cont105: ; preds = %msgSend.nullinit104, %msgSend.call103 br i1 undef, label %land.lhs.true, label %if.end123 land.lhs.true: ; preds = %msgSend.cont105 br i1 undef, label %if.then117, label %if.end123 if.then117: ; preds = %land.lhs.true br label %if.end123 if.end123: ; preds = %if.then117, %land.lhs.true, %msgSend.cont105 br i1 undef, label %msgSend.nullinit132, label %msgSend.call131 msgSend.call131: ; preds = %if.end123 br label %msgSend.cont133 msgSend.nullinit132: ; preds = %if.end123 br label %msgSend.cont133 msgSend.cont133: ; preds = %msgSend.nullinit132, %msgSend.call131 br i1 undef, label %msgSend.nullinit139, label %msgSend.call138 msgSend.call138: ; preds = %msgSend.cont133 br label %msgSend.cont140 msgSend.nullinit139: ; preds = %msgSend.cont133 br label %msgSend.cont140 msgSend.cont140: ; preds = %msgSend.nullinit139, %msgSend.call138 br i1 undef, label %if.then151, label %if.end157 if.then151: ; preds = %msgSend.cont140 br label %if.end157 if.end157: ; preds = %if.then151, %msgSend.cont140 br i1 undef, label %msgSend.nullinit164, label %msgSend.call163 msgSend.call163: ; preds = %if.end157 br label %msgSend.cont165 msgSend.nullinit164: ; preds = %if.end157 br label %msgSend.cont165 msgSend.cont165: ; preds = %msgSend.nullinit164, %msgSend.call163 br i1 undef, label %msgSend.nullinit176, label %msgSend.call175 msgSend.call175: ; preds = %msgSend.cont165 br label %msgSend.cont177 msgSend.nullinit176: ; preds = %msgSend.cont165 br label %msgSend.cont177 msgSend.cont177: ; preds = %msgSend.nullinit176, %msgSend.call175 br i1 undef, label %land.lhs.true181, label %if.end202 land.lhs.true181: ; preds = %msgSend.cont177 br i1 undef, label %if.then187, label %if.end202 if.then187: ; preds = %land.lhs.true181 br i1 undef, label %msgSend.nullinit199, label %msgSend.call198 msgSend.call198: ; preds = %if.then187 br label %msgSend.cont200 msgSend.nullinit199: ; preds = %if.then187 br label %msgSend.cont200 msgSend.cont200: ; preds = %msgSend.nullinit199, %msgSend.call198 br label %if.end202 if.end202: ; preds = %msgSend.cont200, %land.lhs.true181, %msgSend.cont177 br i1 undef, label %msgSend.nullinit236, label %msgSend.call235 msgSend.call235: ; preds = %if.end202 br label %msgSend.cont237 msgSend.nullinit236: ; preds = %if.end202 br label %msgSend.cont237 msgSend.cont237: ; preds = %msgSend.nullinit236, %msgSend.call235 br i1 undef, label %msgSend.nullinit254, label %msgSend.call253 msgSend.call253: ; preds = %msgSend.cont237 br label %msgSend.cont255 msgSend.nullinit254: ; preds = %msgSend.cont237 br label %msgSend.cont255 msgSend.cont255: ; preds = %msgSend.nullinit254, %msgSend.call253 br i1 undef, label %msgSend.nullinit269, label %msgSend.call268 msgSend.call268: ; preds = %msgSend.cont255 br label %msgSend.cont270 msgSend.nullinit269: ; preds = %msgSend.cont255 br label %msgSend.cont270 msgSend.cont270: ; preds = %msgSend.nullinit269, %msgSend.call268 br i1 undef, label %msgSend.nullinit281, label %msgSend.call280 msgSend.call280: ; preds = %msgSend.cont270 br label %msgSend.cont282 msgSend.nullinit281: ; preds = %msgSend.cont270 br label %msgSend.cont282 msgSend.cont282: ; preds = %msgSend.nullinit281, %msgSend.call280 br i1 undef, label %msgSend.nullinit287, label %msgSend.call286 msgSend.call286: ; preds = %msgSend.cont282 br label %msgSend.cont288 msgSend.nullinit287: ; preds = %msgSend.cont282 br label %msgSend.cont288 msgSend.cont288: ; preds = %msgSend.nullinit287, %msgSend.call286 br i1 undef, label %msgSend.nullinit303, label %msgSend.call302 msgSend.call302: ; preds = %msgSend.cont288 br label %msgSend.cont304 msgSend.nullinit303: ; preds = %msgSend.cont288 br label %msgSend.cont304 msgSend.cont304: ; preds = %msgSend.nullinit303, %msgSend.call302 br i1 undef, label %msgSend.nullinit344, label %msgSend.call343 msgSend.call343: ; preds = %msgSend.cont304 br label %msgSend.cont345 msgSend.nullinit344: ; preds = %msgSend.cont304 br label %msgSend.cont345 msgSend.cont345: ; preds = %msgSend.nullinit344, %msgSend.call343 br i1 undef, label %msgSend.nullinit350, label %msgSend.call349 msgSend.call349: ; preds = %msgSend.cont345 br label %msgSend.cont351 msgSend.nullinit350: ; preds = %msgSend.cont345 br label %msgSend.cont351 msgSend.cont351: ; preds = %msgSend.nullinit350, %msgSend.call349 br i1 undef, label %msgSend.nullinit366, label %msgSend.call365 msgSend.call365: ; preds = %msgSend.cont351 br label %msgSend.cont367 msgSend.nullinit366: ; preds = %msgSend.cont351 br label %msgSend.cont367 msgSend.cont367: ; preds = %msgSend.nullinit366, %msgSend.call365 br i1 undef, label %msgSend.nullinit376, label %msgSend.call375 msgSend.call375: ; preds = %msgSend.cont367 br label %msgSend.cont377 msgSend.nullinit376: ; preds = %msgSend.cont367 br label %msgSend.cont377 msgSend.cont377: ; preds = %msgSend.nullinit376, %msgSend.call375 br i1 undef, label %if.then384, label %if.else401 if.then384: ; preds = %msgSend.cont377 br i1 undef, label %msgSend.nullinit392, label %msgSend.call391 msgSend.call391: ; preds = %if.then384 br label %msgSend.cont393 msgSend.nullinit392: ; preds = %if.then384 br label %msgSend.cont393 msgSend.cont393: ; preds = %msgSend.nullinit392, %msgSend.call391 br label %if.end418 if.else401: ; preds = %msgSend.cont377 br i1 undef, label %msgSend.nullinit409, label %msgSend.call408 msgSend.call408: ; preds = %if.else401 br label %msgSend.cont410 msgSend.nullinit409: ; preds = %if.else401 br label %msgSend.cont410 msgSend.cont410: ; preds = %msgSend.nullinit409, %msgSend.call408 br label %if.end418 if.end418: ; preds = %msgSend.cont410, %msgSend.cont393 br i1 undef, label %msgSend.nullinit470, label %msgSend.call469 msgSend.call469: ; preds = %if.end418 br label %msgSend.cont471 msgSend.nullinit470: ; preds = %if.end418 br label %msgSend.cont471 msgSend.cont471: ; preds = %msgSend.nullinit470, %msgSend.call469 br i1 undef, label %msgSend.nullinit484, label %msgSend.call483 msgSend.call483: ; preds = %msgSend.cont471 br label %msgSend.cont485 msgSend.nullinit484: ; preds = %msgSend.cont471 br label %msgSend.cont485 msgSend.cont485: ; preds = %msgSend.nullinit484, %msgSend.call483 br i1 undef, label %msgSend.nullinit500, label %msgSend.call499 msgSend.call499: ; preds = %msgSend.cont485 br label %msgSend.cont501 msgSend.nullinit500: ; preds = %msgSend.cont485 br label %msgSend.cont501 msgSend.cont501: ; preds = %msgSend.nullinit500, %msgSend.call499 br i1 undef, label %msgSend.nullinit506, label %msgSend.call505 msgSend.call505: ; preds = %msgSend.cont501 br label %msgSend.cont507 msgSend.nullinit506: ; preds = %msgSend.cont501 br label %msgSend.cont507 msgSend.cont507: ; preds = %msgSend.nullinit506, %msgSend.call505 call void @llvm.objc.release(i8* %0) nounwind, !clang.imprecise_release !0 ret void } ; Function Attrs: optsize ssp uwtable define void @test2() unnamed_addr align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) { bb: br i1 undef, label %bb3, label %bb2 bb2: ; preds = %bb br label %bb3 bb3: ; preds = %bb2, %bb br i1 undef, label %bb5, label %bb4 bb4: ; preds = %bb3 br label %bb5 bb5: ; preds = %bb4, %bb3 br i1 undef, label %bb7, label %bb6 bb6: ; preds = %bb5 br label %bb7 bb7: ; preds = %bb6, %bb5 br i1 undef, label %bb9, label %bb8 bb8: ; preds = %bb7 unreachable bb9: ; preds = %bb7 br i1 undef, label %bb11, label %bb10 bb10: ; preds = %bb9 br label %bb11 bb11: ; preds = %bb10, %bb9 br i1 undef, label %bb13, label %bb12 bb12: ; preds = %bb11 br label %bb13 bb13: ; preds = %bb12, %bb11 br i1 undef, label %bb15, label %bb14 bb14: ; preds = %bb13 br label %bb15 bb15: ; preds = %bb14, %bb13 br i1 undef, label %bb17, label %bb16 bb16: ; preds = %bb15 br label %bb17 bb17: ; preds = %bb16, %bb15 br i1 undef, label %bb19, label %bb18 bb18: ; preds = %bb17 br label %bb19 bb19: ; preds = %bb18, %bb17 br i1 undef, label %bb222, label %bb20 bb20: ; preds = %bb19 br i1 undef, label %bb222, label %bb21 bb21: ; preds = %bb20 br i1 undef, label %bb22, label %bb30 bb22: ; preds = %bb21 br i1 undef, label %bb23, label %bb32 bb23: ; preds = %bb22 br i1 undef, label %bb24, label %bb34 bb24: ; preds = %bb23 br i1 undef, label %bb26, label %bb25 bb25: ; preds = %bb24 br label %bb27 bb26: ; preds = %bb24 br label %bb27 bb27: ; preds = %bb26, %bb25 br i1 undef, label %bb28, label %bb42 bb28: ; preds = %bb27 br i1 undef, label %bb36, label %bb29 bb29: ; preds = %bb28 br label %bb36 bb30: ; preds = %bb210, %bb207, %bb203, %bb199, %bb182, %bb176, %bb174, %bb171, %bb136, %bb132, %bb21 br label %bb213 bb32: ; preds = %bb22 unreachable bb34: ; preds = %bb23 unreachable bb36: ; preds = %bb29, %bb28 br i1 undef, label %bb38, label %bb37 bb37: ; preds = %bb36 br label %bb39 bb38: ; preds = %bb36 br label %bb39 bb39: ; preds = %bb38, %bb37 br i1 undef, label %bb41, label %bb40 bb40: ; preds = %bb39 unreachable bb41: ; preds = %bb39 br label %bb42 bb42: ; preds = %bb41, %bb27 br i1 undef, label %bb43, label %bb214 bb43: ; preds = %bb42 br i1 undef, label %bb47, label %bb45 bb45: ; preds = %bb130, %bb128, %bb126, %bb124, %bb122, %bb120, %bb118, %bb116, %bb114, %bb112, %bb110, %bb108, %bb105, %bb102, %bb100, %bb96, %bb94, %bb90, %bb88, %bb84, %bb82, %bb78, %bb76, %bb72, %bb70, %bb66, %bb64, %bb60, %bb58, %bb54, %bb51, %bb43 unreachable bb47: ; preds = %bb43 br i1 undef, label %bb48, label %bb106 bb48: ; preds = %bb47 br i1 undef, label %bb50, label %bb49 bb49: ; preds = %bb48 br label %bb51 bb50: ; preds = %bb48 br label %bb51 bb51: ; preds = %bb50, %bb49 br i1 undef, label %bb53, label %bb45 bb53: ; preds = %bb51 br i1 undef, label %bb54, label %bb134 bb54: ; preds = %bb53 br i1 undef, label %bb55, label %bb45 bb55: ; preds = %bb54 br i1 undef, label %bb57, label %bb56 bb56: ; preds = %bb55 br label %bb58 bb57: ; preds = %bb55 br label %bb58 bb58: ; preds = %bb57, %bb56 br i1 undef, label %bb60, label %bb45 bb60: ; preds = %bb58 br i1 undef, label %bb61, label %bb45 bb61: ; preds = %bb60 br i1 undef, label %bb63, label %bb62 bb62: ; preds = %bb61 br label %bb64 bb63: ; preds = %bb61 br label %bb64 bb64: ; preds = %bb63, %bb62 br i1 undef, label %bb66, label %bb45 bb66: ; preds = %bb64 br i1 undef, label %bb67, label %bb45 bb67: ; preds = %bb66 br i1 undef, label %bb69, label %bb68 bb68: ; preds = %bb67 br label %bb70 bb69: ; preds = %bb67 br label %bb70 bb70: ; preds = %bb69, %bb68 br i1 undef, label %bb72, label %bb45 bb72: ; preds = %bb70 br i1 undef, label %bb73, label %bb45 bb73: ; preds = %bb72 br i1 undef, label %bb75, label %bb74 bb74: ; preds = %bb73 br label %bb76 bb75: ; preds = %bb73 br label %bb76 bb76: ; preds = %bb75, %bb74 br i1 undef, label %bb78, label %bb45 bb78: ; preds = %bb76 br i1 undef, label %bb79, label %bb45 bb79: ; preds = %bb78 br i1 undef, label %bb81, label %bb80 bb80: ; preds = %bb79 br label %bb82 bb81: ; preds = %bb79 br label %bb82 bb82: ; preds = %bb81, %bb80 br i1 undef, label %bb84, label %bb45 bb84: ; preds = %bb82 br i1 undef, label %bb85, label %bb45 bb85: ; preds = %bb84 br i1 undef, label %bb87, label %bb86 bb86: ; preds = %bb85 br label %bb88 bb87: ; preds = %bb85 br label %bb88 bb88: ; preds = %bb87, %bb86 br i1 undef, label %bb90, label %bb45 bb90: ; preds = %bb88 br i1 undef, label %bb91, label %bb45 bb91: ; preds = %bb90 br i1 undef, label %bb93, label %bb92 bb92: ; preds = %bb91 br label %bb94 bb93: ; preds = %bb91 br label %bb94 bb94: ; preds = %bb93, %bb92 br i1 undef, label %bb96, label %bb45 bb96: ; preds = %bb94 br i1 undef, label %bb97, label %bb45 bb97: ; preds = %bb96 br i1 undef, label %bb99, label %bb98 bb98: ; preds = %bb97 br label %bb100 bb99: ; preds = %bb97 br label %bb100 bb100: ; preds = %bb99, %bb98 br i1 undef, label %bb102, label %bb45 bb102: ; preds = %bb100 br i1 undef, label %bb104, label %bb45 bb104: ; preds = %bb102 br i1 undef, label %bb108, label %bb105 bb105: ; preds = %bb104 br i1 undef, label %bb108, label %bb45 bb106: ; preds = %bb47 unreachable bb108: ; preds = %bb105, %bb104 br i1 undef, label %bb110, label %bb45 bb110: ; preds = %bb108 br i1 undef, label %bb112, label %bb45 bb112: ; preds = %bb110 br i1 undef, label %bb114, label %bb45 bb114: ; preds = %bb112 br i1 undef, label %bb116, label %bb45 bb116: ; preds = %bb114 br i1 undef, label %bb118, label %bb45 bb118: ; preds = %bb116 br i1 undef, label %bb120, label %bb45 bb120: ; preds = %bb118 br i1 undef, label %bb122, label %bb45 bb122: ; preds = %bb120 br i1 undef, label %bb124, label %bb45 bb124: ; preds = %bb122 br i1 undef, label %bb126, label %bb45 bb126: ; preds = %bb124 br i1 undef, label %bb128, label %bb45 bb128: ; preds = %bb126 br i1 undef, label %bb130, label %bb45 bb130: ; preds = %bb128 br i1 undef, label %bb132, label %bb45 bb132: ; preds = %bb130 br i1 undef, label %bb135, label %bb30 bb134: ; preds = %bb53 unreachable bb135: ; preds = %bb132 br i1 undef, label %bb139, label %bb136 bb136: ; preds = %bb135 br i1 undef, label %bb138, label %bb30 bb138: ; preds = %bb136 br label %bb139 bb139: ; preds = %bb138, %bb135 br i1 undef, label %bb140, label %bb141 bb140: ; preds = %bb139 unreachable bb141: ; preds = %bb139 br i1 undef, label %bb142, label %bb215 bb142: ; preds = %bb141 br i1 undef, label %bb144, label %bb143 bb143: ; preds = %bb142 br label %bb145 bb144: ; preds = %bb142 br label %bb145 bb145: ; preds = %bb144, %bb143 br i1 undef, label %bb146, label %bb151 bb146: ; preds = %bb145 br i1 undef, label %bb148, label %bb153 bb148: ; preds = %bb146 br i1 undef, label %bb155, label %bb149 bb149: ; preds = %bb148 br i1 undef, label %bb150, label %bb153 bb150: ; preds = %bb149 br label %bb155 bb151: ; preds = %bb145 unreachable bb153: ; preds = %bb158, %bb149, %bb146 unreachable bb155: ; preds = %bb150, %bb148 br i1 undef, label %bb157, label %bb156 bb156: ; preds = %bb155 br label %bb158 bb157: ; preds = %bb155 br label %bb158 bb158: ; preds = %bb157, %bb156 br i1 undef, label %bb160, label %bb153 bb160: ; preds = %bb158 br i1 undef, label %bb162, label %bb161 bb161: ; preds = %bb160 br label %bb163 bb162: ; preds = %bb160 br label %bb163 bb163: ; preds = %bb162, %bb161 br i1 undef, label %bb165, label %bb164 bb164: ; preds = %bb163 br label %bb165 bb165: ; preds = %bb164, %bb163 br i1 undef, label %bb170, label %bb166 bb166: ; preds = %bb165 br i1 undef, label %bb167, label %bb168 bb167: ; preds = %bb166 unreachable bb168: ; preds = %bb166 unreachable bb170: ; preds = %bb165 br i1 undef, label %bb215, label %bb171 bb171: ; preds = %bb170 br i1 undef, label %bb173, label %bb30 bb173: ; preds = %bb171 br i1 undef, label %bb174, label %bb215 bb174: ; preds = %bb173 br i1 undef, label %bb176, label %bb30 bb176: ; preds = %bb174 br i1 undef, label %bb178, label %bb30 bb178: ; preds = %bb176 br i1 undef, label %bb179, label %bb193 bb179: ; preds = %bb178 br i1 undef, label %bb181, label %bb180 bb180: ; preds = %bb179 br label %bb182 bb181: ; preds = %bb179 br label %bb182 bb182: ; preds = %bb181, %bb180 br i1 undef, label %bb184, label %bb30 bb184: ; preds = %bb182 %tmp185 = call i8* @returner() br i1 undef, label %bb186, label %bb195 bb186: ; preds = %bb184 %tmp188 = call i8* @llvm.objc.retainAutoreleasedReturnValue(i8* %tmp185) %tmp189 = call i8* @llvm.objc.retain(i8* %tmp188) call void @llvm.objc.release(i8* %tmp189), !clang.imprecise_release !0 br i1 undef, label %bb197, label %bb190 bb190: ; preds = %bb186 br i1 undef, label %bb192, label %bb195 bb192: ; preds = %bb190 br i1 undef, label %bb197, label %bb195 bb193: ; preds = %bb178 br label %bb213 bb195: ; preds = %bb192, %bb190, %bb184 unreachable bb197: ; preds = %bb192, %bb186 br i1 undef, label %bb198, label %bb215 bb198: ; preds = %bb197 br i1 undef, label %bb202, label %bb199 bb199: ; preds = %bb198 br i1 undef, label %bb201, label %bb30 bb201: ; preds = %bb199 br label %bb202 bb202: ; preds = %bb201, %bb198 br i1 undef, label %bb206, label %bb203 bb203: ; preds = %bb202 br i1 undef, label %bb205, label %bb30 bb205: ; preds = %bb203 br label %bb206 bb206: ; preds = %bb205, %bb202 br i1 undef, label %bb210, label %bb207 bb207: ; preds = %bb206 br i1 undef, label %bb209, label %bb30 bb209: ; preds = %bb207 br label %bb210 bb210: ; preds = %bb209, %bb206 br i1 undef, label %bb212, label %bb30 bb212: ; preds = %bb210 unreachable bb213: ; preds = %bb193, %bb30 resume { i8*, i32 } undef bb214: ; preds = %bb42 br label %bb219 bb215: ; preds = %bb197, %bb173, %bb170, %bb141 br i1 undef, label %bb217, label %bb216 bb216: ; preds = %bb215 br label %bb217 bb217: ; preds = %bb216, %bb215 br i1 undef, label %bb219, label %bb218 bb218: ; preds = %bb217 br label %bb219 bb219: ; preds = %bb218, %bb217, %bb214 br i1 undef, label %bb221, label %bb220 bb220: ; preds = %bb219 unreachable bb221: ; preds = %bb219 unreachable bb222: ; preds = %bb20, %bb19 ret void } ; Function Attrs: ssp define void @test3() #1 personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) { entry: %call2 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry %call5 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont4 unwind label %lpad3 invoke.cont4: ; preds = %invoke.cont br i1 undef, label %land.end, label %land.rhs land.rhs: ; preds = %invoke.cont4 %call7 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %land.end unwind label %lpad3 land.end: ; preds = %land.rhs, %invoke.cont4 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i unwind label %lpad.i invoke.cont.i: ; preds = %land.end br i1 undef, label %invoke.cont8, label %if.then.i if.then.i: ; preds = %invoke.cont.i br label %invoke.cont8 lpad.i: ; preds = %land.end %tmp13 = landingpad { i8*, i32 } cleanup unreachable invoke.cont8: ; preds = %if.then.i, %invoke.cont.i %call18 = invoke i8* (i8*, i8*, i8*, ...) bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, ...)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) to label %invoke.cont17 unwind label %lpad16 invoke.cont17: ; preds = %invoke.cont8 %call22 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont21 unwind label %lpad20 invoke.cont21: ; preds = %invoke.cont17 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i1980 unwind label %lpad.i1982 invoke.cont.i1980: ; preds = %invoke.cont21 br i1 undef, label %invoke.cont24, label %if.then.i1981 if.then.i1981: ; preds = %invoke.cont.i1980 br label %invoke.cont24 lpad.i1982: ; preds = %invoke.cont21 %tmp28 = landingpad { i8*, i32 } cleanup unreachable invoke.cont24: ; preds = %if.then.i1981, %invoke.cont.i1980 %call37 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont36 unwind label %lpad35 invoke.cont36: ; preds = %invoke.cont24 br i1 undef, label %land.end43, label %land.rhs39 land.rhs39: ; preds = %invoke.cont36 %call41 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %land.end43 unwind label %lpad35 land.end43: ; preds = %land.rhs39, %invoke.cont36 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i1986 unwind label %lpad.i1988 invoke.cont.i1986: ; preds = %land.end43 br i1 undef, label %invoke.cont44, label %if.then.i1987 if.then.i1987: ; preds = %invoke.cont.i1986 br label %invoke.cont44 lpad.i1988: ; preds = %land.end43 %tmp42 = landingpad { i8*, i32 } cleanup unreachable invoke.cont44: ; preds = %if.then.i1987, %invoke.cont.i1986 %call53 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont52 unwind label %lpad51 invoke.cont52: ; preds = %invoke.cont44 br i1 undef, label %land.end70, label %land.rhs58 land.rhs58: ; preds = %invoke.cont52 %call63 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42) to label %invoke.cont62 unwind label %lpad61 invoke.cont62: ; preds = %land.rhs58 %call68 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) to label %land.end70 unwind label %lpad66.body.thread land.end70: ; preds = %invoke.cont62, %invoke.cont52 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i1992 unwind label %lpad66.body invoke.cont.i1992: ; preds = %land.end70 br i1 undef, label %invoke.cont71, label %if.then.i1993 if.then.i1993: ; preds = %invoke.cont.i1992 br label %invoke.cont71 invoke.cont71: ; preds = %if.then.i1993, %invoke.cont.i1992 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i1998 unwind label %lpad.i2000 invoke.cont.i1998: ; preds = %invoke.cont71 br i1 undef, label %invoke.cont91, label %if.then.i1999 if.then.i1999: ; preds = %invoke.cont.i1998 br label %invoke.cont91 lpad.i2000: ; preds = %invoke.cont71 %tmp74 = landingpad { i8*, i32 } cleanup br label %ehcleanup102 invoke.cont91: ; preds = %if.then.i1999, %invoke.cont.i1998 %call96 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont95 unwind label %lpad94 invoke.cont95: ; preds = %invoke.cont91 %call98 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* %call96) to label %invoke.cont97 unwind label %lpad94 invoke.cont97: ; preds = %invoke.cont95 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2004 unwind label %lpad.i2006 invoke.cont.i2004: ; preds = %invoke.cont97 br i1 undef, label %invoke.cont100, label %if.then.i2005 if.then.i2005: ; preds = %invoke.cont.i2004 br label %invoke.cont100 lpad.i2006: ; preds = %invoke.cont97 %tmp82 = landingpad { i8*, i32 } cleanup unreachable invoke.cont100: ; preds = %if.then.i2005, %invoke.cont.i2004 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont110 unwind label %lpad109 invoke.cont110: ; preds = %invoke.cont100 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2010 unwind label %lpad.i2012 invoke.cont.i2010: ; preds = %invoke.cont110 br i1 undef, label %invoke.cont117, label %if.then.i2011 if.then.i2011: ; preds = %invoke.cont.i2010 br label %invoke.cont117 lpad.i2012: ; preds = %invoke.cont110 %tmp98 = landingpad { i8*, i32 } cleanup unreachable invoke.cont117: ; preds = %if.then.i2011, %invoke.cont.i2010 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2022 unwind label %lpad156.body lpad: ; preds = %entry %tmp118 = landingpad { i8*, i32 } cleanup br label %ehcleanup lpad3: ; preds = %land.rhs, %invoke.cont %tmp119 = landingpad { i8*, i32 } cleanup br label %ehcleanup ehcleanup: ; preds = %lpad3, %lpad unreachable lpad16: ; preds = %invoke.cont8 %tmp121 = landingpad { i8*, i32 } cleanup br label %ehcleanup26 lpad20: ; preds = %invoke.cont17 %tmp122 = landingpad { i8*, i32 } cleanup br label %ehcleanup26 ehcleanup26: ; preds = %lpad20, %lpad16 unreachable lpad35: ; preds = %land.rhs39, %invoke.cont24 %tmp124 = landingpad { i8*, i32 } cleanup unreachable lpad51: ; preds = %invoke.cont44 %tmp125 = landingpad { i8*, i32 } cleanup unreachable lpad61: ; preds = %land.rhs58 %tmp127 = landingpad { i8*, i32 } cleanup unreachable lpad66.body.thread: ; preds = %invoke.cont62 %tmp128 = landingpad { i8*, i32 } cleanup unreachable lpad66.body: ; preds = %land.end70 %tmp129 = landingpad { i8*, i32 } cleanup unreachable lpad94: ; preds = %invoke.cont95, %invoke.cont91 %tmp133 = landingpad { i8*, i32 } cleanup br label %ehcleanup102 ehcleanup102: ; preds = %lpad94, %lpad.i2000 unreachable lpad109: ; preds = %invoke.cont100 %tmp134 = landingpad { i8*, i32 } cleanup unreachable invoke.cont.i2022: ; preds = %invoke.cont117 br i1 undef, label %invoke.cont157, label %if.then.i2023 if.then.i2023: ; preds = %invoke.cont.i2022 br label %invoke.cont157 invoke.cont157: ; preds = %if.then.i2023, %invoke.cont.i2022 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2028 unwind label %lpad164.body invoke.cont.i2028: ; preds = %invoke.cont157 br i1 undef, label %invoke.cont165, label %if.then.i2029 if.then.i2029: ; preds = %invoke.cont.i2028 br label %invoke.cont165 invoke.cont165: ; preds = %if.then.i2029, %invoke.cont.i2028 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, void (i8*, i8*)*)*)(i8* undef, i8* undef, void (i8*, i8*)* undef) to label %invoke.cont184 unwind label %lpad183 invoke.cont184: ; preds = %invoke.cont165 %call186 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont185 unwind label %lpad183 invoke.cont185: ; preds = %invoke.cont184 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2034 unwind label %lpad.i2036 invoke.cont.i2034: ; preds = %invoke.cont185 br i1 undef, label %invoke.cont190, label %if.then.i2035 if.then.i2035: ; preds = %invoke.cont.i2034 br label %invoke.cont190 lpad.i2036: ; preds = %invoke.cont185 %tmp168 = landingpad { i8*, i32 } cleanup br label %lpad183.body invoke.cont190: ; preds = %if.then.i2035, %invoke.cont.i2034 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont197 unwind label %lpad196 invoke.cont197: ; preds = %invoke.cont190 %call202 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont201 unwind label %lpad200 invoke.cont201: ; preds = %invoke.cont197 %call205 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont204 unwind label %lpad203 invoke.cont204: ; preds = %invoke.cont201 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2040 unwind label %lpad.i2042 invoke.cont.i2040: ; preds = %invoke.cont204 br i1 undef, label %invoke.cont207, label %if.then.i2041 if.then.i2041: ; preds = %invoke.cont.i2040 br label %invoke.cont207 lpad.i2042: ; preds = %invoke.cont204 %tmp181 = landingpad { i8*, i32 } cleanup unreachable invoke.cont207: ; preds = %if.then.i2041, %invoke.cont.i2040 %call209 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont208 unwind label %lpad203 invoke.cont208: ; preds = %invoke.cont207 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2046 unwind label %lpad212.body invoke.cont.i2046: ; preds = %invoke.cont208 br i1 undef, label %invoke.cont213, label %if.then.i2047 if.then.i2047: ; preds = %invoke.cont.i2046 br label %invoke.cont213 invoke.cont213: ; preds = %if.then.i2047, %invoke.cont.i2046 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont221 unwind label %lpad220 invoke.cont221: ; preds = %invoke.cont213 %call229 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont228 unwind label %lpad227 invoke.cont228: ; preds = %invoke.cont221 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2052 unwind label %lpad.i2054 invoke.cont.i2052: ; preds = %invoke.cont228 br i1 undef, label %invoke.cont231, label %if.then.i2053 if.then.i2053: ; preds = %invoke.cont.i2052 br label %invoke.cont231 lpad.i2054: ; preds = %invoke.cont228 %tmp198 = landingpad { i8*, i32 } cleanup unreachable invoke.cont231: ; preds = %if.then.i2053, %invoke.cont.i2052 %call233 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont232 unwind label %lpad227 invoke.cont232: ; preds = %invoke.cont231 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2058 unwind label %lpad236.body invoke.cont.i2058: ; preds = %invoke.cont232 br i1 undef, label %invoke.cont237, label %if.then.i2059 if.then.i2059: ; preds = %invoke.cont.i2058 br label %invoke.cont237 invoke.cont237: ; preds = %if.then.i2059, %invoke.cont.i2058 %call246 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont245 unwind label %lpad244 invoke.cont245: ; preds = %invoke.cont237 %call248 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 13) to label %invoke.cont247 unwind label %lpad244 invoke.cont247: ; preds = %invoke.cont245 %call251 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 2) to label %invoke.cont250 unwind label %lpad249 invoke.cont250: ; preds = %invoke.cont247 %call254 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 7) to label %invoke.cont253 unwind label %lpad252 invoke.cont253: ; preds = %invoke.cont250 %call257 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i32 3) to label %invoke.cont256 unwind label %lpad255 invoke.cont256: ; preds = %invoke.cont253 %call260 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* undef) to label %invoke.cont259 unwind label %lpad258 invoke.cont259: ; preds = %invoke.cont256 %call267 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont266 unwind label %lpad265 invoke.cont266: ; preds = %invoke.cont259 %call275 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) to label %invoke.cont274 unwind label %lpad273 invoke.cont274: ; preds = %invoke.cont266 %call279 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont278 unwind label %lpad277 invoke.cont278: ; preds = %invoke.cont274 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2064 unwind label %lpad.i2066 invoke.cont.i2064: ; preds = %invoke.cont278 br i1 undef, label %invoke.cont281, label %if.then.i2065 if.then.i2065: ; preds = %invoke.cont.i2064 br label %invoke.cont281 lpad.i2066: ; preds = %invoke.cont278 %tmp253 = landingpad { i8*, i32 } cleanup unreachable invoke.cont281: ; preds = %if.then.i2065, %invoke.cont.i2064 %call291 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont290 unwind label %lpad289 invoke.cont290: ; preds = %invoke.cont281 %call303 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 8) to label %invoke.cont302 unwind label %lpad301 invoke.cont302: ; preds = %invoke.cont290 %call310 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, double)*)(i8* undef, i8* undef, double 5.000000e-01) to label %invoke.cont309 unwind label %lpad308 invoke.cont309: ; preds = %invoke.cont302 %call313 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42) to label %invoke.cont312 unwind label %lpad311 invoke.cont312: ; preds = %invoke.cont309 %call316 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i8** undef, i32 2) to label %invoke.cont315 unwind label %lpad314 invoke.cont315: ; preds = %invoke.cont312 %call322 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) to label %invoke.cont321 unwind label %lpad320 invoke.cont321: ; preds = %invoke.cont315 br i1 undef, label %land.end344, label %land.rhs335 land.rhs335: ; preds = %invoke.cont321 %call342 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %land.end344 unwind label %lpad340.body.thread land.end344: ; preds = %land.rhs335, %invoke.cont321 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2070 unwind label %lpad340.body invoke.cont.i2070: ; preds = %land.end344 br i1 undef, label %invoke.cont345, label %if.then.i2071 if.then.i2071: ; preds = %invoke.cont.i2070 br label %invoke.cont345 invoke.cont345: ; preds = %if.then.i2071, %invoke.cont.i2070 %call362 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) to label %invoke.cont361 unwind label %lpad360 invoke.cont361: ; preds = %invoke.cont345 %call365 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont364 unwind label %lpad363 invoke.cont364: ; preds = %invoke.cont361 %call371 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont370 unwind label %lpad369 invoke.cont370: ; preds = %invoke.cont364 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2076 unwind label %lpad.i2078 invoke.cont.i2076: ; preds = %invoke.cont370 br i1 undef, label %invoke.cont373, label %if.then.i2077 if.then.i2077: ; preds = %invoke.cont.i2076 br label %invoke.cont373 lpad.i2078: ; preds = %invoke.cont370 %tmp340 = landingpad { i8*, i32 } cleanup unreachable invoke.cont373: ; preds = %if.then.i2077, %invoke.cont.i2076 %call377 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32, i8*)*)(i8* undef, i8* undef, i32 42, i8* undef) to label %invoke.cont376 unwind label %lpad363 invoke.cont376: ; preds = %invoke.cont373 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 5) to label %invoke.cont382 unwind label %lpad381 invoke.cont382: ; preds = %invoke.cont376 %call384 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont383 unwind label %lpad381 invoke.cont383: ; preds = %invoke.cont382 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2082 unwind label %lpad.i2084 invoke.cont.i2082: ; preds = %invoke.cont383 br i1 undef, label %invoke.cont392, label %if.then.i2083 if.then.i2083: ; preds = %invoke.cont.i2082 br label %invoke.cont392 lpad.i2084: ; preds = %invoke.cont383 %tmp360 = landingpad { i8*, i32 } cleanup unreachable invoke.cont392: ; preds = %if.then.i2083, %invoke.cont.i2082 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -2) to label %invoke.cont395 unwind label %lpad381 invoke.cont395: ; preds = %invoke.cont392 %call397 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont396 unwind label %lpad381 invoke.cont396: ; preds = %invoke.cont395 %call400 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont399 unwind label %lpad398 invoke.cont399: ; preds = %invoke.cont396 %call403 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont402 unwind label %lpad401 invoke.cont402: ; preds = %invoke.cont399 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2088 unwind label %lpad.i2090 invoke.cont.i2088: ; preds = %invoke.cont402 br i1 undef, label %invoke.cont405, label %if.then.i2089 if.then.i2089: ; preds = %invoke.cont.i2088 br label %invoke.cont405 lpad.i2090: ; preds = %invoke.cont402 %tmp370 = landingpad { i8*, i32 } cleanup unreachable invoke.cont405: ; preds = %if.then.i2089, %invoke.cont.i2088 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -1) to label %invoke.cont408 unwind label %lpad381 invoke.cont408: ; preds = %invoke.cont405 %call410 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont409 unwind label %lpad381 invoke.cont409: ; preds = %invoke.cont408 %call413 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont412 unwind label %lpad411 invoke.cont412: ; preds = %invoke.cont409 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2094 unwind label %lpad.i2096 invoke.cont.i2094: ; preds = %invoke.cont412 br i1 undef, label %invoke.cont418, label %if.then.i2095 if.then.i2095: ; preds = %invoke.cont.i2094 br label %invoke.cont418 lpad.i2096: ; preds = %invoke.cont412 %tmp380 = landingpad { i8*, i32 } cleanup unreachable invoke.cont418: ; preds = %if.then.i2095, %invoke.cont.i2094 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 0) to label %invoke.cont422 unwind label %lpad381 invoke.cont422: ; preds = %invoke.cont418 %call424 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont423 unwind label %lpad381 invoke.cont423: ; preds = %invoke.cont422 %call427 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont426 unwind label %lpad425 invoke.cont426: ; preds = %invoke.cont423 %call430 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont429 unwind label %lpad428 invoke.cont429: ; preds = %invoke.cont426 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2100 unwind label %lpad.i2102 invoke.cont.i2100: ; preds = %invoke.cont429 br i1 undef, label %invoke.cont432, label %if.then.i2101 if.then.i2101: ; preds = %invoke.cont.i2100 br label %invoke.cont432 lpad.i2102: ; preds = %invoke.cont429 %tmp390 = landingpad { i8*, i32 } cleanup unreachable invoke.cont432: ; preds = %if.then.i2101, %invoke.cont.i2100 %call436 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0) to label %invoke.cont435 unwind label %lpad381 invoke.cont435: ; preds = %invoke.cont432 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2106 unwind label %lpad.i2108 invoke.cont.i2106: ; preds = %invoke.cont435 %call444 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 5) to label %invoke.cont443 unwind label %lpad381 lpad.i2108: ; preds = %invoke.cont435 %tmp396 = landingpad { i8*, i32 } cleanup unreachable invoke.cont443: ; preds = %invoke.cont.i2106 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2112 unwind label %lpad.i2114 invoke.cont.i2112: ; preds = %invoke.cont443 br i1 undef, label %invoke.cont449, label %if.then.i2113 if.then.i2113: ; preds = %invoke.cont.i2112 br label %invoke.cont449 lpad.i2114: ; preds = %invoke.cont443 %tmp402 = landingpad { i8*, i32 } cleanup unreachable invoke.cont449: ; preds = %if.then.i2113, %invoke.cont.i2112 %call453 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -2) to label %invoke.cont452 unwind label %lpad381 invoke.cont452: ; preds = %invoke.cont449 %call456 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont455 unwind label %lpad454 invoke.cont455: ; preds = %invoke.cont452 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2118 unwind label %lpad.i2120 invoke.cont.i2118: ; preds = %invoke.cont455 br i1 undef, label %invoke.cont458, label %if.then.i2119 if.then.i2119: ; preds = %invoke.cont.i2118 br label %invoke.cont458 lpad.i2120: ; preds = %invoke.cont455 %tmp408 = landingpad { i8*, i32 } cleanup unreachable invoke.cont458: ; preds = %if.then.i2119, %invoke.cont.i2118 %call461 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -1) to label %invoke.cont460 unwind label %lpad381 invoke.cont460: ; preds = %invoke.cont458 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2124 unwind label %lpad.i2126 invoke.cont.i2124: ; preds = %invoke.cont460 br i1 undef, label %invoke.cont466, label %if.then.i2125 if.then.i2125: ; preds = %invoke.cont.i2124 br label %invoke.cont466 lpad.i2126: ; preds = %invoke.cont460 %tmp414 = landingpad { i8*, i32 } cleanup br label %ehcleanup477 invoke.cont466: ; preds = %if.then.i2125, %invoke.cont.i2124 %call470 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0) to label %invoke.cont469 unwind label %lpad381 invoke.cont469: ; preds = %invoke.cont466 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2130 unwind label %lpad.i2132 invoke.cont.i2130: ; preds = %invoke.cont469 br i1 undef, label %invoke.cont475, label %if.then.i2131 if.then.i2131: ; preds = %invoke.cont.i2130 br label %invoke.cont475 lpad.i2132: ; preds = %invoke.cont469 %tmp420 = landingpad { i8*, i32 } cleanup br label %ehcleanup477 invoke.cont475: ; preds = %if.then.i2131, %invoke.cont.i2130 %call491 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 1) to label %invoke.cont490 unwind label %lpad489 invoke.cont490: ; preds = %invoke.cont475 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont499 unwind label %lpad498 invoke.cont499: ; preds = %invoke.cont490 %call504 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont503 unwind label %lpad489 invoke.cont503: ; preds = %invoke.cont499 %call507 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 3) to label %invoke.cont506 unwind label %lpad505 invoke.cont506: ; preds = %invoke.cont503 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont509 unwind label %lpad508 invoke.cont509: ; preds = %invoke.cont506 %call513 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont512 unwind label %lpad489 invoke.cont512: ; preds = %invoke.cont509 br i1 undef, label %msgSend.null-receiver, label %msgSend.call msgSend.call: ; preds = %invoke.cont512 invoke void bitcast (void (i8*, i8*, ...)* @objc_msgSend_stret to void (%struct.CGPoint*, i8*, i8*)*)(%struct.CGPoint* sret(%struct.CGPoint) undef, i8* undef, i8* undef) to label %msgSend.cont unwind label %lpad514 msgSend.null-receiver: ; preds = %invoke.cont512 br label %msgSend.cont msgSend.cont: ; preds = %msgSend.null-receiver, %msgSend.call invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2136 unwind label %lpad.i2138 invoke.cont.i2136: ; preds = %msgSend.cont br i1 undef, label %invoke.cont521, label %if.then.i2137 if.then.i2137: ; preds = %invoke.cont.i2136 br label %invoke.cont521 lpad.i2138: ; preds = %msgSend.cont %tmp468 = landingpad { i8*, i32 } cleanup unreachable invoke.cont521: ; preds = %if.then.i2137, %invoke.cont.i2136 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) to label %invoke.cont528 unwind label %lpad527 invoke.cont528: ; preds = %invoke.cont521 %call532 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont531 unwind label %lpad489 invoke.cont531: ; preds = %invoke.cont528 %call535 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont534 unwind label %lpad533 invoke.cont534: ; preds = %invoke.cont531 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2142 unwind label %lpad.i2144 invoke.cont.i2142: ; preds = %invoke.cont534 br i1 undef, label %invoke.cont540, label %if.then.i2143 if.then.i2143: ; preds = %invoke.cont.i2142 br label %invoke.cont540 lpad.i2144: ; preds = %invoke.cont534 %tmp486 = landingpad { i8*, i32 } cleanup unreachable invoke.cont540: ; preds = %if.then.i2143, %invoke.cont.i2142 %call544 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i32 3) to label %invoke.cont543 unwind label %lpad489 invoke.cont543: ; preds = %invoke.cont540 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) to label %invoke.cont546 unwind label %lpad545 invoke.cont546: ; preds = %invoke.cont543 %call549 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont548 unwind label %lpad489 invoke.cont548: ; preds = %invoke.cont546 %call555 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont554 unwind label %lpad553 invoke.cont554: ; preds = %invoke.cont548 %tmp499 = call i8* @llvm.objc.retain(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) #3 invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* %tmp499, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont.i2148 unwind label %lpad.i2150 invoke.cont.i2148: ; preds = %invoke.cont554 call void @llvm.objc.release(i8* %tmp499) #3, !clang.imprecise_release !0 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont566 unwind label %lpad565 lpad.i2150: ; preds = %invoke.cont554 %tmp500 = landingpad { i8*, i32 } cleanup call void @llvm.objc.release(i8* %tmp499) #3, !clang.imprecise_release !0 unreachable invoke.cont566: ; preds = %invoke.cont.i2148 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) to label %invoke.cont572 unwind label %lpad571 invoke.cont572: ; preds = %invoke.cont566 %call582 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) to label %invoke.cont581 unwind label %lpad580 invoke.cont581: ; preds = %invoke.cont572 unreachable lpad156.body: ; preds = %invoke.cont117 %tmp1157 = landingpad { i8*, i32 } cleanup unreachable lpad164.body: ; preds = %invoke.cont157 %tmp1158 = landingpad { i8*, i32 } cleanup unreachable lpad183: ; preds = %invoke.cont184, %invoke.cont165 %tmp1159 = landingpad { i8*, i32 } cleanup br label %lpad183.body lpad183.body: ; preds = %lpad183, %lpad.i2036 unreachable lpad196: ; preds = %invoke.cont190 %tmp1160 = landingpad { i8*, i32 } cleanup unreachable lpad200: ; preds = %invoke.cont197 %tmp1161 = landingpad { i8*, i32 } cleanup unreachable lpad203: ; preds = %invoke.cont207, %invoke.cont201 %tmp1162 = landingpad { i8*, i32 } cleanup unreachable lpad212.body: ; preds = %invoke.cont208 %tmp1163 = landingpad { i8*, i32 } cleanup unreachable lpad220: ; preds = %invoke.cont213 %tmp1164 = landingpad { i8*, i32 } cleanup br label %eh.resume lpad227: ; preds = %invoke.cont231, %invoke.cont221 %tmp1166 = landingpad { i8*, i32 } cleanup br label %ehcleanup239 lpad236.body: ; preds = %invoke.cont232 %tmp1167 = landingpad { i8*, i32 } cleanup br label %ehcleanup239 ehcleanup239: ; preds = %lpad236.body, %lpad227 unreachable lpad244: ; preds = %invoke.cont245, %invoke.cont237 %tmp1168 = landingpad { i8*, i32 } cleanup unreachable lpad249: ; preds = %invoke.cont247 %tmp1169 = landingpad { i8*, i32 } cleanup unreachable lpad252: ; preds = %invoke.cont250 %tmp1170 = landingpad { i8*, i32 } cleanup br label %ehcleanup263 lpad255: ; preds = %invoke.cont253 %tmp1171 = landingpad { i8*, i32 } cleanup br label %ehcleanup263 lpad258: ; preds = %invoke.cont256 %tmp1172 = landingpad { i8*, i32 } cleanup unreachable ehcleanup263: ; preds = %lpad255, %lpad252 unreachable lpad265: ; preds = %invoke.cont259 %tmp1173 = landingpad { i8*, i32 } cleanup unreachable lpad273: ; preds = %invoke.cont266 %tmp1175 = landingpad { i8*, i32 } cleanup unreachable lpad277: ; preds = %invoke.cont274 %tmp1176 = landingpad { i8*, i32 } cleanup unreachable lpad289: ; preds = %invoke.cont281 %tmp1177 = landingpad { i8*, i32 } cleanup unreachable lpad301: ; preds = %invoke.cont290 %tmp1180 = landingpad { i8*, i32 } cleanup unreachable lpad308: ; preds = %invoke.cont302 %tmp1182 = landingpad { i8*, i32 } cleanup unreachable lpad311: ; preds = %invoke.cont309 %tmp1183 = landingpad { i8*, i32 } cleanup unreachable lpad314: ; preds = %invoke.cont312 %tmp1184 = landingpad { i8*, i32 } cleanup unreachable lpad320: ; preds = %invoke.cont315 %tmp1186 = landingpad { i8*, i32 } cleanup unreachable lpad340.body.thread: ; preds = %land.rhs335 %tmp1188 = landingpad { i8*, i32 } cleanup unreachable lpad340.body: ; preds = %land.end344 %tmp1189 = landingpad { i8*, i32 } cleanup unreachable lpad360: ; preds = %invoke.cont345 %tmp1191 = landingpad { i8*, i32 } cleanup br label %eh.resume lpad363: ; preds = %invoke.cont373, %invoke.cont361 %tmp1192 = landingpad { i8*, i32 } cleanup unreachable lpad369: ; preds = %invoke.cont364 %tmp1194 = landingpad { i8*, i32 } cleanup unreachable lpad381: ; preds = %invoke.cont466, %invoke.cont458, %invoke.cont449, %invoke.cont.i2106, %invoke.cont432, %invoke.cont422, %invoke.cont418, %invoke.cont408, %invoke.cont405, %invoke.cont395, %invoke.cont392, %invoke.cont382, %invoke.cont376 %tmp1196 = landingpad { i8*, i32 } cleanup br label %ehcleanup477 lpad398: ; preds = %invoke.cont396 %tmp1199 = landingpad { i8*, i32 } cleanup unreachable lpad401: ; preds = %invoke.cont399 %tmp1200 = landingpad { i8*, i32 } cleanup unreachable lpad411: ; preds = %invoke.cont409 %tmp1201 = landingpad { i8*, i32 } cleanup unreachable lpad425: ; preds = %invoke.cont423 %tmp1203 = landingpad { i8*, i32 } cleanup br label %ehcleanup477 lpad428: ; preds = %invoke.cont426 %tmp1204 = landingpad { i8*, i32 } cleanup unreachable lpad454: ; preds = %invoke.cont452 %tmp1207 = landingpad { i8*, i32 } cleanup unreachable ehcleanup477: ; preds = %lpad425, %lpad381, %lpad.i2132, %lpad.i2126 unreachable lpad489: ; preds = %invoke.cont546, %invoke.cont540, %invoke.cont528, %invoke.cont509, %invoke.cont499, %invoke.cont475 %tmp1211 = landingpad { i8*, i32 } cleanup br label %ehcleanup560 lpad498: ; preds = %invoke.cont490 %tmp1214 = landingpad { i8*, i32 } cleanup unreachable lpad505: ; preds = %invoke.cont503 %tmp1215 = landingpad { i8*, i32 } cleanup unreachable lpad508: ; preds = %invoke.cont506 %tmp1216 = landingpad { i8*, i32 } cleanup unreachable lpad514: ; preds = %msgSend.call %tmp1217 = landingpad { i8*, i32 } cleanup unreachable lpad527: ; preds = %invoke.cont521 %tmp1219 = landingpad { i8*, i32 } cleanup br label %ehcleanup560 lpad533: ; preds = %invoke.cont531 %tmp1220 = landingpad { i8*, i32 } cleanup unreachable lpad545: ; preds = %invoke.cont543 %tmp1222 = landingpad { i8*, i32 } cleanup unreachable lpad553: ; preds = %invoke.cont548 %tmp1224 = landingpad { i8*, i32 } cleanup unreachable ehcleanup560: ; preds = %lpad527, %lpad489 br label %eh.resume lpad565: ; preds = %invoke.cont.i2148 %tmp1225 = landingpad { i8*, i32 } cleanup unreachable lpad571: ; preds = %invoke.cont566 %tmp1227 = landingpad { i8*, i32 } cleanup unreachable lpad580: ; preds = %invoke.cont572 %tmp1228 = landingpad { i8*, i32 } cleanup br label %eh.resume eh.resume: ; preds = %lpad580, %ehcleanup560, %lpad360, %lpad220 resume { i8*, i32 } undef } @"OBJC_EHTYPE_$_NSException" = external global i8 define void @test4() personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) { entry: br i1 undef, label %if.end13, label %if.then10 if.then10: ; preds = %entry br label %if.end13 if.end13: ; preds = %if.then10, %entry %0 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, i64, i8*, i8)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i64 2, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring_2 to i8*), i8 signext 0), !clang.arc.no_objc_arc_exceptions !0 br i1 undef, label %if.then17, label %if.end18 if.then17: ; preds = %if.end13 br label %if.end18 if.end18: ; preds = %if.then17, %if.end13 br i1 undef, label %if.then64, label %if.end73 if.then64: ; preds = %if.end18 br i1 undef, label %cond.end71, label %cond.true68 cond.true68: ; preds = %if.then64 br label %cond.end71 cond.end71: ; preds = %cond.true68, %if.then64 br i1 undef, label %cleanup.action, label %cleanup.done cleanup.action: ; preds = %cond.end71 br label %cleanup.done cleanup.done: ; preds = %cleanup.action, %cond.end71 br label %if.end73 if.end73: ; preds = %cleanup.done, %if.end18 br i1 undef, label %forcoll.empty, label %forcoll.loopinit forcoll.loopinit: ; preds = %if.end73 br label %forcoll.loopbody.outer forcoll.loopbody.outer: ; preds = %forcoll.refetch, %forcoll.loopinit br label %forcoll.loopbody forcoll.loopbody: ; preds = %forcoll.notmutated, %forcoll.loopbody.outer br i1 undef, label %forcoll.notmutated, label %forcoll.mutated forcoll.mutated: ; preds = %forcoll.loopbody br label %forcoll.notmutated forcoll.notmutated: ; preds = %forcoll.mutated, %forcoll.loopbody br i1 undef, label %forcoll.loopbody, label %forcoll.refetch forcoll.refetch: ; preds = %forcoll.notmutated br i1 undef, label %forcoll.empty, label %forcoll.loopbody.outer forcoll.empty: ; preds = %forcoll.refetch, %if.end73 br i1 undef, label %if.end85, label %if.then82 if.then82: ; preds = %forcoll.empty br label %if.end85 if.end85: ; preds = %if.then82, %forcoll.empty br i1 undef, label %if.then87, label %if.end102 if.then87: ; preds = %if.end85 br i1 undef, label %if.end94, label %if.then91 if.then91: ; preds = %if.then87 br label %if.end94 if.end94: ; preds = %if.then91, %if.then87 br i1 undef, label %if.end101, label %if.then98 if.then98: ; preds = %if.end94 br label %if.end101 if.end101: ; preds = %if.then98, %if.end94 br label %if.end102 if.end102: ; preds = %if.end101, %if.end85 br i1 undef, label %do.body113, label %if.then107 if.then107: ; preds = %if.end102 br label %do.body113 do.body113: ; preds = %if.then107, %if.end102 br i1 undef, label %if.then116, label %if.end117 if.then116: ; preds = %do.body113 br label %if.end117 if.end117: ; preds = %if.then116, %do.body113 br i1 undef, label %if.then125, label %if.end126 if.then125: ; preds = %if.end117 br label %if.end126 if.end126: ; preds = %if.then125, %if.end117 br i1 undef, label %do.end166, label %cond.true132 cond.true132: ; preds = %if.end126 br i1 undef, label %do.body148, label %cond.true151 do.body148: ; preds = %cond.true132 br i1 undef, label %do.end166, label %cond.true151 cond.true151: ; preds = %do.body148, %cond.true132 br i1 undef, label %if.then162, label %do.end166 if.then162: ; preds = %cond.true151 br label %do.end166 do.end166: ; preds = %if.then162, %cond.true151, %do.body148, %if.end126 br i1 undef, label %if.then304, label %if.then170 if.then170: ; preds = %do.end166 br i1 undef, label %do.end193, label %cond.true179 cond.true179: ; preds = %if.then170 br i1 undef, label %if.then190, label %do.end193 if.then190: ; preds = %cond.true179 br label %do.end193 do.end193: ; preds = %if.then190, %cond.true179, %if.then170 br i1 undef, label %do.body200, label %do.body283 do.body200: ; preds = %do.end193 br i1 undef, label %do.end254, label %cond.true203 cond.true203: ; preds = %do.body200 br i1 undef, label %do.body218, label %cond.true221 do.body218: ; preds = %cond.true203 br i1 undef, label %do.end254, label %cond.true221 cond.true221: ; preds = %do.body218, %cond.true203 br i1 undef, label %if.then232, label %do.body236 if.then232: ; preds = %cond.true221 br label %do.body236 do.body236: ; preds = %if.then232, %cond.true221 br i1 undef, label %do.end254, label %cond.true239 cond.true239: ; preds = %do.body236 br i1 undef, label %if.then250, label %do.end254 if.then250: ; preds = %cond.true239 br label %do.end254 do.end254: ; preds = %if.then250, %cond.true239, %do.body236, %do.body218, %do.body200 br i1 undef, label %do.end277, label %cond.true263 cond.true263: ; preds = %do.end254 br i1 undef, label %if.then274, label %do.end277 if.then274: ; preds = %cond.true263 unreachable do.end277: ; preds = %cond.true263, %do.end254 br i1 undef, label %if.then280, label %do.body283 if.then280: ; preds = %do.end277 br label %do.body283 do.body283: ; preds = %if.then280, %do.end277, %do.end193 br i1 undef, label %if.end301, label %cond.true286 cond.true286: ; preds = %do.body283 br i1 undef, label %if.then297, label %if.end301 if.then297: ; preds = %cond.true286 br label %if.end301 if.end301: ; preds = %if.then297, %cond.true286, %do.body283 br i1 undef, label %if.then304, label %do.body351 if.then304: ; preds = %if.end301, %do.end166 br i1 undef, label %do.body309.lr.ph, label %do.body351 do.body309.lr.ph: ; preds = %if.then304 br label %do.body309 do.body309: ; preds = %for.cond.backedge, %do.body309.lr.ph br i1 undef, label %do.end328, label %cond.true312 cond.true312: ; preds = %do.body309 br i1 undef, label %if.then323, label %do.end328 if.then323: ; preds = %cond.true312 br label %do.end328 do.end328: ; preds = %if.then323, %cond.true312, %do.body309 br i1 undef, label %for.cond.backedge, label %cond.true335 for.cond.backedge: ; preds = %if.then346, %cond.true335, %do.end328 br i1 undef, label %do.body309, label %do.body351 cond.true335: ; preds = %do.end328 br i1 undef, label %if.then346, label %for.cond.backedge if.then346: ; preds = %cond.true335 br label %for.cond.backedge do.body351: ; preds = %for.cond.backedge, %if.then304, %if.end301 br i1 undef, label %if.then354, label %if.end355 if.then354: ; preds = %do.body351 br label %if.end355 if.end355: ; preds = %if.then354, %do.body351 br i1 undef, label %if.else, label %if.then364 if.then364: ; preds = %if.end355 br label %do.body366 if.else: ; preds = %if.end355 br label %do.body366 do.body366: ; preds = %if.else, %if.then364 br i1 undef, label %if.then369, label %if.end377.critedge if.then369: ; preds = %do.body366 br label %if.end377 if.end377.critedge: ; preds = %do.body366 br label %if.end377 if.end377: ; preds = %if.end377.critedge, %if.then369 br i1 undef, label %if.then383, label %if.end392.critedge if.then383: ; preds = %if.end377 br label %if.end392 if.end392.critedge: ; preds = %if.end377 br label %if.end392 if.end392: ; preds = %if.end392.critedge, %if.then383 br i1 undef, label %if.then398, label %if.end399 if.then398: ; preds = %if.end392 br label %if.end399 if.end399: ; preds = %if.then398, %if.end392 invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*)*)(i8* undef, i8* undef) to label %eh.cont unwind label %lpad, !clang.arc.no_objc_arc_exceptions !0 eh.cont: ; preds = %if.end399 br i1 undef, label %if.then430, label %if.end439.critedge if.then430: ; preds = %eh.cont %1 = call i8* @llvm.objc.retain(i8* %0) br label %if.end439 lpad: ; preds = %if.end399 %2 = landingpad { i8*, i32 } catch i8* @"OBJC_EHTYPE_$_NSException" unreachable if.end439.critedge: ; preds = %eh.cont %3 = call i8* @llvm.objc.retain(i8* %0) br label %if.end439 if.end439: ; preds = %if.end439.critedge, %if.then430 call void @llvm.objc.release(i8* %0), !clang.imprecise_release !0 unreachable return: ; No predecessors! ret void } !0 = !{}