summaryrefslogtreecommitdiff
path: root/test/Transforms/ObjCARC/path-overflow.ll
blob: 605e860589724717ac1bbe88523bc9ab44ce8600 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
; RUN: opt -objc-arc -S < %s
; rdar://12277446
; rdar://12480535

; 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.11.33.55.77.99.121.143.332.1130.1340.2768 = type { i32*, i32, i8*, i32 }

@_unnamed_cfstring_591 = external constant %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768, section "__DATA,__cfstring"

declare i8* @objc_retain(i8*) nonlazybind
declare i8* @objc_retainAutoreleasedReturnValue(i8*) nonlazybind
declare void @objc_release(i8*) nonlazybind
declare i8* @returner()

define hidden void @test1() {
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.11.33.55.77.99.121.143.332.1130.1340.2768* @_unnamed_cfstring_591 to i8*
  %1 = call i8* @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 @objc_release(i8* %0) nounwind, !clang.imprecise_release !0
  ret void
}

; Function Attrs: optsize ssp uwtable
define void @test2() unnamed_addr align 2 {
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* @objc_retainAutoreleasedReturnValue(i8* %tmp185)
  %tmp189 = call i8* @objc_retain(i8* %tmp188)
  call void @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
}


!0 = metadata !{}