From cdfcffbd5701135209b8cd4ffc096a53152a89a8 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Thu, 13 Jan 2022 11:45:08 +0300 Subject: [PATCH] ObjCExport: make objc_release nounwind Also replace it by an LLVM intrinsic, llvm.objc.release, which is lowered to objc_release. This is close to what Clang does. --- .../kotlin/backend/konan/llvm/objc/ObjCCodeGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objc/ObjCCodeGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objc/ObjCCodeGenerator.kt index 27e0e42b3b5..87d6e5eba38 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objc/ObjCCodeGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/objc/ObjCCodeGenerator.kt @@ -32,9 +32,10 @@ internal open class ObjCCodeGenerator(val codegen: CodeGenerator) { val objcRelease = run { val proto = LlvmFunctionProto( - "objc_release", + "llvm.objc.release", LlvmRetType(voidType), listOf(LlvmParamType(int8TypePtr)), + listOf(LlvmFunctionAttribute.NoUnwind), origin = context.stdlibModule.llvmSymbolOrigin ) context.llvm.externalFunction(proto)