@@ -456,6 +456,26 @@ func destroyGenArray<T>(_ array: Builtin.RawPointer, count: Builtin.Word, _: T)
456
456
Builtin . destroyArray ( T . self, array, count)
457
457
}
458
458
459
+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins21destroyArraySinglePODyyBpF"(ptr %0)
460
+ // CHECK-NOT: call void @swift_arrayDestroy
461
+ func destroyArraySinglePOD( _ array: Builtin . RawPointer ) {
462
+ Builtin . destroyArray ( Int . self, array, 1 . _builtinWordValue)
463
+ }
464
+
465
+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins24destroyArraySingleNonPODyyBpF"(ptr %0)
466
+ // CHECK-NOT: call void @swift_arrayDestroy
467
+ // CHECK: [[TO_DESTROY:%.*]] = load ptr, ptr {{%.*}}
468
+ // CHECK: call void @swift_release(ptr [[TO_DESTROY]])
469
+ func destroyArraySingleNonPOD( _ array: Builtin . RawPointer ) {
470
+ Builtin . destroyArray ( C . self, array, 1 . _builtinWordValue)
471
+ }
472
+
473
+ // CHECK-LABEL: define hidden {{.*}}void @"$s8builtins21destroyArraySingleGenyyBp_xmtlF"(ptr %0, ptr %1, ptr %T)
474
+ // CHECK-NOT: call void @swift_arrayDestroy
475
+ // CHECK: call void {{%.*}}(ptr {{.*}} {{%.*}}, ptr %T)
476
+ func destroyArraySingleGen< T> ( _ array: Builtin . RawPointer , _: T . Type ) {
477
+ Builtin . destroyArray ( T . self, array, 1 . _builtinWordValue)
478
+ }
459
479
460
480
// CHECK-LABEL: define hidden {{.*}}void @"$s8builtins12copyPODArray{{[_0-9a-zA-Z]*}}F"(ptr %0, ptr %1, i64 %2)
461
481
// check: mul nuw i64 4, %2
0 commit comments