From 97a2ee6f2fd10919aff823a9a182d0fadefc3e9b Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 31 Oct 2022 12:25:24 +0200 Subject: [PATCH] [K/N][optmz] Fixed a bug with singletons in the call graph --- .../backend/konan/optimizations/CallGraphBuilder.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/CallGraphBuilder.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/CallGraphBuilder.kt index 56527365a7a..283522d487f 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/CallGraphBuilder.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/CallGraphBuilder.kt @@ -111,7 +111,13 @@ internal class CallGraphBuilder( is DataFlowIR.Node.Call -> block(node, node) is DataFlowIR.Node.Singleton -> - node.constructor?.let { block(DataFlowIR.Node.Call(it, node.arguments ?: emptyList(), node.type, null), node) } + node.constructor?.let { constructor -> + val arguments = buildList { + add(DataFlowIR.Edge(node, null)) // this. + node.arguments?.let { addAll(it) } + } + block(DataFlowIR.Node.Call(constructor, arguments, node.type, null), node) + } is DataFlowIR.Node.ArrayRead -> block(DataFlowIR.Node.Call(