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 da15158f9de..fa7eeb1cd56 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 @@ -319,15 +319,6 @@ class K2Native : CLICompiler() { configuration.report(ERROR, "-Xgc-aggressive is only supported for -memory-model experimental") } put(GARBAGE_COLLECTOR_AGRESSIVE, arguments.gcAggressive) - put(RUNTIME_ASSERTS_MODE, when (arguments.runtimeAssertsMode) { - "ignore" -> RuntimeAssertsMode.IGNORE - "log" -> RuntimeAssertsMode.LOG - "panic" -> RuntimeAssertsMode.PANIC - else -> { - configuration.report(ERROR, "Unsupported runtime asserts mode ${arguments.runtimeAssertsMode}") - RuntimeAssertsMode.IGNORE - } - }) put(PROPERTY_LAZY_INITIALIZATION, when (arguments.propertyLazyInitialization) { null -> { when (memoryModel) { 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 c3199cfb632..aa43263d282 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 @@ -326,9 +326,6 @@ class K2NativeCompilerArguments : CommonCompilerArguments() { @Argument(value = "-Xir-property-lazy-initialization", valueDescription = "{disable|enable}", description = "Initialize top level properties lazily per file") var propertyLazyInitialization: String? = null - @Argument(value="-Xruntime-asserts-mode", valueDescription = "", description = "Enable asserts in runtime. Possible values: 'ignore', 'log', 'panic'") - var runtimeAssertsMode: String? = "ignore" - // TODO: Remove when legacy MM is gone. @Argument( value = "-Xworker-exception-handling", diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BinaryOptions.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BinaryOptions.kt index c802058b7a6..88ffa1bd1d1 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BinaryOptions.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BinaryOptions.kt @@ -12,6 +12,7 @@ import kotlin.properties.ReadOnlyProperty // Note: options defined in this class are a part of user interface, including the names: // users can pass these options using a -Xbinary=name=value compiler argument or corresponding Gradle DSL. object BinaryOptions : BinaryOptionRegistry() { + val runtimeAssertionsMode by option() } open class BinaryOption( diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfig.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfig.kt index 793fdd02f76..00daa0a4cf1 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfig.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfig.kt @@ -60,7 +60,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration val destroyRuntimeMode: DestroyRuntimeMode get() = configuration.get(KonanConfigKeys.DESTROY_RUNTIME_MODE)!! val gc: GC get() = configuration.get(KonanConfigKeys.GARBAGE_COLLECTOR)!! val gcAggressive: Boolean get() = configuration.get(KonanConfigKeys.GARBAGE_COLLECTOR_AGRESSIVE)!! - val runtimeAssertsMode: RuntimeAssertsMode get() = configuration.get(KonanConfigKeys.RUNTIME_ASSERTS_MODE)!! + val runtimeAssertsMode: RuntimeAssertsMode get() = configuration.get(BinaryOptions.runtimeAssertionsMode) ?: RuntimeAssertsMode.IGNORE val workerExceptionHandling: WorkerExceptionHandling get() = configuration.get(KonanConfigKeys.WORKER_EXCEPTION_HANDLING)!! val needVerifyIr: Boolean 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 c8367ba43b1..0d7aab67428 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 @@ -161,7 +161,6 @@ class KonanConfigKeys { val GARBAGE_COLLECTOR: CompilerConfigurationKey = CompilerConfigurationKey.create("gc") val GARBAGE_COLLECTOR_AGRESSIVE: CompilerConfigurationKey = CompilerConfigurationKey.create("turn on agressive GC mode") val CHECK_LLD_COMPATIBILITY: CompilerConfigurationKey = CompilerConfigurationKey.create("check compatibility with LLD") - val RUNTIME_ASSERTS_MODE: CompilerConfigurationKey = CompilerConfigurationKey.create("enable runtime asserts") val PROPERTY_LAZY_INITIALIZATION: CompilerConfigurationKey = CompilerConfigurationKey.create("lazy top level properties initialization") val WORKER_EXCEPTION_HANDLING: CompilerConfigurationKey = CompilerConfigurationKey.create("unhandled exception processing in Worker.executeAfter") diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index c00bafbc431..22e743ba237 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -120,11 +120,11 @@ if (ext.isExperimentalMM) { // TODO: It also makes sense to test -g without asserts, and also to test -opt with asserts. if (project.globalTestArgs.contains("-g")) { tasks.withType(KonanCompileNativeBinary.class).configureEach { - extraOpts "-Xruntime-asserts-mode=panic" + extraOpts "-Xbinary=runtimeAssertionsMode=panic" } tasks.withType(RunExternalTestGroup.class).configureEach { - flags = (flags ?: []) + "-Xruntime-asserts-mode=panic" + flags = (flags ?: []) + "-Xbinary=runtimeAssertionsMode=panic" } }