mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #74442 from kubamracek/embedded-string-to-pointer
[embedded] Implement missing _convertConstStringToUTF8PointerArgument to support string to pointer conversion
This commit is contained in:
@@ -514,10 +514,11 @@ func _convertConstStringToUTF8PointerArgument<
|
||||
}
|
||||
#else
|
||||
@_transparent
|
||||
@_unavailableInEmbedded
|
||||
public
|
||||
func _convertConstStringToUTF8PointerArgument<ToPointer: _Pointer>(
|
||||
_ str: String) -> (Builtin.NativeObject?, ToPointer) {
|
||||
fatalError("unreachable in embedded Swift (marked as unavailable)")
|
||||
public // COMPILER_INTRINSIC
|
||||
func _convertConstStringToUTF8PointerArgument<
|
||||
ToPointer: _Pointer
|
||||
>(_ str: String) -> (Builtin.NativeObject?, ToPointer) {
|
||||
let utf8 = Array(str.utf8CString)
|
||||
return _convertConstArrayToPointerArgument(utf8)
|
||||
}
|
||||
#endif
|
||||
|
||||
16
test/embedded/string-to-pointer.swift
Normal file
16
test/embedded/string-to-pointer.swift
Normal file
@@ -0,0 +1,16 @@
|
||||
// RUN: %target-run-simple-swift(-enable-experimental-feature Embedded -wmo) | %FileCheck %s
|
||||
|
||||
// REQUIRES: swift_in_compiler
|
||||
// REQUIRES: executable_test
|
||||
// REQUIRES: optimized_stdlib
|
||||
// REQUIRES: OS=macosx || OS=linux-gnu
|
||||
|
||||
@_extern(c)
|
||||
func puts(_ string: UnsafePointer<CChar>?) -> CInt
|
||||
|
||||
func foo(_ string: UnsafePointer<CChar>?) {
|
||||
puts(string)
|
||||
}
|
||||
|
||||
foo("hello")
|
||||
// CHECK: hello
|
||||
Reference in New Issue
Block a user