1; RUN: opt -passes=objc-arc -S < %s 2; rdar://12277446 3; rdar://12480535 4; rdar://14590914 5; rdar://15377890 6 7; The total number of paths grows exponentially with the number of branches, and a 8; computation of this number can overflow any reasonable fixed-sized 9; integer. This can occur in both the addition phase when we are adding up the 10; total bottomup/topdown paths and when we multiply them together at the end. 11 12target 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" 13target triple = "thumbv7-apple-ios5.0.0" 14 15%struct.NSConstantString = type { ptr, i32, ptr, i32 } 16%struct.CGPoint = type { float, float } 17 18@_unnamed_cfstring = external constant %struct.NSConstantString, section "__DATA,__cfstring" 19@_unnamed_cfstring_2 = external constant %struct.NSConstantString, section "__DATA,__cfstring" 20 21declare ptr @llvm.objc.retain(ptr) nonlazybind 22declare ptr @llvm.objc.retainAutoreleasedReturnValue(ptr) nonlazybind 23declare void @llvm.objc.release(ptr) nonlazybind 24declare ptr @returner() 25declare ptr @objc_msgSend(ptr, ptr, ...) nonlazybind 26declare void @NSLog(ptr, ...) 27declare void @objc_msgSend_stret(ptr, ptr, ...) 28declare i32 @__gxx_personality_sj0(...) 29declare i32 @__objc_personality_v0(...) 30 31 32define hidden void @test1(i1 %arg) personality ptr @__gxx_personality_sj0 { 33entry: 34 br i1 %arg, label %msgSend.nullinit, label %msgSend.call 35 36msgSend.call: ; preds = %entry 37 br label %msgSend.cont 38 39msgSend.nullinit: ; preds = %entry 40 br label %msgSend.cont 41 42msgSend.cont: ; preds = %msgSend.nullinit, %msgSend.call 43 %0 = call ptr @llvm.objc.retain(ptr @_unnamed_cfstring) nounwind 44 br i1 %arg, label %msgSend.nullinit33, label %msgSend.call32 45 46msgSend.call32: ; preds = %if.end10 47 br label %msgSend.cont34 48 49msgSend.nullinit33: ; preds = %if.end10 50 br label %msgSend.cont34 51 52msgSend.cont34: ; preds = %msgSend.nullinit33, %msgSend.call32 53 br i1 %arg, label %msgSend.nullinit38, label %msgSend.call37 54 55msgSend.call37: ; preds = %msgSend.cont34 56 br label %msgSend.cont39 57 58msgSend.nullinit38: ; preds = %msgSend.cont34 59 br label %msgSend.cont39 60 61msgSend.cont39: ; preds = %msgSend.nullinit38, %msgSend.call37 62 br i1 %arg, label %msgSend.nullinit49, label %msgSend.call48 63 64msgSend.call48: ; preds = %msgSend.cont39 65 br label %msgSend.cont50 66 67msgSend.nullinit49: ; preds = %msgSend.cont39 68 br label %msgSend.cont50 69 70msgSend.cont50: ; preds = %msgSend.nullinit49, %msgSend.call48 71 br i1 %arg, label %msgSend.nullinit61, label %msgSend.call60 72 73msgSend.call60: ; preds = %msgSend.cont50 74 br label %msgSend.cont62 75 76msgSend.nullinit61: ; preds = %msgSend.cont50 77 br label %msgSend.cont62 78 79msgSend.cont62: ; preds = %msgSend.nullinit61, %msgSend.call60 80 br i1 %arg, label %msgSend.nullinit67, label %msgSend.call66 81 82msgSend.call66: ; preds = %msgSend.cont62 83 br label %msgSend.cont68 84 85msgSend.nullinit67: ; preds = %msgSend.cont62 86 br label %msgSend.cont68 87 88msgSend.cont68: ; preds = %msgSend.nullinit67, %msgSend.call66 89 br i1 %arg, label %msgSend.nullinit84, label %msgSend.call83 90 91msgSend.call83: ; preds = %msgSend.cont68 92 br label %msgSend.cont85 93 94msgSend.nullinit84: ; preds = %msgSend.cont68 95 br label %msgSend.cont85 96 97msgSend.cont85: ; preds = %msgSend.nullinit84, %msgSend.call83 98 br i1 %arg, label %msgSend.nullinit90, label %msgSend.call89 99 100msgSend.call89: ; preds = %msgSend.cont85 101 br label %msgSend.cont91 102 103msgSend.nullinit90: ; preds = %msgSend.cont85 104 br label %msgSend.cont91 105 106msgSend.cont91: ; preds = %msgSend.nullinit90, %msgSend.call89 107 br i1 %arg, label %msgSend.nullinit104, label %msgSend.call103 108 109msgSend.call103: ; preds = %msgSend.cont91 110 br label %msgSend.cont105 111 112msgSend.nullinit104: ; preds = %msgSend.cont91 113 br label %msgSend.cont105 114 115msgSend.cont105: ; preds = %msgSend.nullinit104, %msgSend.call103 116 br i1 %arg, label %land.lhs.true, label %if.end123 117 118land.lhs.true: ; preds = %msgSend.cont105 119 br i1 %arg, label %if.then117, label %if.end123 120 121if.then117: ; preds = %land.lhs.true 122 br label %if.end123 123 124if.end123: ; preds = %if.then117, %land.lhs.true, %msgSend.cont105 125 br i1 %arg, label %msgSend.nullinit132, label %msgSend.call131 126 127msgSend.call131: ; preds = %if.end123 128 br label %msgSend.cont133 129 130msgSend.nullinit132: ; preds = %if.end123 131 br label %msgSend.cont133 132 133msgSend.cont133: ; preds = %msgSend.nullinit132, %msgSend.call131 134 br i1 %arg, label %msgSend.nullinit139, label %msgSend.call138 135 136msgSend.call138: ; preds = %msgSend.cont133 137 br label %msgSend.cont140 138 139msgSend.nullinit139: ; preds = %msgSend.cont133 140 br label %msgSend.cont140 141 142msgSend.cont140: ; preds = %msgSend.nullinit139, %msgSend.call138 143 br i1 %arg, label %if.then151, label %if.end157 144 145if.then151: ; preds = %msgSend.cont140 146 br label %if.end157 147 148if.end157: ; preds = %if.then151, %msgSend.cont140 149 br i1 %arg, label %msgSend.nullinit164, label %msgSend.call163 150 151msgSend.call163: ; preds = %if.end157 152 br label %msgSend.cont165 153 154msgSend.nullinit164: ; preds = %if.end157 155 br label %msgSend.cont165 156 157msgSend.cont165: ; preds = %msgSend.nullinit164, %msgSend.call163 158 br i1 %arg, label %msgSend.nullinit176, label %msgSend.call175 159 160msgSend.call175: ; preds = %msgSend.cont165 161 br label %msgSend.cont177 162 163msgSend.nullinit176: ; preds = %msgSend.cont165 164 br label %msgSend.cont177 165 166msgSend.cont177: ; preds = %msgSend.nullinit176, %msgSend.call175 167 br i1 %arg, label %land.lhs.true181, label %if.end202 168 169land.lhs.true181: ; preds = %msgSend.cont177 170 br i1 %arg, label %if.then187, label %if.end202 171 172if.then187: ; preds = %land.lhs.true181 173 br i1 %arg, label %msgSend.nullinit199, label %msgSend.call198 174 175msgSend.call198: ; preds = %if.then187 176 br label %msgSend.cont200 177 178msgSend.nullinit199: ; preds = %if.then187 179 br label %msgSend.cont200 180 181msgSend.cont200: ; preds = %msgSend.nullinit199, %msgSend.call198 182 br label %if.end202 183 184if.end202: ; preds = %msgSend.cont200, %land.lhs.true181, %msgSend.cont177 185 br i1 %arg, label %msgSend.nullinit236, label %msgSend.call235 186 187msgSend.call235: ; preds = %if.end202 188 br label %msgSend.cont237 189 190msgSend.nullinit236: ; preds = %if.end202 191 br label %msgSend.cont237 192 193msgSend.cont237: ; preds = %msgSend.nullinit236, %msgSend.call235 194 br i1 %arg, label %msgSend.nullinit254, label %msgSend.call253 195 196msgSend.call253: ; preds = %msgSend.cont237 197 br label %msgSend.cont255 198 199msgSend.nullinit254: ; preds = %msgSend.cont237 200 br label %msgSend.cont255 201 202msgSend.cont255: ; preds = %msgSend.nullinit254, %msgSend.call253 203 br i1 %arg, label %msgSend.nullinit269, label %msgSend.call268 204 205msgSend.call268: ; preds = %msgSend.cont255 206 br label %msgSend.cont270 207 208msgSend.nullinit269: ; preds = %msgSend.cont255 209 br label %msgSend.cont270 210 211msgSend.cont270: ; preds = %msgSend.nullinit269, %msgSend.call268 212 br i1 %arg, label %msgSend.nullinit281, label %msgSend.call280 213 214msgSend.call280: ; preds = %msgSend.cont270 215 br label %msgSend.cont282 216 217msgSend.nullinit281: ; preds = %msgSend.cont270 218 br label %msgSend.cont282 219 220msgSend.cont282: ; preds = %msgSend.nullinit281, %msgSend.call280 221 br i1 %arg, label %msgSend.nullinit287, label %msgSend.call286 222 223msgSend.call286: ; preds = %msgSend.cont282 224 br label %msgSend.cont288 225 226msgSend.nullinit287: ; preds = %msgSend.cont282 227 br label %msgSend.cont288 228 229msgSend.cont288: ; preds = %msgSend.nullinit287, %msgSend.call286 230 br i1 %arg, label %msgSend.nullinit303, label %msgSend.call302 231 232msgSend.call302: ; preds = %msgSend.cont288 233 br label %msgSend.cont304 234 235msgSend.nullinit303: ; preds = %msgSend.cont288 236 br label %msgSend.cont304 237 238msgSend.cont304: ; preds = %msgSend.nullinit303, %msgSend.call302 239 br i1 %arg, label %msgSend.nullinit344, label %msgSend.call343 240 241msgSend.call343: ; preds = %msgSend.cont304 242 br label %msgSend.cont345 243 244msgSend.nullinit344: ; preds = %msgSend.cont304 245 br label %msgSend.cont345 246 247msgSend.cont345: ; preds = %msgSend.nullinit344, %msgSend.call343 248 br i1 %arg, label %msgSend.nullinit350, label %msgSend.call349 249 250msgSend.call349: ; preds = %msgSend.cont345 251 br label %msgSend.cont351 252 253msgSend.nullinit350: ; preds = %msgSend.cont345 254 br label %msgSend.cont351 255 256msgSend.cont351: ; preds = %msgSend.nullinit350, %msgSend.call349 257 br i1 %arg, label %msgSend.nullinit366, label %msgSend.call365 258 259msgSend.call365: ; preds = %msgSend.cont351 260 br label %msgSend.cont367 261 262msgSend.nullinit366: ; preds = %msgSend.cont351 263 br label %msgSend.cont367 264 265msgSend.cont367: ; preds = %msgSend.nullinit366, %msgSend.call365 266 br i1 %arg, label %msgSend.nullinit376, label %msgSend.call375 267 268msgSend.call375: ; preds = %msgSend.cont367 269 br label %msgSend.cont377 270 271msgSend.nullinit376: ; preds = %msgSend.cont367 272 br label %msgSend.cont377 273 274msgSend.cont377: ; preds = %msgSend.nullinit376, %msgSend.call375 275 br i1 %arg, label %if.then384, label %if.else401 276 277if.then384: ; preds = %msgSend.cont377 278 br i1 %arg, label %msgSend.nullinit392, label %msgSend.call391 279 280msgSend.call391: ; preds = %if.then384 281 br label %msgSend.cont393 282 283msgSend.nullinit392: ; preds = %if.then384 284 br label %msgSend.cont393 285 286msgSend.cont393: ; preds = %msgSend.nullinit392, %msgSend.call391 287 br label %if.end418 288 289if.else401: ; preds = %msgSend.cont377 290 br i1 %arg, label %msgSend.nullinit409, label %msgSend.call408 291 292msgSend.call408: ; preds = %if.else401 293 br label %msgSend.cont410 294 295msgSend.nullinit409: ; preds = %if.else401 296 br label %msgSend.cont410 297 298msgSend.cont410: ; preds = %msgSend.nullinit409, %msgSend.call408 299 br label %if.end418 300 301if.end418: ; preds = %msgSend.cont410, %msgSend.cont393 302 br i1 %arg, label %msgSend.nullinit470, label %msgSend.call469 303 304msgSend.call469: ; preds = %if.end418 305 br label %msgSend.cont471 306 307msgSend.nullinit470: ; preds = %if.end418 308 br label %msgSend.cont471 309 310msgSend.cont471: ; preds = %msgSend.nullinit470, %msgSend.call469 311 br i1 %arg, label %msgSend.nullinit484, label %msgSend.call483 312 313msgSend.call483: ; preds = %msgSend.cont471 314 br label %msgSend.cont485 315 316msgSend.nullinit484: ; preds = %msgSend.cont471 317 br label %msgSend.cont485 318 319msgSend.cont485: ; preds = %msgSend.nullinit484, %msgSend.call483 320 br i1 %arg, label %msgSend.nullinit500, label %msgSend.call499 321 322msgSend.call499: ; preds = %msgSend.cont485 323 br label %msgSend.cont501 324 325msgSend.nullinit500: ; preds = %msgSend.cont485 326 br label %msgSend.cont501 327 328msgSend.cont501: ; preds = %msgSend.nullinit500, %msgSend.call499 329 br i1 %arg, label %msgSend.nullinit506, label %msgSend.call505 330 331msgSend.call505: ; preds = %msgSend.cont501 332 br label %msgSend.cont507 333 334msgSend.nullinit506: ; preds = %msgSend.cont501 335 br label %msgSend.cont507 336 337msgSend.cont507: ; preds = %msgSend.nullinit506, %msgSend.call505 338 call void @llvm.objc.release(ptr @_unnamed_cfstring) nounwind, !clang.imprecise_release !0 339 ret void 340} 341 342; Function Attrs: optsize ssp uwtable 343define void @test2(i1 %arg) unnamed_addr align 2 personality ptr @__gxx_personality_sj0 { 344bb: 345 br i1 %arg, label %bb3, label %bb2 346 347bb2: ; preds = %bb 348 br label %bb3 349 350bb3: ; preds = %bb2, %bb 351 br i1 %arg, label %bb5, label %bb4 352 353bb4: ; preds = %bb3 354 br label %bb5 355 356bb5: ; preds = %bb4, %bb3 357 br i1 %arg, label %bb7, label %bb6 358 359bb6: ; preds = %bb5 360 br label %bb7 361 362bb7: ; preds = %bb6, %bb5 363 br i1 %arg, label %bb9, label %bb8 364 365bb8: ; preds = %bb7 366 unreachable 367 368bb9: ; preds = %bb7 369 br i1 %arg, label %bb11, label %bb10 370 371bb10: ; preds = %bb9 372 br label %bb11 373 374bb11: ; preds = %bb10, %bb9 375 br i1 %arg, label %bb13, label %bb12 376 377bb12: ; preds = %bb11 378 br label %bb13 379 380bb13: ; preds = %bb12, %bb11 381 br i1 %arg, label %bb15, label %bb14 382 383bb14: ; preds = %bb13 384 br label %bb15 385 386bb15: ; preds = %bb14, %bb13 387 br i1 %arg, label %bb17, label %bb16 388 389bb16: ; preds = %bb15 390 br label %bb17 391 392bb17: ; preds = %bb16, %bb15 393 br i1 %arg, label %bb19, label %bb18 394 395bb18: ; preds = %bb17 396 br label %bb19 397 398bb19: ; preds = %bb18, %bb17 399 br i1 %arg, label %bb222, label %bb20 400 401bb20: ; preds = %bb19 402 br i1 %arg, label %bb222, label %bb21 403 404bb21: ; preds = %bb20 405 br i1 %arg, label %bb22, label %bb30 406 407bb22: ; preds = %bb21 408 br i1 %arg, label %bb23, label %bb32 409 410bb23: ; preds = %bb22 411 br i1 %arg, label %bb24, label %bb34 412 413bb24: ; preds = %bb23 414 br i1 %arg, label %bb26, label %bb25 415 416bb25: ; preds = %bb24 417 br label %bb27 418 419bb26: ; preds = %bb24 420 br label %bb27 421 422bb27: ; preds = %bb26, %bb25 423 br i1 %arg, label %bb28, label %bb42 424 425bb28: ; preds = %bb27 426 br i1 %arg, label %bb36, label %bb29 427 428bb29: ; preds = %bb28 429 br label %bb36 430 431bb30: ; preds = %bb210, %bb207, %bb203, %bb199, %bb182, %bb176, %bb174, %bb171, %bb136, %bb132, %bb21 432 br label %bb213 433 434bb32: ; preds = %bb22 435 unreachable 436 437bb34: ; preds = %bb23 438 unreachable 439 440bb36: ; preds = %bb29, %bb28 441 br i1 %arg, label %bb38, label %bb37 442 443bb37: ; preds = %bb36 444 br label %bb39 445 446bb38: ; preds = %bb36 447 br label %bb39 448 449bb39: ; preds = %bb38, %bb37 450 br i1 %arg, label %bb41, label %bb40 451 452bb40: ; preds = %bb39 453 unreachable 454 455bb41: ; preds = %bb39 456 br label %bb42 457 458bb42: ; preds = %bb41, %bb27 459 br i1 %arg, label %bb43, label %bb214 460 461bb43: ; preds = %bb42 462 br i1 %arg, label %bb47, label %bb45 463 464bb45: ; 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 465 unreachable 466 467bb47: ; preds = %bb43 468 br i1 %arg, label %bb48, label %bb106 469 470bb48: ; preds = %bb47 471 br i1 %arg, label %bb50, label %bb49 472 473bb49: ; preds = %bb48 474 br label %bb51 475 476bb50: ; preds = %bb48 477 br label %bb51 478 479bb51: ; preds = %bb50, %bb49 480 br i1 %arg, label %bb53, label %bb45 481 482bb53: ; preds = %bb51 483 br i1 %arg, label %bb54, label %bb134 484 485bb54: ; preds = %bb53 486 br i1 %arg, label %bb55, label %bb45 487 488bb55: ; preds = %bb54 489 br i1 %arg, label %bb57, label %bb56 490 491bb56: ; preds = %bb55 492 br label %bb58 493 494bb57: ; preds = %bb55 495 br label %bb58 496 497bb58: ; preds = %bb57, %bb56 498 br i1 %arg, label %bb60, label %bb45 499 500bb60: ; preds = %bb58 501 br i1 %arg, label %bb61, label %bb45 502 503bb61: ; preds = %bb60 504 br i1 %arg, label %bb63, label %bb62 505 506bb62: ; preds = %bb61 507 br label %bb64 508 509bb63: ; preds = %bb61 510 br label %bb64 511 512bb64: ; preds = %bb63, %bb62 513 br i1 %arg, label %bb66, label %bb45 514 515bb66: ; preds = %bb64 516 br i1 %arg, label %bb67, label %bb45 517 518bb67: ; preds = %bb66 519 br i1 %arg, label %bb69, label %bb68 520 521bb68: ; preds = %bb67 522 br label %bb70 523 524bb69: ; preds = %bb67 525 br label %bb70 526 527bb70: ; preds = %bb69, %bb68 528 br i1 %arg, label %bb72, label %bb45 529 530bb72: ; preds = %bb70 531 br i1 %arg, label %bb73, label %bb45 532 533bb73: ; preds = %bb72 534 br i1 %arg, label %bb75, label %bb74 535 536bb74: ; preds = %bb73 537 br label %bb76 538 539bb75: ; preds = %bb73 540 br label %bb76 541 542bb76: ; preds = %bb75, %bb74 543 br i1 %arg, label %bb78, label %bb45 544 545bb78: ; preds = %bb76 546 br i1 %arg, label %bb79, label %bb45 547 548bb79: ; preds = %bb78 549 br i1 %arg, label %bb81, label %bb80 550 551bb80: ; preds = %bb79 552 br label %bb82 553 554bb81: ; preds = %bb79 555 br label %bb82 556 557bb82: ; preds = %bb81, %bb80 558 br i1 %arg, label %bb84, label %bb45 559 560bb84: ; preds = %bb82 561 br i1 %arg, label %bb85, label %bb45 562 563bb85: ; preds = %bb84 564 br i1 %arg, label %bb87, label %bb86 565 566bb86: ; preds = %bb85 567 br label %bb88 568 569bb87: ; preds = %bb85 570 br label %bb88 571 572bb88: ; preds = %bb87, %bb86 573 br i1 %arg, label %bb90, label %bb45 574 575bb90: ; preds = %bb88 576 br i1 %arg, label %bb91, label %bb45 577 578bb91: ; preds = %bb90 579 br i1 %arg, label %bb93, label %bb92 580 581bb92: ; preds = %bb91 582 br label %bb94 583 584bb93: ; preds = %bb91 585 br label %bb94 586 587bb94: ; preds = %bb93, %bb92 588 br i1 %arg, label %bb96, label %bb45 589 590bb96: ; preds = %bb94 591 br i1 %arg, label %bb97, label %bb45 592 593bb97: ; preds = %bb96 594 br i1 %arg, label %bb99, label %bb98 595 596bb98: ; preds = %bb97 597 br label %bb100 598 599bb99: ; preds = %bb97 600 br label %bb100 601 602bb100: ; preds = %bb99, %bb98 603 br i1 %arg, label %bb102, label %bb45 604 605bb102: ; preds = %bb100 606 br i1 %arg, label %bb104, label %bb45 607 608bb104: ; preds = %bb102 609 br i1 %arg, label %bb108, label %bb105 610 611bb105: ; preds = %bb104 612 br i1 %arg, label %bb108, label %bb45 613 614bb106: ; preds = %bb47 615 unreachable 616 617bb108: ; preds = %bb105, %bb104 618 br i1 %arg, label %bb110, label %bb45 619 620bb110: ; preds = %bb108 621 br i1 %arg, label %bb112, label %bb45 622 623bb112: ; preds = %bb110 624 br i1 %arg, label %bb114, label %bb45 625 626bb114: ; preds = %bb112 627 br i1 %arg, label %bb116, label %bb45 628 629bb116: ; preds = %bb114 630 br i1 %arg, label %bb118, label %bb45 631 632bb118: ; preds = %bb116 633 br i1 %arg, label %bb120, label %bb45 634 635bb120: ; preds = %bb118 636 br i1 %arg, label %bb122, label %bb45 637 638bb122: ; preds = %bb120 639 br i1 %arg, label %bb124, label %bb45 640 641bb124: ; preds = %bb122 642 br i1 %arg, label %bb126, label %bb45 643 644bb126: ; preds = %bb124 645 br i1 %arg, label %bb128, label %bb45 646 647bb128: ; preds = %bb126 648 br i1 %arg, label %bb130, label %bb45 649 650bb130: ; preds = %bb128 651 br i1 %arg, label %bb132, label %bb45 652 653bb132: ; preds = %bb130 654 br i1 %arg, label %bb135, label %bb30 655 656bb134: ; preds = %bb53 657 unreachable 658 659bb135: ; preds = %bb132 660 br i1 %arg, label %bb139, label %bb136 661 662bb136: ; preds = %bb135 663 br i1 %arg, label %bb138, label %bb30 664 665bb138: ; preds = %bb136 666 br label %bb139 667 668bb139: ; preds = %bb138, %bb135 669 br i1 %arg, label %bb140, label %bb141 670 671bb140: ; preds = %bb139 672 unreachable 673 674bb141: ; preds = %bb139 675 br i1 %arg, label %bb142, label %bb215 676 677bb142: ; preds = %bb141 678 br i1 %arg, label %bb144, label %bb143 679 680bb143: ; preds = %bb142 681 br label %bb145 682 683bb144: ; preds = %bb142 684 br label %bb145 685 686bb145: ; preds = %bb144, %bb143 687 br i1 %arg, label %bb146, label %bb151 688 689bb146: ; preds = %bb145 690 br i1 %arg, label %bb148, label %bb153 691 692bb148: ; preds = %bb146 693 br i1 %arg, label %bb155, label %bb149 694 695bb149: ; preds = %bb148 696 br i1 %arg, label %bb150, label %bb153 697 698bb150: ; preds = %bb149 699 br label %bb155 700 701bb151: ; preds = %bb145 702 unreachable 703 704bb153: ; preds = %bb158, %bb149, %bb146 705 unreachable 706 707bb155: ; preds = %bb150, %bb148 708 br i1 %arg, label %bb157, label %bb156 709 710bb156: ; preds = %bb155 711 br label %bb158 712 713bb157: ; preds = %bb155 714 br label %bb158 715 716bb158: ; preds = %bb157, %bb156 717 br i1 %arg, label %bb160, label %bb153 718 719bb160: ; preds = %bb158 720 br i1 %arg, label %bb162, label %bb161 721 722bb161: ; preds = %bb160 723 br label %bb163 724 725bb162: ; preds = %bb160 726 br label %bb163 727 728bb163: ; preds = %bb162, %bb161 729 br i1 %arg, label %bb165, label %bb164 730 731bb164: ; preds = %bb163 732 br label %bb165 733 734bb165: ; preds = %bb164, %bb163 735 br i1 %arg, label %bb170, label %bb166 736 737bb166: ; preds = %bb165 738 br i1 %arg, label %bb167, label %bb168 739 740bb167: ; preds = %bb166 741 unreachable 742 743bb168: ; preds = %bb166 744 unreachable 745 746bb170: ; preds = %bb165 747 br i1 %arg, label %bb215, label %bb171 748 749bb171: ; preds = %bb170 750 br i1 %arg, label %bb173, label %bb30 751 752bb173: ; preds = %bb171 753 br i1 %arg, label %bb174, label %bb215 754 755bb174: ; preds = %bb173 756 br i1 %arg, label %bb176, label %bb30 757 758bb176: ; preds = %bb174 759 br i1 %arg, label %bb178, label %bb30 760 761bb178: ; preds = %bb176 762 br i1 %arg, label %bb179, label %bb193 763 764bb179: ; preds = %bb178 765 br i1 %arg, label %bb181, label %bb180 766 767bb180: ; preds = %bb179 768 br label %bb182 769 770bb181: ; preds = %bb179 771 br label %bb182 772 773bb182: ; preds = %bb181, %bb180 774 br i1 %arg, label %bb184, label %bb30 775 776bb184: ; preds = %bb182 777 %tmp185 = call ptr @returner() 778 br i1 %arg, label %bb186, label %bb195 779 780bb186: ; preds = %bb184 781 %tmp188 = call ptr @llvm.objc.retainAutoreleasedReturnValue(ptr %tmp185) 782 %tmp189 = call ptr @llvm.objc.retain(ptr %tmp188) 783 call void @llvm.objc.release(ptr %tmp189), !clang.imprecise_release !0 784 br i1 %arg, label %bb197, label %bb190 785 786bb190: ; preds = %bb186 787 br i1 %arg, label %bb192, label %bb195 788 789bb192: ; preds = %bb190 790 br i1 %arg, label %bb197, label %bb195 791 792bb193: ; preds = %bb178 793 br label %bb213 794 795bb195: ; preds = %bb192, %bb190, %bb184 796 unreachable 797 798bb197: ; preds = %bb192, %bb186 799 br i1 %arg, label %bb198, label %bb215 800 801bb198: ; preds = %bb197 802 br i1 %arg, label %bb202, label %bb199 803 804bb199: ; preds = %bb198 805 br i1 %arg, label %bb201, label %bb30 806 807bb201: ; preds = %bb199 808 br label %bb202 809 810bb202: ; preds = %bb201, %bb198 811 br i1 %arg, label %bb206, label %bb203 812 813bb203: ; preds = %bb202 814 br i1 %arg, label %bb205, label %bb30 815 816bb205: ; preds = %bb203 817 br label %bb206 818 819bb206: ; preds = %bb205, %bb202 820 br i1 %arg, label %bb210, label %bb207 821 822bb207: ; preds = %bb206 823 br i1 %arg, label %bb209, label %bb30 824 825bb209: ; preds = %bb207 826 br label %bb210 827 828bb210: ; preds = %bb209, %bb206 829 br i1 %arg, label %bb212, label %bb30 830 831bb212: ; preds = %bb210 832 unreachable 833 834bb213: ; preds = %bb193, %bb30 835 resume { ptr, i32 } undef 836 837bb214: ; preds = %bb42 838 br label %bb219 839 840bb215: ; preds = %bb197, %bb173, %bb170, %bb141 841 br i1 %arg, label %bb217, label %bb216 842 843bb216: ; preds = %bb215 844 br label %bb217 845 846bb217: ; preds = %bb216, %bb215 847 br i1 %arg, label %bb219, label %bb218 848 849bb218: ; preds = %bb217 850 br label %bb219 851 852bb219: ; preds = %bb218, %bb217, %bb214 853 br i1 %arg, label %bb221, label %bb220 854 855bb220: ; preds = %bb219 856 unreachable 857 858bb221: ; preds = %bb219 859 unreachable 860 861bb222: ; preds = %bb20, %bb19 862 ret void 863} 864 865; Function Attrs: ssp 866define void @test3(i1 %arg) #1 personality ptr @__gxx_personality_sj0 { 867entry: 868 %call2 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 869 to label %invoke.cont unwind label %lpad 870 871invoke.cont: ; preds = %entry 872 %call5 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef) 873 to label %invoke.cont4 unwind label %lpad3 874 875invoke.cont4: ; preds = %invoke.cont 876 br i1 %arg, label %land.end, label %land.rhs 877 878land.rhs: ; preds = %invoke.cont4 879 %call7 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 880 to label %land.end unwind label %lpad3 881 882land.end: ; preds = %land.rhs, %invoke.cont4 883 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 884 to label %invoke.cont.i unwind label %lpad.i 885 886invoke.cont.i: ; preds = %land.end 887 br i1 %arg, label %invoke.cont8, label %if.then.i 888 889if.then.i: ; preds = %invoke.cont.i 890 br label %invoke.cont8 891 892lpad.i: ; preds = %land.end 893 %tmp13 = landingpad { ptr, i32 } 894 cleanup 895 unreachable 896 897invoke.cont8: ; preds = %if.then.i, %invoke.cont.i 898 %call18 = invoke ptr (ptr, ptr, ptr, ...) @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef) 899 to label %invoke.cont17 unwind label %lpad16 900 901invoke.cont17: ; preds = %invoke.cont8 902 %call22 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 903 to label %invoke.cont21 unwind label %lpad20 904 905invoke.cont21: ; preds = %invoke.cont17 906 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 907 to label %invoke.cont.i1980 unwind label %lpad.i1982 908 909invoke.cont.i1980: ; preds = %invoke.cont21 910 br i1 %arg, label %invoke.cont24, label %if.then.i1981 911 912if.then.i1981: ; preds = %invoke.cont.i1980 913 br label %invoke.cont24 914 915lpad.i1982: ; preds = %invoke.cont21 916 %tmp28 = landingpad { ptr, i32 } 917 cleanup 918 unreachable 919 920invoke.cont24: ; preds = %if.then.i1981, %invoke.cont.i1980 921 %call37 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef) 922 to label %invoke.cont36 unwind label %lpad35 923 924invoke.cont36: ; preds = %invoke.cont24 925 br i1 %arg, label %land.end43, label %land.rhs39 926 927land.rhs39: ; preds = %invoke.cont36 928 %call41 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 929 to label %land.end43 unwind label %lpad35 930 931land.end43: ; preds = %land.rhs39, %invoke.cont36 932 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 933 to label %invoke.cont.i1986 unwind label %lpad.i1988 934 935invoke.cont.i1986: ; preds = %land.end43 936 br i1 %arg, label %invoke.cont44, label %if.then.i1987 937 938if.then.i1987: ; preds = %invoke.cont.i1986 939 br label %invoke.cont44 940 941lpad.i1988: ; preds = %land.end43 942 %tmp42 = landingpad { ptr, i32 } 943 cleanup 944 unreachable 945 946invoke.cont44: ; preds = %if.then.i1987, %invoke.cont.i1986 947 %call53 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 948 to label %invoke.cont52 unwind label %lpad51 949 950invoke.cont52: ; preds = %invoke.cont44 951 br i1 %arg, label %land.end70, label %land.rhs58 952 953land.rhs58: ; preds = %invoke.cont52 954 %call63 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42) 955 to label %invoke.cont62 unwind label %lpad61 956 957invoke.cont62: ; preds = %land.rhs58 958 %call68 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr undef) 959 to label %land.end70 unwind label %lpad66.body.thread 960 961land.end70: ; preds = %invoke.cont62, %invoke.cont52 962 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 963 to label %invoke.cont.i1992 unwind label %lpad66.body 964 965invoke.cont.i1992: ; preds = %land.end70 966 br i1 %arg, label %invoke.cont71, label %if.then.i1993 967 968if.then.i1993: ; preds = %invoke.cont.i1992 969 br label %invoke.cont71 970 971invoke.cont71: ; preds = %if.then.i1993, %invoke.cont.i1992 972 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 973 to label %invoke.cont.i1998 unwind label %lpad.i2000 974 975invoke.cont.i1998: ; preds = %invoke.cont71 976 br i1 %arg, label %invoke.cont91, label %if.then.i1999 977 978if.then.i1999: ; preds = %invoke.cont.i1998 979 br label %invoke.cont91 980 981lpad.i2000: ; preds = %invoke.cont71 982 %tmp74 = landingpad { ptr, i32 } 983 cleanup 984 br label %ehcleanup102 985 986invoke.cont91: ; preds = %if.then.i1999, %invoke.cont.i1998 987 %call96 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 988 to label %invoke.cont95 unwind label %lpad94 989 990invoke.cont95: ; preds = %invoke.cont91 991 %call98 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr %call96) 992 to label %invoke.cont97 unwind label %lpad94 993 994invoke.cont97: ; preds = %invoke.cont95 995 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 996 to label %invoke.cont.i2004 unwind label %lpad.i2006 997 998invoke.cont.i2004: ; preds = %invoke.cont97 999 br i1 %arg, label %invoke.cont100, label %if.then.i2005 1000 1001if.then.i2005: ; preds = %invoke.cont.i2004 1002 br label %invoke.cont100 1003 1004lpad.i2006: ; preds = %invoke.cont97 1005 %tmp82 = landingpad { ptr, i32 } 1006 cleanup 1007 unreachable 1008 1009invoke.cont100: ; preds = %if.then.i2005, %invoke.cont.i2004 1010 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1011 to label %invoke.cont110 unwind label %lpad109 1012 1013invoke.cont110: ; preds = %invoke.cont100 1014 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1015 to label %invoke.cont.i2010 unwind label %lpad.i2012 1016 1017invoke.cont.i2010: ; preds = %invoke.cont110 1018 br i1 %arg, label %invoke.cont117, label %if.then.i2011 1019 1020if.then.i2011: ; preds = %invoke.cont.i2010 1021 br label %invoke.cont117 1022 1023lpad.i2012: ; preds = %invoke.cont110 1024 %tmp98 = landingpad { ptr, i32 } 1025 cleanup 1026 unreachable 1027 1028invoke.cont117: ; preds = %if.then.i2011, %invoke.cont.i2010 1029 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1030 to label %invoke.cont.i2022 unwind label %lpad156.body 1031 1032lpad: ; preds = %entry 1033 %tmp118 = landingpad { ptr, i32 } 1034 cleanup 1035 br label %ehcleanup 1036 1037lpad3: ; preds = %land.rhs, %invoke.cont 1038 %tmp119 = landingpad { ptr, i32 } 1039 cleanup 1040 br label %ehcleanup 1041 1042ehcleanup: ; preds = %lpad3, %lpad 1043 unreachable 1044 1045lpad16: ; preds = %invoke.cont8 1046 %tmp121 = landingpad { ptr, i32 } 1047 cleanup 1048 br label %ehcleanup26 1049 1050lpad20: ; preds = %invoke.cont17 1051 %tmp122 = landingpad { ptr, i32 } 1052 cleanup 1053 br label %ehcleanup26 1054 1055ehcleanup26: ; preds = %lpad20, %lpad16 1056 unreachable 1057 1058lpad35: ; preds = %land.rhs39, %invoke.cont24 1059 %tmp124 = landingpad { ptr, i32 } 1060 cleanup 1061 unreachable 1062 1063lpad51: ; preds = %invoke.cont44 1064 %tmp125 = landingpad { ptr, i32 } 1065 cleanup 1066 unreachable 1067 1068lpad61: ; preds = %land.rhs58 1069 %tmp127 = landingpad { ptr, i32 } 1070 cleanup 1071 unreachable 1072 1073lpad66.body.thread: ; preds = %invoke.cont62 1074 %tmp128 = landingpad { ptr, i32 } 1075 cleanup 1076 unreachable 1077 1078lpad66.body: ; preds = %land.end70 1079 %tmp129 = landingpad { ptr, i32 } 1080 cleanup 1081 unreachable 1082 1083lpad94: ; preds = %invoke.cont95, %invoke.cont91 1084 %tmp133 = landingpad { ptr, i32 } 1085 cleanup 1086 br label %ehcleanup102 1087 1088ehcleanup102: ; preds = %lpad94, %lpad.i2000 1089 unreachable 1090 1091lpad109: ; preds = %invoke.cont100 1092 %tmp134 = landingpad { ptr, i32 } 1093 cleanup 1094 unreachable 1095 1096invoke.cont.i2022: ; preds = %invoke.cont117 1097 br i1 %arg, label %invoke.cont157, label %if.then.i2023 1098 1099if.then.i2023: ; preds = %invoke.cont.i2022 1100 br label %invoke.cont157 1101 1102invoke.cont157: ; preds = %if.then.i2023, %invoke.cont.i2022 1103 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1104 to label %invoke.cont.i2028 unwind label %lpad164.body 1105 1106invoke.cont.i2028: ; preds = %invoke.cont157 1107 br i1 %arg, label %invoke.cont165, label %if.then.i2029 1108 1109if.then.i2029: ; preds = %invoke.cont.i2028 1110 br label %invoke.cont165 1111 1112invoke.cont165: ; preds = %if.then.i2029, %invoke.cont.i2028 1113 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef) 1114 to label %invoke.cont184 unwind label %lpad183 1115 1116invoke.cont184: ; preds = %invoke.cont165 1117 %call186 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1118 to label %invoke.cont185 unwind label %lpad183 1119 1120invoke.cont185: ; preds = %invoke.cont184 1121 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1122 to label %invoke.cont.i2034 unwind label %lpad.i2036 1123 1124invoke.cont.i2034: ; preds = %invoke.cont185 1125 br i1 %arg, label %invoke.cont190, label %if.then.i2035 1126 1127if.then.i2035: ; preds = %invoke.cont.i2034 1128 br label %invoke.cont190 1129 1130lpad.i2036: ; preds = %invoke.cont185 1131 %tmp168 = landingpad { ptr, i32 } 1132 cleanup 1133 br label %lpad183.body 1134 1135invoke.cont190: ; preds = %if.then.i2035, %invoke.cont.i2034 1136 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1137 to label %invoke.cont197 unwind label %lpad196 1138 1139invoke.cont197: ; preds = %invoke.cont190 1140 %call202 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1141 to label %invoke.cont201 unwind label %lpad200 1142 1143invoke.cont201: ; preds = %invoke.cont197 1144 %call205 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1145 to label %invoke.cont204 unwind label %lpad203 1146 1147invoke.cont204: ; preds = %invoke.cont201 1148 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1149 to label %invoke.cont.i2040 unwind label %lpad.i2042 1150 1151invoke.cont.i2040: ; preds = %invoke.cont204 1152 br i1 %arg, label %invoke.cont207, label %if.then.i2041 1153 1154if.then.i2041: ; preds = %invoke.cont.i2040 1155 br label %invoke.cont207 1156 1157lpad.i2042: ; preds = %invoke.cont204 1158 %tmp181 = landingpad { ptr, i32 } 1159 cleanup 1160 unreachable 1161 1162invoke.cont207: ; preds = %if.then.i2041, %invoke.cont.i2040 1163 %call209 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1164 to label %invoke.cont208 unwind label %lpad203 1165 1166invoke.cont208: ; preds = %invoke.cont207 1167 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1168 to label %invoke.cont.i2046 unwind label %lpad212.body 1169 1170invoke.cont.i2046: ; preds = %invoke.cont208 1171 br i1 %arg, label %invoke.cont213, label %if.then.i2047 1172 1173if.then.i2047: ; preds = %invoke.cont.i2046 1174 br label %invoke.cont213 1175 1176invoke.cont213: ; preds = %if.then.i2047, %invoke.cont.i2046 1177 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1178 to label %invoke.cont221 unwind label %lpad220 1179 1180invoke.cont221: ; preds = %invoke.cont213 1181 %call229 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1182 to label %invoke.cont228 unwind label %lpad227 1183 1184invoke.cont228: ; preds = %invoke.cont221 1185 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1186 to label %invoke.cont.i2052 unwind label %lpad.i2054 1187 1188invoke.cont.i2052: ; preds = %invoke.cont228 1189 br i1 %arg, label %invoke.cont231, label %if.then.i2053 1190 1191if.then.i2053: ; preds = %invoke.cont.i2052 1192 br label %invoke.cont231 1193 1194lpad.i2054: ; preds = %invoke.cont228 1195 %tmp198 = landingpad { ptr, i32 } 1196 cleanup 1197 unreachable 1198 1199invoke.cont231: ; preds = %if.then.i2053, %invoke.cont.i2052 1200 %call233 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1201 to label %invoke.cont232 unwind label %lpad227 1202 1203invoke.cont232: ; preds = %invoke.cont231 1204 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1205 to label %invoke.cont.i2058 unwind label %lpad236.body 1206 1207invoke.cont.i2058: ; preds = %invoke.cont232 1208 br i1 %arg, label %invoke.cont237, label %if.then.i2059 1209 1210if.then.i2059: ; preds = %invoke.cont.i2058 1211 br label %invoke.cont237 1212 1213invoke.cont237: ; preds = %if.then.i2059, %invoke.cont.i2058 1214 %call246 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1215 to label %invoke.cont245 unwind label %lpad244 1216 1217invoke.cont245: ; preds = %invoke.cont237 1218 %call248 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 13) 1219 to label %invoke.cont247 unwind label %lpad244 1220 1221invoke.cont247: ; preds = %invoke.cont245 1222 %call251 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 2) 1223 to label %invoke.cont250 unwind label %lpad249 1224 1225invoke.cont250: ; preds = %invoke.cont247 1226 %call254 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 7) 1227 to label %invoke.cont253 unwind label %lpad252 1228 1229invoke.cont253: ; preds = %invoke.cont250 1230 %call257 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 3) 1231 to label %invoke.cont256 unwind label %lpad255 1232 1233invoke.cont256: ; preds = %invoke.cont253 1234 %call260 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr undef) 1235 to label %invoke.cont259 unwind label %lpad258 1236 1237invoke.cont259: ; preds = %invoke.cont256 1238 %call267 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1239 to label %invoke.cont266 unwind label %lpad265 1240 1241invoke.cont266: ; preds = %invoke.cont259 1242 %call275 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef) 1243 to label %invoke.cont274 unwind label %lpad273 1244 1245invoke.cont274: ; preds = %invoke.cont266 1246 %call279 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 1247 to label %invoke.cont278 unwind label %lpad277 1248 1249invoke.cont278: ; preds = %invoke.cont274 1250 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1251 to label %invoke.cont.i2064 unwind label %lpad.i2066 1252 1253invoke.cont.i2064: ; preds = %invoke.cont278 1254 br i1 %arg, label %invoke.cont281, label %if.then.i2065 1255 1256if.then.i2065: ; preds = %invoke.cont.i2064 1257 br label %invoke.cont281 1258 1259lpad.i2066: ; preds = %invoke.cont278 1260 %tmp253 = landingpad { ptr, i32 } 1261 cleanup 1262 unreachable 1263 1264invoke.cont281: ; preds = %if.then.i2065, %invoke.cont.i2064 1265 %call291 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1266 to label %invoke.cont290 unwind label %lpad289 1267 1268invoke.cont290: ; preds = %invoke.cont281 1269 %call303 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 8) 1270 to label %invoke.cont302 unwind label %lpad301 1271 1272invoke.cont302: ; preds = %invoke.cont290 1273 %call310 = invoke ptr @objc_msgSend(ptr undef, ptr undef, double 5.000000e-01) 1274 to label %invoke.cont309 unwind label %lpad308 1275 1276invoke.cont309: ; preds = %invoke.cont302 1277 %call313 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42) 1278 to label %invoke.cont312 unwind label %lpad311 1279 1280invoke.cont312: ; preds = %invoke.cont309 1281 %call316 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr undef, i32 2) 1282 to label %invoke.cont315 unwind label %lpad314 1283 1284invoke.cont315: ; preds = %invoke.cont312 1285 %call322 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef) 1286 to label %invoke.cont321 unwind label %lpad320 1287 1288invoke.cont321: ; preds = %invoke.cont315 1289 br i1 %arg, label %land.end344, label %land.rhs335 1290 1291land.rhs335: ; preds = %invoke.cont321 1292 %call342 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1293 to label %land.end344 unwind label %lpad340.body.thread 1294 1295land.end344: ; preds = %land.rhs335, %invoke.cont321 1296 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1297 to label %invoke.cont.i2070 unwind label %lpad340.body 1298 1299invoke.cont.i2070: ; preds = %land.end344 1300 br i1 %arg, label %invoke.cont345, label %if.then.i2071 1301 1302if.then.i2071: ; preds = %invoke.cont.i2070 1303 br label %invoke.cont345 1304 1305invoke.cont345: ; preds = %if.then.i2071, %invoke.cont.i2070 1306 %call362 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef) 1307 to label %invoke.cont361 unwind label %lpad360 1308 1309invoke.cont361: ; preds = %invoke.cont345 1310 %call365 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1311 to label %invoke.cont364 unwind label %lpad363 1312 1313invoke.cont364: ; preds = %invoke.cont361 1314 %call371 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 1315 to label %invoke.cont370 unwind label %lpad369 1316 1317invoke.cont370: ; preds = %invoke.cont364 1318 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1319 to label %invoke.cont.i2076 unwind label %lpad.i2078 1320 1321invoke.cont.i2076: ; preds = %invoke.cont370 1322 br i1 %arg, label %invoke.cont373, label %if.then.i2077 1323 1324if.then.i2077: ; preds = %invoke.cont.i2076 1325 br label %invoke.cont373 1326 1327lpad.i2078: ; preds = %invoke.cont370 1328 %tmp340 = landingpad { ptr, i32 } 1329 cleanup 1330 unreachable 1331 1332invoke.cont373: ; preds = %if.then.i2077, %invoke.cont.i2076 1333 %call377 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42, ptr undef) 1334 to label %invoke.cont376 unwind label %lpad363 1335 1336invoke.cont376: ; preds = %invoke.cont373 1337 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 5) 1338 to label %invoke.cont382 unwind label %lpad381 1339 1340invoke.cont382: ; preds = %invoke.cont376 1341 %call384 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1342 to label %invoke.cont383 unwind label %lpad381 1343 1344invoke.cont383: ; preds = %invoke.cont382 1345 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1346 to label %invoke.cont.i2082 unwind label %lpad.i2084 1347 1348invoke.cont.i2082: ; preds = %invoke.cont383 1349 br i1 %arg, label %invoke.cont392, label %if.then.i2083 1350 1351if.then.i2083: ; preds = %invoke.cont.i2082 1352 br label %invoke.cont392 1353 1354lpad.i2084: ; preds = %invoke.cont383 1355 %tmp360 = landingpad { ptr, i32 } 1356 cleanup 1357 unreachable 1358 1359invoke.cont392: ; preds = %if.then.i2083, %invoke.cont.i2082 1360 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 -2) 1361 to label %invoke.cont395 unwind label %lpad381 1362 1363invoke.cont395: ; preds = %invoke.cont392 1364 %call397 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1365 to label %invoke.cont396 unwind label %lpad381 1366 1367invoke.cont396: ; preds = %invoke.cont395 1368 %call400 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1369 to label %invoke.cont399 unwind label %lpad398 1370 1371invoke.cont399: ; preds = %invoke.cont396 1372 %call403 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 1373 to label %invoke.cont402 unwind label %lpad401 1374 1375invoke.cont402: ; preds = %invoke.cont399 1376 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1377 to label %invoke.cont.i2088 unwind label %lpad.i2090 1378 1379invoke.cont.i2088: ; preds = %invoke.cont402 1380 br i1 %arg, label %invoke.cont405, label %if.then.i2089 1381 1382if.then.i2089: ; preds = %invoke.cont.i2088 1383 br label %invoke.cont405 1384 1385lpad.i2090: ; preds = %invoke.cont402 1386 %tmp370 = landingpad { ptr, i32 } 1387 cleanup 1388 unreachable 1389 1390invoke.cont405: ; preds = %if.then.i2089, %invoke.cont.i2088 1391 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 -1) 1392 to label %invoke.cont408 unwind label %lpad381 1393 1394invoke.cont408: ; preds = %invoke.cont405 1395 %call410 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1396 to label %invoke.cont409 unwind label %lpad381 1397 1398invoke.cont409: ; preds = %invoke.cont408 1399 %call413 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1400 to label %invoke.cont412 unwind label %lpad411 1401 1402invoke.cont412: ; preds = %invoke.cont409 1403 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1404 to label %invoke.cont.i2094 unwind label %lpad.i2096 1405 1406invoke.cont.i2094: ; preds = %invoke.cont412 1407 br i1 %arg, label %invoke.cont418, label %if.then.i2095 1408 1409if.then.i2095: ; preds = %invoke.cont.i2094 1410 br label %invoke.cont418 1411 1412lpad.i2096: ; preds = %invoke.cont412 1413 %tmp380 = landingpad { ptr, i32 } 1414 cleanup 1415 unreachable 1416 1417invoke.cont418: ; preds = %if.then.i2095, %invoke.cont.i2094 1418 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 0) 1419 to label %invoke.cont422 unwind label %lpad381 1420 1421invoke.cont422: ; preds = %invoke.cont418 1422 %call424 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1423 to label %invoke.cont423 unwind label %lpad381 1424 1425invoke.cont423: ; preds = %invoke.cont422 1426 %call427 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1427 to label %invoke.cont426 unwind label %lpad425 1428 1429invoke.cont426: ; preds = %invoke.cont423 1430 %call430 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 1431 to label %invoke.cont429 unwind label %lpad428 1432 1433invoke.cont429: ; preds = %invoke.cont426 1434 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1435 to label %invoke.cont.i2100 unwind label %lpad.i2102 1436 1437invoke.cont.i2100: ; preds = %invoke.cont429 1438 br i1 %arg, label %invoke.cont432, label %if.then.i2101 1439 1440if.then.i2101: ; preds = %invoke.cont.i2100 1441 br label %invoke.cont432 1442 1443lpad.i2102: ; preds = %invoke.cont429 1444 %tmp390 = landingpad { ptr, i32 } 1445 cleanup 1446 unreachable 1447 1448invoke.cont432: ; preds = %if.then.i2101, %invoke.cont.i2100 1449 %call436 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 0) 1450 to label %invoke.cont435 unwind label %lpad381 1451 1452invoke.cont435: ; preds = %invoke.cont432 1453 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1454 to label %invoke.cont.i2106 unwind label %lpad.i2108 1455 1456invoke.cont.i2106: ; preds = %invoke.cont435 1457 %call444 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 5) 1458 to label %invoke.cont443 unwind label %lpad381 1459 1460lpad.i2108: ; preds = %invoke.cont435 1461 %tmp396 = landingpad { ptr, i32 } 1462 cleanup 1463 unreachable 1464 1465invoke.cont443: ; preds = %invoke.cont.i2106 1466 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1467 to label %invoke.cont.i2112 unwind label %lpad.i2114 1468 1469invoke.cont.i2112: ; preds = %invoke.cont443 1470 br i1 %arg, label %invoke.cont449, label %if.then.i2113 1471 1472if.then.i2113: ; preds = %invoke.cont.i2112 1473 br label %invoke.cont449 1474 1475lpad.i2114: ; preds = %invoke.cont443 1476 %tmp402 = landingpad { ptr, i32 } 1477 cleanup 1478 unreachable 1479 1480invoke.cont449: ; preds = %if.then.i2113, %invoke.cont.i2112 1481 %call453 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 -2) 1482 to label %invoke.cont452 unwind label %lpad381 1483 1484invoke.cont452: ; preds = %invoke.cont449 1485 %call456 = invoke i32 @objc_msgSend(ptr undef, ptr undef) 1486 to label %invoke.cont455 unwind label %lpad454 1487 1488invoke.cont455: ; preds = %invoke.cont452 1489 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1490 to label %invoke.cont.i2118 unwind label %lpad.i2120 1491 1492invoke.cont.i2118: ; preds = %invoke.cont455 1493 br i1 %arg, label %invoke.cont458, label %if.then.i2119 1494 1495if.then.i2119: ; preds = %invoke.cont.i2118 1496 br label %invoke.cont458 1497 1498lpad.i2120: ; preds = %invoke.cont455 1499 %tmp408 = landingpad { ptr, i32 } 1500 cleanup 1501 unreachable 1502 1503invoke.cont458: ; preds = %if.then.i2119, %invoke.cont.i2118 1504 %call461 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 -1) 1505 to label %invoke.cont460 unwind label %lpad381 1506 1507invoke.cont460: ; preds = %invoke.cont458 1508 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1509 to label %invoke.cont.i2124 unwind label %lpad.i2126 1510 1511invoke.cont.i2124: ; preds = %invoke.cont460 1512 br i1 %arg, label %invoke.cont466, label %if.then.i2125 1513 1514if.then.i2125: ; preds = %invoke.cont.i2124 1515 br label %invoke.cont466 1516 1517lpad.i2126: ; preds = %invoke.cont460 1518 %tmp414 = landingpad { ptr, i32 } 1519 cleanup 1520 br label %ehcleanup477 1521 1522invoke.cont466: ; preds = %if.then.i2125, %invoke.cont.i2124 1523 %call470 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 0) 1524 to label %invoke.cont469 unwind label %lpad381 1525 1526invoke.cont469: ; preds = %invoke.cont466 1527 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1528 to label %invoke.cont.i2130 unwind label %lpad.i2132 1529 1530invoke.cont.i2130: ; preds = %invoke.cont469 1531 br i1 %arg, label %invoke.cont475, label %if.then.i2131 1532 1533if.then.i2131: ; preds = %invoke.cont.i2130 1534 br label %invoke.cont475 1535 1536lpad.i2132: ; preds = %invoke.cont469 1537 %tmp420 = landingpad { ptr, i32 } 1538 cleanup 1539 br label %ehcleanup477 1540 1541invoke.cont475: ; preds = %if.then.i2131, %invoke.cont.i2130 1542 %call491 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 1) 1543 to label %invoke.cont490 unwind label %lpad489 1544 1545invoke.cont490: ; preds = %invoke.cont475 1546 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1547 to label %invoke.cont499 unwind label %lpad498 1548 1549invoke.cont499: ; preds = %invoke.cont490 1550 %call504 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1551 to label %invoke.cont503 unwind label %lpad489 1552 1553invoke.cont503: ; preds = %invoke.cont499 1554 %call507 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 3) 1555 to label %invoke.cont506 unwind label %lpad505 1556 1557invoke.cont506: ; preds = %invoke.cont503 1558 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1559 to label %invoke.cont509 unwind label %lpad508 1560 1561invoke.cont509: ; preds = %invoke.cont506 1562 %call513 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1563 to label %invoke.cont512 unwind label %lpad489 1564 1565invoke.cont512: ; preds = %invoke.cont509 1566 br i1 %arg, label %msgSend.null-receiver, label %msgSend.call 1567 1568msgSend.call: ; preds = %invoke.cont512 1569 invoke void @objc_msgSend_stret(ptr sret(%struct.CGPoint) undef, ptr undef, ptr undef) 1570 to label %msgSend.cont unwind label %lpad514 1571 1572msgSend.null-receiver: ; preds = %invoke.cont512 1573 br label %msgSend.cont 1574 1575msgSend.cont: ; preds = %msgSend.null-receiver, %msgSend.call 1576 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1577 to label %invoke.cont.i2136 unwind label %lpad.i2138 1578 1579invoke.cont.i2136: ; preds = %msgSend.cont 1580 br i1 %arg, label %invoke.cont521, label %if.then.i2137 1581 1582if.then.i2137: ; preds = %invoke.cont.i2136 1583 br label %invoke.cont521 1584 1585lpad.i2138: ; preds = %msgSend.cont 1586 %tmp468 = landingpad { ptr, i32 } 1587 cleanup 1588 unreachable 1589 1590invoke.cont521: ; preds = %if.then.i2137, %invoke.cont.i2136 1591 invoke void @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef) 1592 to label %invoke.cont528 unwind label %lpad527 1593 1594invoke.cont528: ; preds = %invoke.cont521 1595 %call532 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1596 to label %invoke.cont531 unwind label %lpad489 1597 1598invoke.cont531: ; preds = %invoke.cont528 1599 %call535 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1600 to label %invoke.cont534 unwind label %lpad533 1601 1602invoke.cont534: ; preds = %invoke.cont531 1603 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring) 1604 to label %invoke.cont.i2142 unwind label %lpad.i2144 1605 1606invoke.cont.i2142: ; preds = %invoke.cont534 1607 br i1 %arg, label %invoke.cont540, label %if.then.i2143 1608 1609if.then.i2143: ; preds = %invoke.cont.i2142 1610 br label %invoke.cont540 1611 1612lpad.i2144: ; preds = %invoke.cont534 1613 %tmp486 = landingpad { ptr, i32 } 1614 cleanup 1615 unreachable 1616 1617invoke.cont540: ; preds = %if.then.i2143, %invoke.cont.i2142 1618 %call544 = invoke ptr @objc_msgSend(ptr @_unnamed_cfstring, ptr undef, i32 3) 1619 to label %invoke.cont543 unwind label %lpad489 1620 1621invoke.cont543: ; preds = %invoke.cont540 1622 invoke void @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef) 1623 to label %invoke.cont546 unwind label %lpad545 1624 1625invoke.cont546: ; preds = %invoke.cont543 1626 %call549 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1627 to label %invoke.cont548 unwind label %lpad489 1628 1629invoke.cont548: ; preds = %invoke.cont546 1630 %call555 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring) 1631 to label %invoke.cont554 unwind label %lpad553 1632 1633invoke.cont554: ; preds = %invoke.cont548 1634 %tmp499 = call ptr @llvm.objc.retain(ptr @_unnamed_cfstring) #3 1635 invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr %tmp499, ptr @_unnamed_cfstring) 1636 to label %invoke.cont.i2148 unwind label %lpad.i2150 1637 1638invoke.cont.i2148: ; preds = %invoke.cont554 1639 call void @llvm.objc.release(ptr %tmp499) #3, !clang.imprecise_release !0 1640 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1641 to label %invoke.cont566 unwind label %lpad565 1642 1643lpad.i2150: ; preds = %invoke.cont554 1644 %tmp500 = landingpad { ptr, i32 } 1645 cleanup 1646 call void @llvm.objc.release(ptr %tmp499) #3, !clang.imprecise_release !0 1647 unreachable 1648 1649invoke.cont566: ; preds = %invoke.cont.i2148 1650 invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring) 1651 to label %invoke.cont572 unwind label %lpad571 1652 1653invoke.cont572: ; preds = %invoke.cont566 1654 %call582 = invoke ptr @objc_msgSend(ptr undef, ptr undef) 1655 to label %invoke.cont581 unwind label %lpad580 1656 1657invoke.cont581: ; preds = %invoke.cont572 1658 unreachable 1659 1660lpad156.body: ; preds = %invoke.cont117 1661 %tmp1157 = landingpad { ptr, i32 } 1662 cleanup 1663 unreachable 1664 1665lpad164.body: ; preds = %invoke.cont157 1666 %tmp1158 = landingpad { ptr, i32 } 1667 cleanup 1668 unreachable 1669 1670lpad183: ; preds = %invoke.cont184, %invoke.cont165 1671 %tmp1159 = landingpad { ptr, i32 } 1672 cleanup 1673 br label %lpad183.body 1674 1675lpad183.body: ; preds = %lpad183, %lpad.i2036 1676 unreachable 1677 1678lpad196: ; preds = %invoke.cont190 1679 %tmp1160 = landingpad { ptr, i32 } 1680 cleanup 1681 unreachable 1682 1683lpad200: ; preds = %invoke.cont197 1684 %tmp1161 = landingpad { ptr, i32 } 1685 cleanup 1686 unreachable 1687 1688lpad203: ; preds = %invoke.cont207, %invoke.cont201 1689 %tmp1162 = landingpad { ptr, i32 } 1690 cleanup 1691 unreachable 1692 1693lpad212.body: ; preds = %invoke.cont208 1694 %tmp1163 = landingpad { ptr, i32 } 1695 cleanup 1696 unreachable 1697 1698lpad220: ; preds = %invoke.cont213 1699 %tmp1164 = landingpad { ptr, i32 } 1700 cleanup 1701 br label %eh.resume 1702 1703lpad227: ; preds = %invoke.cont231, %invoke.cont221 1704 %tmp1166 = landingpad { ptr, i32 } 1705 cleanup 1706 br label %ehcleanup239 1707 1708lpad236.body: ; preds = %invoke.cont232 1709 %tmp1167 = landingpad { ptr, i32 } 1710 cleanup 1711 br label %ehcleanup239 1712 1713ehcleanup239: ; preds = %lpad236.body, %lpad227 1714 unreachable 1715 1716lpad244: ; preds = %invoke.cont245, %invoke.cont237 1717 %tmp1168 = landingpad { ptr, i32 } 1718 cleanup 1719 unreachable 1720 1721lpad249: ; preds = %invoke.cont247 1722 %tmp1169 = landingpad { ptr, i32 } 1723 cleanup 1724 unreachable 1725 1726lpad252: ; preds = %invoke.cont250 1727 %tmp1170 = landingpad { ptr, i32 } 1728 cleanup 1729 br label %ehcleanup263 1730 1731lpad255: ; preds = %invoke.cont253 1732 %tmp1171 = landingpad { ptr, i32 } 1733 cleanup 1734 br label %ehcleanup263 1735 1736lpad258: ; preds = %invoke.cont256 1737 %tmp1172 = landingpad { ptr, i32 } 1738 cleanup 1739 unreachable 1740 1741ehcleanup263: ; preds = %lpad255, %lpad252 1742 unreachable 1743 1744lpad265: ; preds = %invoke.cont259 1745 %tmp1173 = landingpad { ptr, i32 } 1746 cleanup 1747 unreachable 1748 1749lpad273: ; preds = %invoke.cont266 1750 %tmp1175 = landingpad { ptr, i32 } 1751 cleanup 1752 unreachable 1753 1754lpad277: ; preds = %invoke.cont274 1755 %tmp1176 = landingpad { ptr, i32 } 1756 cleanup 1757 unreachable 1758 1759lpad289: ; preds = %invoke.cont281 1760 %tmp1177 = landingpad { ptr, i32 } 1761 cleanup 1762 unreachable 1763 1764lpad301: ; preds = %invoke.cont290 1765 %tmp1180 = landingpad { ptr, i32 } 1766 cleanup 1767 unreachable 1768 1769lpad308: ; preds = %invoke.cont302 1770 %tmp1182 = landingpad { ptr, i32 } 1771 cleanup 1772 unreachable 1773 1774lpad311: ; preds = %invoke.cont309 1775 %tmp1183 = landingpad { ptr, i32 } 1776 cleanup 1777 unreachable 1778 1779lpad314: ; preds = %invoke.cont312 1780 %tmp1184 = landingpad { ptr, i32 } 1781 cleanup 1782 unreachable 1783 1784lpad320: ; preds = %invoke.cont315 1785 %tmp1186 = landingpad { ptr, i32 } 1786 cleanup 1787 unreachable 1788 1789lpad340.body.thread: ; preds = %land.rhs335 1790 %tmp1188 = landingpad { ptr, i32 } 1791 cleanup 1792 unreachable 1793 1794lpad340.body: ; preds = %land.end344 1795 %tmp1189 = landingpad { ptr, i32 } 1796 cleanup 1797 unreachable 1798 1799lpad360: ; preds = %invoke.cont345 1800 %tmp1191 = landingpad { ptr, i32 } 1801 cleanup 1802 br label %eh.resume 1803 1804lpad363: ; preds = %invoke.cont373, %invoke.cont361 1805 %tmp1192 = landingpad { ptr, i32 } 1806 cleanup 1807 unreachable 1808 1809lpad369: ; preds = %invoke.cont364 1810 %tmp1194 = landingpad { ptr, i32 } 1811 cleanup 1812 unreachable 1813 1814lpad381: ; 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 1815 %tmp1196 = landingpad { ptr, i32 } 1816 cleanup 1817 br label %ehcleanup477 1818 1819lpad398: ; preds = %invoke.cont396 1820 %tmp1199 = landingpad { ptr, i32 } 1821 cleanup 1822 unreachable 1823 1824lpad401: ; preds = %invoke.cont399 1825 %tmp1200 = landingpad { ptr, i32 } 1826 cleanup 1827 unreachable 1828 1829lpad411: ; preds = %invoke.cont409 1830 %tmp1201 = landingpad { ptr, i32 } 1831 cleanup 1832 unreachable 1833 1834lpad425: ; preds = %invoke.cont423 1835 %tmp1203 = landingpad { ptr, i32 } 1836 cleanup 1837 br label %ehcleanup477 1838 1839lpad428: ; preds = %invoke.cont426 1840 %tmp1204 = landingpad { ptr, i32 } 1841 cleanup 1842 unreachable 1843 1844lpad454: ; preds = %invoke.cont452 1845 %tmp1207 = landingpad { ptr, i32 } 1846 cleanup 1847 unreachable 1848 1849ehcleanup477: ; preds = %lpad425, %lpad381, %lpad.i2132, %lpad.i2126 1850 unreachable 1851 1852lpad489: ; preds = %invoke.cont546, %invoke.cont540, %invoke.cont528, %invoke.cont509, %invoke.cont499, %invoke.cont475 1853 %tmp1211 = landingpad { ptr, i32 } 1854 cleanup 1855 br label %ehcleanup560 1856 1857lpad498: ; preds = %invoke.cont490 1858 %tmp1214 = landingpad { ptr, i32 } 1859 cleanup 1860 unreachable 1861 1862lpad505: ; preds = %invoke.cont503 1863 %tmp1215 = landingpad { ptr, i32 } 1864 cleanup 1865 unreachable 1866 1867lpad508: ; preds = %invoke.cont506 1868 %tmp1216 = landingpad { ptr, i32 } 1869 cleanup 1870 unreachable 1871 1872lpad514: ; preds = %msgSend.call 1873 %tmp1217 = landingpad { ptr, i32 } 1874 cleanup 1875 unreachable 1876 1877lpad527: ; preds = %invoke.cont521 1878 %tmp1219 = landingpad { ptr, i32 } 1879 cleanup 1880 br label %ehcleanup560 1881 1882lpad533: ; preds = %invoke.cont531 1883 %tmp1220 = landingpad { ptr, i32 } 1884 cleanup 1885 unreachable 1886 1887lpad545: ; preds = %invoke.cont543 1888 %tmp1222 = landingpad { ptr, i32 } 1889 cleanup 1890 unreachable 1891 1892lpad553: ; preds = %invoke.cont548 1893 %tmp1224 = landingpad { ptr, i32 } 1894 cleanup 1895 unreachable 1896 1897ehcleanup560: ; preds = %lpad527, %lpad489 1898 br label %eh.resume 1899 1900lpad565: ; preds = %invoke.cont.i2148 1901 %tmp1225 = landingpad { ptr, i32 } 1902 cleanup 1903 unreachable 1904 1905lpad571: ; preds = %invoke.cont566 1906 %tmp1227 = landingpad { ptr, i32 } 1907 cleanup 1908 unreachable 1909 1910lpad580: ; preds = %invoke.cont572 1911 %tmp1228 = landingpad { ptr, i32 } 1912 cleanup 1913 br label %eh.resume 1914 1915eh.resume: ; preds = %lpad580, %ehcleanup560, %lpad360, %lpad220 1916 resume { ptr, i32 } undef 1917} 1918 1919@"OBJC_EHTYPE_$_NSException" = external global i8 1920 1921define void @test4(i1 %arg) personality ptr @__objc_personality_v0 { 1922entry: 1923 br i1 %arg, label %if.end13, label %if.then10 1924 1925if.then10: ; preds = %entry 1926 br label %if.end13 1927 1928if.end13: ; preds = %if.then10, %entry 1929 %0 = call ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, i64 2, ptr @_unnamed_cfstring_2, i8 signext 0), !clang.arc.no_objc_arc_exceptions !0 1930 br i1 %arg, label %if.then17, label %if.end18 1931 1932if.then17: ; preds = %if.end13 1933 br label %if.end18 1934 1935if.end18: ; preds = %if.then17, %if.end13 1936 br i1 %arg, label %if.then64, label %if.end73 1937 1938if.then64: ; preds = %if.end18 1939 br i1 %arg, label %cond.end71, label %cond.true68 1940 1941cond.true68: ; preds = %if.then64 1942 br label %cond.end71 1943 1944cond.end71: ; preds = %cond.true68, %if.then64 1945 br i1 %arg, label %cleanup.action, label %cleanup.done 1946 1947cleanup.action: ; preds = %cond.end71 1948 br label %cleanup.done 1949 1950cleanup.done: ; preds = %cleanup.action, %cond.end71 1951 br label %if.end73 1952 1953if.end73: ; preds = %cleanup.done, %if.end18 1954 br i1 %arg, label %forcoll.empty, label %forcoll.loopinit 1955 1956forcoll.loopinit: ; preds = %if.end73 1957 br label %forcoll.loopbody.outer 1958 1959forcoll.loopbody.outer: ; preds = %forcoll.refetch, %forcoll.loopinit 1960 br label %forcoll.loopbody 1961 1962forcoll.loopbody: ; preds = %forcoll.notmutated, %forcoll.loopbody.outer 1963 br i1 %arg, label %forcoll.notmutated, label %forcoll.mutated 1964 1965forcoll.mutated: ; preds = %forcoll.loopbody 1966 br label %forcoll.notmutated 1967 1968forcoll.notmutated: ; preds = %forcoll.mutated, %forcoll.loopbody 1969 br i1 %arg, label %forcoll.loopbody, label %forcoll.refetch 1970 1971forcoll.refetch: ; preds = %forcoll.notmutated 1972 br i1 %arg, label %forcoll.empty, label %forcoll.loopbody.outer 1973 1974forcoll.empty: ; preds = %forcoll.refetch, %if.end73 1975 br i1 %arg, label %if.end85, label %if.then82 1976 1977if.then82: ; preds = %forcoll.empty 1978 br label %if.end85 1979 1980if.end85: ; preds = %if.then82, %forcoll.empty 1981 br i1 %arg, label %if.then87, label %if.end102 1982 1983if.then87: ; preds = %if.end85 1984 br i1 %arg, label %if.end94, label %if.then91 1985 1986if.then91: ; preds = %if.then87 1987 br label %if.end94 1988 1989if.end94: ; preds = %if.then91, %if.then87 1990 br i1 %arg, label %if.end101, label %if.then98 1991 1992if.then98: ; preds = %if.end94 1993 br label %if.end101 1994 1995if.end101: ; preds = %if.then98, %if.end94 1996 br label %if.end102 1997 1998if.end102: ; preds = %if.end101, %if.end85 1999 br i1 %arg, label %do.body113, label %if.then107 2000 2001if.then107: ; preds = %if.end102 2002 br label %do.body113 2003 2004do.body113: ; preds = %if.then107, %if.end102 2005 br i1 %arg, label %if.then116, label %if.end117 2006 2007if.then116: ; preds = %do.body113 2008 br label %if.end117 2009 2010if.end117: ; preds = %if.then116, %do.body113 2011 br i1 %arg, label %if.then125, label %if.end126 2012 2013if.then125: ; preds = %if.end117 2014 br label %if.end126 2015 2016if.end126: ; preds = %if.then125, %if.end117 2017 br i1 %arg, label %do.end166, label %cond.true132 2018 2019cond.true132: ; preds = %if.end126 2020 br i1 %arg, label %do.body148, label %cond.true151 2021 2022do.body148: ; preds = %cond.true132 2023 br i1 %arg, label %do.end166, label %cond.true151 2024 2025cond.true151: ; preds = %do.body148, %cond.true132 2026 br i1 %arg, label %if.then162, label %do.end166 2027 2028if.then162: ; preds = %cond.true151 2029 br label %do.end166 2030 2031do.end166: ; preds = %if.then162, %cond.true151, %do.body148, %if.end126 2032 br i1 %arg, label %if.then304, label %if.then170 2033 2034if.then170: ; preds = %do.end166 2035 br i1 %arg, label %do.end193, label %cond.true179 2036 2037cond.true179: ; preds = %if.then170 2038 br i1 %arg, label %if.then190, label %do.end193 2039 2040if.then190: ; preds = %cond.true179 2041 br label %do.end193 2042 2043do.end193: ; preds = %if.then190, %cond.true179, %if.then170 2044 br i1 %arg, label %do.body200, label %do.body283 2045 2046do.body200: ; preds = %do.end193 2047 br i1 %arg, label %do.end254, label %cond.true203 2048 2049cond.true203: ; preds = %do.body200 2050 br i1 %arg, label %do.body218, label %cond.true221 2051 2052do.body218: ; preds = %cond.true203 2053 br i1 %arg, label %do.end254, label %cond.true221 2054 2055cond.true221: ; preds = %do.body218, %cond.true203 2056 br i1 %arg, label %if.then232, label %do.body236 2057 2058if.then232: ; preds = %cond.true221 2059 br label %do.body236 2060 2061do.body236: ; preds = %if.then232, %cond.true221 2062 br i1 %arg, label %do.end254, label %cond.true239 2063 2064cond.true239: ; preds = %do.body236 2065 br i1 %arg, label %if.then250, label %do.end254 2066 2067if.then250: ; preds = %cond.true239 2068 br label %do.end254 2069 2070do.end254: ; preds = %if.then250, %cond.true239, %do.body236, %do.body218, %do.body200 2071 br i1 %arg, label %do.end277, label %cond.true263 2072 2073cond.true263: ; preds = %do.end254 2074 br i1 %arg, label %if.then274, label %do.end277 2075 2076if.then274: ; preds = %cond.true263 2077 unreachable 2078 2079do.end277: ; preds = %cond.true263, %do.end254 2080 br i1 %arg, label %if.then280, label %do.body283 2081 2082if.then280: ; preds = %do.end277 2083 br label %do.body283 2084 2085do.body283: ; preds = %if.then280, %do.end277, %do.end193 2086 br i1 %arg, label %if.end301, label %cond.true286 2087 2088cond.true286: ; preds = %do.body283 2089 br i1 %arg, label %if.then297, label %if.end301 2090 2091if.then297: ; preds = %cond.true286 2092 br label %if.end301 2093 2094if.end301: ; preds = %if.then297, %cond.true286, %do.body283 2095 br i1 %arg, label %if.then304, label %do.body351 2096 2097if.then304: ; preds = %if.end301, %do.end166 2098 br i1 %arg, label %do.body309.lr.ph, label %do.body351 2099 2100do.body309.lr.ph: ; preds = %if.then304 2101 br label %do.body309 2102 2103do.body309: ; preds = %for.cond.backedge, %do.body309.lr.ph 2104 br i1 %arg, label %do.end328, label %cond.true312 2105 2106cond.true312: ; preds = %do.body309 2107 br i1 %arg, label %if.then323, label %do.end328 2108 2109if.then323: ; preds = %cond.true312 2110 br label %do.end328 2111 2112do.end328: ; preds = %if.then323, %cond.true312, %do.body309 2113 br i1 %arg, label %for.cond.backedge, label %cond.true335 2114 2115for.cond.backedge: ; preds = %if.then346, %cond.true335, %do.end328 2116 br i1 %arg, label %do.body309, label %do.body351 2117 2118cond.true335: ; preds = %do.end328 2119 br i1 %arg, label %if.then346, label %for.cond.backedge 2120 2121if.then346: ; preds = %cond.true335 2122 br label %for.cond.backedge 2123 2124do.body351: ; preds = %for.cond.backedge, %if.then304, %if.end301 2125 br i1 %arg, label %if.then354, label %if.end355 2126 2127if.then354: ; preds = %do.body351 2128 br label %if.end355 2129 2130if.end355: ; preds = %if.then354, %do.body351 2131 br i1 %arg, label %if.else, label %if.then364 2132 2133if.then364: ; preds = %if.end355 2134 br label %do.body366 2135 2136if.else: ; preds = %if.end355 2137 br label %do.body366 2138 2139do.body366: ; preds = %if.else, %if.then364 2140 br i1 %arg, label %if.then369, label %if.end377.critedge 2141 2142if.then369: ; preds = %do.body366 2143 br label %if.end377 2144 2145if.end377.critedge: ; preds = %do.body366 2146 br label %if.end377 2147 2148if.end377: ; preds = %if.end377.critedge, %if.then369 2149 br i1 %arg, label %if.then383, label %if.end392.critedge 2150 2151if.then383: ; preds = %if.end377 2152 br label %if.end392 2153 2154if.end392.critedge: ; preds = %if.end377 2155 br label %if.end392 2156 2157if.end392: ; preds = %if.end392.critedge, %if.then383 2158 br i1 %arg, label %if.then398, label %if.end399 2159 2160if.then398: ; preds = %if.end392 2161 br label %if.end399 2162 2163if.end399: ; preds = %if.then398, %if.end392 2164 invoke void @objc_msgSend(ptr undef, ptr undef) 2165 to label %eh.cont unwind label %lpad, !clang.arc.no_objc_arc_exceptions !0 2166 2167eh.cont: ; preds = %if.end399 2168 br i1 %arg, label %if.then430, label %if.end439.critedge 2169 2170if.then430: ; preds = %eh.cont 2171 %1 = call ptr @llvm.objc.retain(ptr %0) 2172 br label %if.end439 2173 2174lpad: ; preds = %if.end399 2175 %2 = landingpad { ptr, i32 } 2176 catch ptr @"OBJC_EHTYPE_$_NSException" 2177 unreachable 2178 2179if.end439.critedge: ; preds = %eh.cont 2180 %3 = call ptr @llvm.objc.retain(ptr %0) 2181 br label %if.end439 2182 2183if.end439: ; preds = %if.end439.critedge, %if.then430 2184 call void @llvm.objc.release(ptr %0), !clang.imprecise_release !0 2185 unreachable 2186 2187return: ; No predecessors! 2188 ret void 2189} 2190 2191 2192!0 = !{} 2193