From 92722a480e62f2cd9a8d01cc89666d7f70e38dfd Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Thu, 25 Jun 2020 00:15:49 +0300 Subject: [PATCH] Added -Xdisable-fake-override-validator (cherry picked from commit d921dc1f946114fcf4a4fbdb0bf3593c0b97b9a7) --- .../cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt | 1 + .../jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt | 3 +++ .../kotlin/backend/konan/KonanConfigurationKeys.kt | 2 ++ .../org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt | 6 ++++-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index ec682e03bdf..2e50855b351 100644 --- a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -249,6 +249,7 @@ class K2Native : CLICompiler() { parseShortModuleName(arguments, configuration, outputKind)?.let { put(SHORT_MODULE_NAME, it) } + put(DISABLE_FAKE_OVERRIDE_VALIDATOR, arguments.disableFakeOverrideValidator) } } } diff --git a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt index ae28e68cb7f..c68dc358cc9 100644 --- a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt +++ b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt @@ -145,6 +145,9 @@ class K2NativeCompilerArguments : CommonCompilerArguments() { ) var exportedLibraries: Array? = null + @Argument(value="-Xdisable-fake-override-validator", description = "Disable IR fake override validator") + var disableFakeOverrideValidator: Boolean = false + @Argument( value = "-Xframework-import-header", valueDescription = "
", diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt index 3e4634e088d..39f7f24c918 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanConfigurationKeys.kt @@ -18,6 +18,8 @@ class KonanConfigKeys { = CompilerConfigurationKey.create("compatible compiler versions") val DEBUG: CompilerConfigurationKey = CompilerConfigurationKey.create("add debug information") + val DISABLE_FAKE_OVERRIDE_VALIDATOR: CompilerConfigurationKey + = CompilerConfigurationKey.create("disable fake override validator") val DISABLED_PHASES: CompilerConfigurationKey> = CompilerConfigurationKey.create("disable backend phases") val BITCODE_EMBEDDING_MODE: CompilerConfigurationKey diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt index 5fa773f97af..041747eebda 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt @@ -254,8 +254,10 @@ internal val psiToIrPhase = konanUnitPhase( symbolTable.noUnboundLeft("Unbound symbols left after linker") module.acceptVoid(ManglerChecker(KonanManglerIr, Ir2DescriptorManglerAdapter(KonanManglerDesc))) - val fakeOverrideChecker = FakeOverrideChecker(KonanManglerIr, KonanManglerDesc) - linker.modules.values.forEach{ fakeOverrideChecker.check(it) } + if (!config.configuration.getBoolean(KonanConfigKeys.DISABLE_FAKE_OVERRIDE_VALIDATOR)) { + val fakeOverrideChecker = FakeOverrideChecker(KonanManglerIr, KonanManglerDesc) + linker.modules.values.forEach { fakeOverrideChecker.check(it) } + } irModule = module