From 1ba04fdd2118c63a80e53179454f5e88e41b544e Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Wed, 9 Jun 2021 13:24:20 +0300 Subject: [PATCH] [K/N] Introduce external calls checker compiler option --- .../cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt | 1 + .../org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt | 3 +++ .../jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt | 2 ++ 3 files changed, 6 insertions(+) diff --git a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index d38e008c29b..74d18d45bfe 100644 --- a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -189,6 +189,7 @@ class K2Native : CLICompiler() { put(PRINT_DESCRIPTORS, arguments.printDescriptors) put(PRINT_LOCATIONS, arguments.printLocations) put(PRINT_BITCODE, arguments.printBitCode) + put(CHECK_EXTERNAL_CALLS, arguments.checkExternalCalls) put(PRINT_FILES, arguments.printFiles) put(PURGE_USER_LIBS, arguments.purgeUserLibs) diff --git a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt index 837db15b20e..c27b295858c 100644 --- a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt +++ b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt @@ -195,6 +195,9 @@ class K2NativeCompilerArguments : CommonCompilerArguments() { @Argument(value = "-Xprint-bitcode", deprecatedName = "--print_bitcode", description = "Print llvm bitcode") var printBitCode: Boolean = false + @Argument(value = "-Xcheck-state-at-external-calls", description = "Check all calls of possibly long external functions are done in Native state") + var checkExternalCalls: Boolean = false + @Argument(value = "-Xprint-descriptors", deprecatedName = "--print_descriptors", description = "Print descriptor tree") var printDescriptors: Boolean = false diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt index cce2ba97021..442a1348497 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt @@ -100,6 +100,8 @@ class KonanConfigKeys { = CompilerConfigurationKey.create("export KDoc into klib and framework") val PRINT_BITCODE: CompilerConfigurationKey = CompilerConfigurationKey.create("print bitcode") + val CHECK_EXTERNAL_CALLS: CompilerConfigurationKey + = CompilerConfigurationKey.create("check external calls") val PRINT_DESCRIPTORS: CompilerConfigurationKey = CompilerConfigurationKey.create("print descriptors") val PRINT_IR: CompilerConfigurationKey