[embedded] Use Builtin.RawPointer as the argument type on swift_release_n

This commit is contained in:
Kuba Mracek
2023-10-13 20:55:58 -07:00
parent d8bfa5a9fa
commit c8a5ac0142
2 changed files with 31 additions and 2 deletions

View File

@@ -154,12 +154,18 @@ func swift_retain_n_(object: UnsafeMutablePointer<HeapObject>, n: UInt32) -> Uns
}
@_silgen_name("swift_release")
public func swift_release(object: UnsafeMutablePointer<HeapObject>?) {
public func swift_release(object: Builtin.RawPointer) {
swift_release_n(object: object, n: 1)
}
@_silgen_name("swift_release_n")
public func swift_release_n(object: UnsafeMutablePointer<HeapObject>?, n: UInt32) {
public func swift_release_n(object: Builtin.RawPointer, n: UInt32) {
if Int(Builtin.ptrtoint_Word(object)) == 0 { return }
let o = UnsafeMutablePointer<HeapObject>(object)
swift_release_n_(object: o, n: n)
}
public func swift_release_n_(object: UnsafeMutablePointer<HeapObject>?, n: UInt32) {
guard let object else {
return
}

View File

@@ -0,0 +1,23 @@
// RUN: %target-run-simple-swift(%S/Inputs/print.swift -enable-experimental-feature Embedded -parse-as-library -runtime-compatibility-version none -wmo -Xfrontend -disable-objc-interop) | %FileCheck %s
// RUN: %target-run-simple-swift(%S/Inputs/print.swift -O -enable-experimental-feature Embedded -parse-as-library -runtime-compatibility-version none -wmo -Xfrontend -disable-objc-interop) | %FileCheck %s
// RUN: %target-run-simple-swift(%S/Inputs/print.swift -Osize -enable-experimental-feature Embedded -parse-as-library -runtime-compatibility-version none -wmo -Xfrontend -disable-objc-interop) | %FileCheck %s
// REQUIRES: executable_test
// REQUIRES: optimized_stdlib
// REQUIRES: VENDOR=apple
// REQUIRES: OS=macosx
@main
struct Main {
static func main() {
test()
print("Okay!")
// CHECK: Okay!
}
}
func test() -> [Int] {
var s: [Int] = []
s += []
return s
}