From 7d48c580cae96c91e2ff48788d0cfca39cf82726 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Fri, 31 Jan 2020 11:45:16 +0700 Subject: [PATCH] [Interop] Fix CCall parameter handling for LazyIr. --- .../src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 2a7691de382..1d7d1909268 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -615,6 +615,8 @@ private fun IrType.isCEnumType(): Boolean { // Make sure external stubs always get proper annotaions. private fun IrDeclaration.hasCCallAnnotation(name: String): Boolean = this.annotations.hasAnnotation(cCall.child(Name.identifier(name))) + // LazyIr doesn't pass annotations from descriptor to IrValueParameter. + || this.descriptor.annotations.hasAnnotation(cCall.child(Name.identifier(name))) private fun IrValueParameter.isWCStringParameter() = hasCCallAnnotation("WCString")