diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 790707af0b0..a9e89e5f5fa 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -2734,6 +2734,12 @@ task interop4(type: RunInteropKonanTest) { interop = 'cstdio' } +task interop5(type: RunStandaloneKonanTest) { + disabled = (project.testTarget == 'wasm32') // No interop for wasm yet. + goldValue = "Hello!\n" + source = "interop/basics/5.kt" +} + task interop_bitfields(type: RunInteropKonanTest) { disabled = (project.testTarget == 'wasm32') // No interop for wasm yet. expectedFail = (project.testTarget == 'linux_mips32') // fails because of big-endiannes diff --git a/backend.native/tests/interop/basics/5.kt b/backend.native/tests/interop/basics/5.kt new file mode 100644 index 00000000000..20ba5801aee --- /dev/null +++ b/backend.native/tests/interop/basics/5.kt @@ -0,0 +1,7 @@ +import platform.posix.printf + +val golden = immutableBinaryBlobOf(0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21, 0x00).asCPointer(0) + +fun main(args: Array) { + printf("%s\n", golden) +} diff --git a/runtime/src/main/kotlin/konan/BinaryBlob.kt b/runtime/src/main/kotlin/konan/BinaryBlob.kt index 806713eeb79..27090d8d5c6 100644 --- a/runtime/src/main/kotlin/konan/BinaryBlob.kt +++ b/runtime/src/main/kotlin/konan/BinaryBlob.kt @@ -61,8 +61,7 @@ public fun ImmutableBinaryBlob.toByteArray() = toByteArray(0, size) // Returns stable C pointer to data at certain offset, useful as a way to pass resource // to C API. -public external fun ImmutableBinaryBlob.asCPointer(offset: Int) = - interpretCPointer(asCPointerImpl(offset)) +public fun ImmutableBinaryBlob.asCPointer(offset: Int) = interpretCPointer(asCPointerImpl(offset)) @SymbolName("Kotlin_ImmutableBinaryBlob_asCPointerImpl") private external fun ImmutableBinaryBlob.asCPointerImpl(offset: Int): konan.internal.NativePtr