@@ -309,6 +309,48 @@ bb6:
309
309
return %14 : $()
310
310
}
311
311
312
+ //===----------------------------------------------------------------------===//
313
+ // drop_deinit Tests
314
+ //===----------------------------------------------------------------------===//
315
+
316
+ // CHECK-LABEL: sil [ossa] @dropDeinitOnStruct : $@convention(thin) (@owned TrivialStruct) -> () {
317
+ // CHECK: %1 = drop_deinit %0
318
+ // CHECK-NEXT: destroy_value %1
319
+ // CHECK: } // end sil function 'dropDeinitOnStruct'
320
+ sil [ossa] @dropDeinitOnStruct : $@convention(thin) (@owned TrivialStruct) -> () {
321
+ bb0(%0 : @owned $TrivialStruct):
322
+ %1 = drop_deinit %0 : $TrivialStruct
323
+ destroy_value %1 : $TrivialStruct
324
+ %9999 = tuple()
325
+ return %9999 : $()
326
+ }
327
+
328
+ // CHECK-LABEL: sil [ossa] @dropDeinitOnMovedStruct : $@convention(thin) (@owned TrivialStruct) -> () {
329
+ // CHECK: %1 = drop_deinit %0
330
+ // CHECK-NEXT: %2 = move_value %1
331
+ // CHECK-NEXT: destroy_value %2
332
+ // CHECK: } // end sil function 'dropDeinitOnMovedStruct'
333
+ sil [ossa] @dropDeinitOnMovedStruct : $@convention(thin) (@owned TrivialStruct) -> () {
334
+ bb0(%0 : @owned $TrivialStruct):
335
+ %1 = drop_deinit %0 : $TrivialStruct
336
+ %2 = move_value %1 : $TrivialStruct
337
+ destroy_value %2 : $TrivialStruct
338
+ %9999 = tuple()
339
+ return %9999 : $()
340
+ }
341
+
342
+ // CHECK-LABEL: sil [ossa] @dropDeinitOnIndirectStruct : $@convention(thin) (@in TrivialStruct) -> () {
343
+ // CHECK: %1 = drop_deinit %0
344
+ // CHECK-NEXT: destroy_addr %1
345
+ // CHECK: } // end sil function 'dropDeinitOnIndirectStruct'
346
+ sil [ossa] @dropDeinitOnIndirectStruct : $@convention(thin) (@in TrivialStruct) -> () {
347
+ bb0(%0 : $*TrivialStruct):
348
+ %1 = drop_deinit %0 : $*TrivialStruct
349
+ destroy_addr %1 : $*TrivialStruct
350
+ %9999 = tuple()
351
+ return %9999 : $()
352
+ }
353
+
312
354
sil @$s4main5KlassCfD : $@convention(method) (@owned Klass) -> ()
313
355
sil @$s4main5KlassCACycfc : $@convention(method) (@owned Klass) -> @owned Klass
314
356
sil @$s4main5KlassCfd : $@convention(method) (@guaranteed Klass) -> @owned Builtin.NativeObject
0 commit comments