@@ -1376,3 +1376,39 @@ bb3:
1376
1376
%res = tuple ()
1377
1377
return %res : $()
1378
1378
}
1379
+
1380
+
1381
+ // Ensure no verification error
1382
+ sil [ossa] @dce_borrowedfromuser : $@convention(thin) (@guaranteed FakeOptional<Klass>) -> () {
1383
+ bb0(%0 : @guaranteed $FakeOptional<Klass>):
1384
+ %1 = copy_value %0 : $FakeOptional<Klass>
1385
+ %2 = begin_borrow %1 : $FakeOptional<Klass>
1386
+ %3 = begin_borrow %1 : $FakeOptional<Klass>
1387
+ br bb1(%2 : $FakeOptional<Klass>, %3 : $FakeOptional<Klass>)
1388
+
1389
+ bb1(%5 : @reborrow $FakeOptional<Klass>, %6 : @reborrow $FakeOptional<Klass>):
1390
+ %7 = borrowed %6 : $FakeOptional<Klass> from (%1 : $FakeOptional<Klass>)
1391
+ %8 = borrowed %5 : $FakeOptional<Klass> from (%1 : $FakeOptional<Klass>)
1392
+ switch_enum %7 : $FakeOptional<Klass>, case #FakeOptional.some!enumelt: bb2, case #FakeOptional.none!enumelt: bb3
1393
+
1394
+ bb2(%10 : @guaranteed $Klass):
1395
+ %11 = function_ref @$use_klass2 : $@convention(thin) (@guaranteed Klass) -> ()
1396
+ %12 = apply %11(%10) : $@convention(thin) (@guaranteed Klass) -> ()
1397
+ br bb4
1398
+
1399
+ bb3:
1400
+ br bb4
1401
+
1402
+ bb4:
1403
+ br bb5(%8 : $FakeOptional<Klass>, %7 : $FakeOptional<Klass>)
1404
+
1405
+ bb5(%16 : @reborrow $FakeOptional<Klass>, %17 : @reborrow $FakeOptional<Klass>):
1406
+ %18 = borrowed %17 : $FakeOptional<Klass> from (%1 : $FakeOptional<Klass>)
1407
+ %19 = borrowed %16 : $FakeOptional<Klass> from (%1 : $FakeOptional<Klass>)
1408
+ end_borrow %19 : $FakeOptional<Klass>
1409
+ end_borrow %18 : $FakeOptional<Klass>
1410
+ destroy_value %1 : $FakeOptional<Klass>
1411
+ %23 = tuple ()
1412
+ return %23 : $()
1413
+ }
1414
+
0 commit comments