[embedded] Avoid unsafeBitCast, use Builtin.castFromNativeObject instead, add armv7 test

This commit is contained in:
Kuba Mracek
2024-05-08 21:29:11 -07:00
parent 7ae20b7039
commit 92c20a699b
2 changed files with 33 additions and 2 deletions

View File

@@ -0,0 +1,31 @@
// RUN: %target-swift-frontend -target armv7-apple-none-macho -module-name main -parse-as-library -Xcc -D__MACH__ -emit-ir %s -enable-experimental-feature Embedded
// RUN: %target-swift-frontend -target armv7-apple-none-macho -module-name main -parse-as-library -Xcc -D__MACH__ -emit-ir %s -enable-experimental-feature Embedded -O
// RUN: %target-swift-frontend -target armv7-apple-none-macho -module-name main -parse-as-library -Xcc -D__MACH__ -emit-ir %s -enable-experimental-feature Embedded -Osize
// REQUIRES: swift_in_compiler
// REQUIRES: OS=macosx || OS=linux-gnu
// REQUIRES: CODEGENERATOR=ARM
@main
struct Main {
static func main() {
let n = 42
let m = -42
let s = "str"
let str = "Hello \(s) \(n) \(s) \(m)"
print(str)
print("hex: \(hex: 42)")
print("ptr: \(UnsafeRawPointer(bitPattern: UInt(0xffff0000))!)")
}
}
extension DefaultStringInterpolation {
mutating func appendInterpolation(hex value: Int) {
appendInterpolation("0x" + String(value, radix: 16))
}
mutating func appendInterpolation(_ value: UnsafeRawPointer) {
appendInterpolation("0x" + String(UInt(bitPattern: value), radix: 16))
}
}