Home | History | Annotate | Download | only in ObjCARC
      1 ; RUN: opt -objc-arc -S < %s
      2 ; rdar://12277446
      3 
      4 ; The total number of paths grows exponentially with the number of branches, and a
      5 ; computation of this number can overflow any reasonable fixed-sized integer.
      6 
      7 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"
      8 target triple = "thumbv7-apple-ios5.0.0"
      9 
     10 %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768 = type { i32*, i32, i8*, i32 }
     11 
     12 @_unnamed_cfstring_591 = external constant %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768, section "__DATA,__cfstring"
     13 
     14 declare i8* @objc_retain(i8*) nonlazybind
     15 
     16 declare void @objc_release(i8*) nonlazybind
     17 
     18 define hidden void @foo() {
     19 entry:
     20   br i1 undef, label %msgSend.nullinit, label %msgSend.call
     21 
     22 msgSend.call:                                     ; preds = %entry
     23   br label %msgSend.cont
     24 
     25 msgSend.nullinit:                                 ; preds = %entry
     26   br label %msgSend.cont
     27 
     28 msgSend.cont:                                     ; preds = %msgSend.nullinit, %msgSend.call
     29   %0 = bitcast %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768* @_unnamed_cfstring_591 to i8*
     30   %1 = call i8* @objc_retain(i8* %0) nounwind
     31   br i1 undef, label %msgSend.nullinit33, label %msgSend.call32
     32 
     33 msgSend.call32:                                   ; preds = %if.end10
     34   br label %msgSend.cont34
     35 
     36 msgSend.nullinit33:                               ; preds = %if.end10
     37   br label %msgSend.cont34
     38 
     39 msgSend.cont34:                                   ; preds = %msgSend.nullinit33, %msgSend.call32
     40   br i1 undef, label %msgSend.nullinit38, label %msgSend.call37
     41 
     42 msgSend.call37:                                   ; preds = %msgSend.cont34
     43   br label %msgSend.cont39
     44 
     45 msgSend.nullinit38:                               ; preds = %msgSend.cont34
     46   br label %msgSend.cont39
     47 
     48 msgSend.cont39:                                   ; preds = %msgSend.nullinit38, %msgSend.call37
     49   br i1 undef, label %msgSend.nullinit49, label %msgSend.call48
     50 
     51 msgSend.call48:                                   ; preds = %msgSend.cont39
     52   br label %msgSend.cont50
     53 
     54 msgSend.nullinit49:                               ; preds = %msgSend.cont39
     55   br label %msgSend.cont50
     56 
     57 msgSend.cont50:                                   ; preds = %msgSend.nullinit49, %msgSend.call48
     58   br i1 undef, label %msgSend.nullinit61, label %msgSend.call60
     59 
     60 msgSend.call60:                                   ; preds = %msgSend.cont50
     61   br label %msgSend.cont62
     62 
     63 msgSend.nullinit61:                               ; preds = %msgSend.cont50
     64   br label %msgSend.cont62
     65 
     66 msgSend.cont62:                                   ; preds = %msgSend.nullinit61, %msgSend.call60
     67   br i1 undef, label %msgSend.nullinit67, label %msgSend.call66
     68 
     69 msgSend.call66:                                   ; preds = %msgSend.cont62
     70   br label %msgSend.cont68
     71 
     72 msgSend.nullinit67:                               ; preds = %msgSend.cont62
     73   br label %msgSend.cont68
     74 
     75 msgSend.cont68:                                   ; preds = %msgSend.nullinit67, %msgSend.call66
     76   br i1 undef, label %msgSend.nullinit84, label %msgSend.call83
     77 
     78 msgSend.call83:                                   ; preds = %msgSend.cont68
     79   br label %msgSend.cont85
     80 
     81 msgSend.nullinit84:                               ; preds = %msgSend.cont68
     82   br label %msgSend.cont85
     83 
     84 msgSend.cont85:                                   ; preds = %msgSend.nullinit84, %msgSend.call83
     85   br i1 undef, label %msgSend.nullinit90, label %msgSend.call89
     86 
     87 msgSend.call89:                                   ; preds = %msgSend.cont85
     88   br label %msgSend.cont91
     89 
     90 msgSend.nullinit90:                               ; preds = %msgSend.cont85
     91   br label %msgSend.cont91
     92 
     93 msgSend.cont91:                                   ; preds = %msgSend.nullinit90, %msgSend.call89
     94   br i1 undef, label %msgSend.nullinit104, label %msgSend.call103
     95 
     96 msgSend.call103:                                  ; preds = %msgSend.cont91
     97   br label %msgSend.cont105
     98 
     99 msgSend.nullinit104:                              ; preds = %msgSend.cont91
    100   br label %msgSend.cont105
    101 
    102 msgSend.cont105:                                  ; preds = %msgSend.nullinit104, %msgSend.call103
    103   br i1 undef, label %land.lhs.true, label %if.end123
    104 
    105 land.lhs.true:                                    ; preds = %msgSend.cont105
    106   br i1 undef, label %if.then117, label %if.end123
    107 
    108 if.then117:                                       ; preds = %land.lhs.true
    109   br label %if.end123
    110 
    111 if.end123:                                        ; preds = %if.then117, %land.lhs.true, %msgSend.cont105
    112   br i1 undef, label %msgSend.nullinit132, label %msgSend.call131
    113 
    114 msgSend.call131:                                  ; preds = %if.end123
    115   br label %msgSend.cont133
    116 
    117 msgSend.nullinit132:                              ; preds = %if.end123
    118   br label %msgSend.cont133
    119 
    120 msgSend.cont133:                                  ; preds = %msgSend.nullinit132, %msgSend.call131
    121   br i1 undef, label %msgSend.nullinit139, label %msgSend.call138
    122 
    123 msgSend.call138:                                  ; preds = %msgSend.cont133
    124   br label %msgSend.cont140
    125 
    126 msgSend.nullinit139:                              ; preds = %msgSend.cont133
    127   br label %msgSend.cont140
    128 
    129 msgSend.cont140:                                  ; preds = %msgSend.nullinit139, %msgSend.call138
    130   br i1 undef, label %if.then151, label %if.end157
    131 
    132 if.then151:                                       ; preds = %msgSend.cont140
    133   br label %if.end157
    134 
    135 if.end157:                                        ; preds = %if.then151, %msgSend.cont140
    136   br i1 undef, label %msgSend.nullinit164, label %msgSend.call163
    137 
    138 msgSend.call163:                                  ; preds = %if.end157
    139   br label %msgSend.cont165
    140 
    141 msgSend.nullinit164:                              ; preds = %if.end157
    142   br label %msgSend.cont165
    143 
    144 msgSend.cont165:                                  ; preds = %msgSend.nullinit164, %msgSend.call163
    145   br i1 undef, label %msgSend.nullinit176, label %msgSend.call175
    146 
    147 msgSend.call175:                                  ; preds = %msgSend.cont165
    148   br label %msgSend.cont177
    149 
    150 msgSend.nullinit176:                              ; preds = %msgSend.cont165
    151   br label %msgSend.cont177
    152 
    153 msgSend.cont177:                                  ; preds = %msgSend.nullinit176, %msgSend.call175
    154   br i1 undef, label %land.lhs.true181, label %if.end202
    155 
    156 land.lhs.true181:                                 ; preds = %msgSend.cont177
    157   br i1 undef, label %if.then187, label %if.end202
    158 
    159 if.then187:                                       ; preds = %land.lhs.true181
    160   br i1 undef, label %msgSend.nullinit199, label %msgSend.call198
    161 
    162 msgSend.call198:                                  ; preds = %if.then187
    163   br label %msgSend.cont200
    164 
    165 msgSend.nullinit199:                              ; preds = %if.then187
    166   br label %msgSend.cont200
    167 
    168 msgSend.cont200:                                  ; preds = %msgSend.nullinit199, %msgSend.call198
    169   br label %if.end202
    170 
    171 if.end202:                                        ; preds = %msgSend.cont200, %land.lhs.true181, %msgSend.cont177
    172   br i1 undef, label %msgSend.nullinit236, label %msgSend.call235
    173 
    174 msgSend.call235:                                  ; preds = %if.end202
    175   br label %msgSend.cont237
    176 
    177 msgSend.nullinit236:                              ; preds = %if.end202
    178   br label %msgSend.cont237
    179 
    180 msgSend.cont237:                                  ; preds = %msgSend.nullinit236, %msgSend.call235
    181   br i1 undef, label %msgSend.nullinit254, label %msgSend.call253
    182 
    183 msgSend.call253:                                  ; preds = %msgSend.cont237
    184   br label %msgSend.cont255
    185 
    186 msgSend.nullinit254:                              ; preds = %msgSend.cont237
    187   br label %msgSend.cont255
    188 
    189 msgSend.cont255:                                  ; preds = %msgSend.nullinit254, %msgSend.call253
    190   br i1 undef, label %msgSend.nullinit269, label %msgSend.call268
    191 
    192 msgSend.call268:                                  ; preds = %msgSend.cont255
    193   br label %msgSend.cont270
    194 
    195 msgSend.nullinit269:                              ; preds = %msgSend.cont255
    196   br label %msgSend.cont270
    197 
    198 msgSend.cont270:                                  ; preds = %msgSend.nullinit269, %msgSend.call268
    199   br i1 undef, label %msgSend.nullinit281, label %msgSend.call280
    200 
    201 msgSend.call280:                                  ; preds = %msgSend.cont270
    202   br label %msgSend.cont282
    203 
    204 msgSend.nullinit281:                              ; preds = %msgSend.cont270
    205   br label %msgSend.cont282
    206 
    207 msgSend.cont282:                                  ; preds = %msgSend.nullinit281, %msgSend.call280
    208   br i1 undef, label %msgSend.nullinit287, label %msgSend.call286
    209 
    210 msgSend.call286:                                  ; preds = %msgSend.cont282
    211   br label %msgSend.cont288
    212 
    213 msgSend.nullinit287:                              ; preds = %msgSend.cont282
    214   br label %msgSend.cont288
    215 
    216 msgSend.cont288:                                  ; preds = %msgSend.nullinit287, %msgSend.call286
    217   br i1 undef, label %msgSend.nullinit303, label %msgSend.call302
    218 
    219 msgSend.call302:                                  ; preds = %msgSend.cont288
    220   br label %msgSend.cont304
    221 
    222 msgSend.nullinit303:                              ; preds = %msgSend.cont288
    223   br label %msgSend.cont304
    224 
    225 msgSend.cont304:                                  ; preds = %msgSend.nullinit303, %msgSend.call302
    226   br i1 undef, label %msgSend.nullinit344, label %msgSend.call343
    227 
    228 msgSend.call343:                                  ; preds = %msgSend.cont304
    229   br label %msgSend.cont345
    230 
    231 msgSend.nullinit344:                              ; preds = %msgSend.cont304
    232   br label %msgSend.cont345
    233 
    234 msgSend.cont345:                                  ; preds = %msgSend.nullinit344, %msgSend.call343
    235   br i1 undef, label %msgSend.nullinit350, label %msgSend.call349
    236 
    237 msgSend.call349:                                  ; preds = %msgSend.cont345
    238   br label %msgSend.cont351
    239 
    240 msgSend.nullinit350:                              ; preds = %msgSend.cont345
    241   br label %msgSend.cont351
    242 
    243 msgSend.cont351:                                  ; preds = %msgSend.nullinit350, %msgSend.call349
    244   br i1 undef, label %msgSend.nullinit366, label %msgSend.call365
    245 
    246 msgSend.call365:                                  ; preds = %msgSend.cont351
    247   br label %msgSend.cont367
    248 
    249 msgSend.nullinit366:                              ; preds = %msgSend.cont351
    250   br label %msgSend.cont367
    251 
    252 msgSend.cont367:                                  ; preds = %msgSend.nullinit366, %msgSend.call365
    253   br i1 undef, label %msgSend.nullinit376, label %msgSend.call375
    254 
    255 msgSend.call375:                                  ; preds = %msgSend.cont367
    256   br label %msgSend.cont377
    257 
    258 msgSend.nullinit376:                              ; preds = %msgSend.cont367
    259   br label %msgSend.cont377
    260 
    261 msgSend.cont377:                                  ; preds = %msgSend.nullinit376, %msgSend.call375
    262   br i1 undef, label %if.then384, label %if.else401
    263 
    264 if.then384:                                       ; preds = %msgSend.cont377
    265   br i1 undef, label %msgSend.nullinit392, label %msgSend.call391
    266 
    267 msgSend.call391:                                  ; preds = %if.then384
    268   br label %msgSend.cont393
    269 
    270 msgSend.nullinit392:                              ; preds = %if.then384
    271   br label %msgSend.cont393
    272 
    273 msgSend.cont393:                                  ; preds = %msgSend.nullinit392, %msgSend.call391
    274   br label %if.end418
    275 
    276 if.else401:                                       ; preds = %msgSend.cont377
    277   br i1 undef, label %msgSend.nullinit409, label %msgSend.call408
    278 
    279 msgSend.call408:                                  ; preds = %if.else401
    280   br label %msgSend.cont410
    281 
    282 msgSend.nullinit409:                              ; preds = %if.else401
    283   br label %msgSend.cont410
    284 
    285 msgSend.cont410:                                  ; preds = %msgSend.nullinit409, %msgSend.call408
    286   br label %if.end418
    287 
    288 if.end418:                                        ; preds = %msgSend.cont410, %msgSend.cont393
    289   br i1 undef, label %msgSend.nullinit470, label %msgSend.call469
    290 
    291 msgSend.call469:                                  ; preds = %if.end418
    292   br label %msgSend.cont471
    293 
    294 msgSend.nullinit470:                              ; preds = %if.end418
    295   br label %msgSend.cont471
    296 
    297 msgSend.cont471:                                  ; preds = %msgSend.nullinit470, %msgSend.call469
    298   br i1 undef, label %msgSend.nullinit484, label %msgSend.call483
    299 
    300 msgSend.call483:                                  ; preds = %msgSend.cont471
    301   br label %msgSend.cont485
    302 
    303 msgSend.nullinit484:                              ; preds = %msgSend.cont471
    304   br label %msgSend.cont485
    305 
    306 msgSend.cont485:                                  ; preds = %msgSend.nullinit484, %msgSend.call483
    307   br i1 undef, label %msgSend.nullinit500, label %msgSend.call499
    308 
    309 msgSend.call499:                                  ; preds = %msgSend.cont485
    310   br label %msgSend.cont501
    311 
    312 msgSend.nullinit500:                              ; preds = %msgSend.cont485
    313   br label %msgSend.cont501
    314 
    315 msgSend.cont501:                                  ; preds = %msgSend.nullinit500, %msgSend.call499
    316   br i1 undef, label %msgSend.nullinit506, label %msgSend.call505
    317 
    318 msgSend.call505:                                  ; preds = %msgSend.cont501
    319   br label %msgSend.cont507
    320 
    321 msgSend.nullinit506:                              ; preds = %msgSend.cont501
    322   br label %msgSend.cont507
    323 
    324 msgSend.cont507:                                  ; preds = %msgSend.nullinit506, %msgSend.call505
    325   call void @objc_release(i8* %0) nounwind, !clang.imprecise_release !0
    326   ret void
    327 }
    328 
    329 !0 = metadata !{}
    330