diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt index 5f36deb8314..a8f4bdefafe 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt @@ -57,7 +57,7 @@ private operator fun String.times(count: Int): String { return builder.toString() } -private val cKeywords = setOf( +internal val cKeywords = setOf( // Actual C keywords. "auto", "break", "case", "char", "const", "continue", diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt index 1222c1a42c0..1aaaadc784d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/objcexport/ObjCExportHeaderGenerator.kt @@ -652,7 +652,7 @@ abstract class ObjCExportHeaderGenerator( fun collectParameters(baseMethodBridge: MethodBridge, method: FunctionDescriptor): List { fun unifyName(initialName: String, usedNames: Set): String { var unique = initialName - while (unique in usedNames) { + while (unique in usedNames || unique in cKeywords) { unique += "_" } return unique diff --git a/backend.native/tests/framework/values/values.kt b/backend.native/tests/framework/values/values.kt index cf28bcd85fa..6204954edba 100644 --- a/backend.native/tests/framework/values/values.kt +++ b/backend.native/tests/framework/values/values.kt @@ -240,3 +240,5 @@ fun IC3?.getValueOrNull3() = this?.value fun isFrozen(obj: Any): Boolean = obj.isFrozen fun kotlinLambda(block: (Any) -> Any): Any = block + +fun multiply(int: Int, long: Long) = int * long diff --git a/backend.native/tests/framework/values/values.swift b/backend.native/tests/framework/values/values.swift index f0d34742546..279c55f6996 100644 --- a/backend.native/tests/framework/values/values.swift +++ b/backend.native/tests/framework/values/values.swift @@ -271,6 +271,8 @@ func testFunctions() throws { try assertEquals(actual: ValuesKt.argsFun(i: 10, l: 20, d: 3.5, s: "res") as! String, expected: "res10203.5") + + try assertEquals(actual: ValuesKt.multiply(int: 3, long: 2), expected: 6) } func testFuncType() throws {