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 f64479e5882..414fdf716fb 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 @@ -25,7 +25,6 @@ import org.jetbrains.kotlin.cli.common.CLICompiler import org.jetbrains.kotlin.cli.common.CLITool import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR -import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.WARNING import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.CompilerConfiguration @@ -34,13 +33,15 @@ import org.jetbrains.kotlin.config.addKotlinSourceRoots import org.jetbrains.kotlin.config.kotlinSourceRoots import org.jetbrains.kotlin.konan.file.File import org.jetbrains.kotlin.konan.target.CompilerOutputKind -import org.jetbrains.kotlin.konan.target.TargetManager +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.utils.KotlinPaths -import kotlin.reflect.KFunction class K2Native : CLICompiler() { - override fun doExecute(@NotNull arguments: K2NativeCompilerArguments, @NotNull configuration: CompilerConfiguration, @NotNull rootDisposable: Disposable, @Nullable paths: KotlinPaths?): ExitCode { + override fun doExecute(@NotNull arguments: K2NativeCompilerArguments, + @NotNull configuration: CompilerConfiguration, + @NotNull rootDisposable: Disposable, + @Nullable paths: KotlinPaths?): ExitCode { if (arguments.version) { println("Kotlin/Native: ${KonanVersion.CURRENT}") @@ -60,9 +61,15 @@ class K2Native : CLICompiler() { runTopLevelPhases(konanConfig, environment) } catch (e: KonanCompilationException) { return ExitCode.COMPILATION_ERROR + } catch (e: Throwable) { + configuration.report(ERROR, """ + |Compilation failed with exception: ${e.message}, caused by ${e.cause?.message ?: ""} + + |Source files: ${ environment.getSourceFiles().joinToString(transform = KtFile::getName) } + """.trimMargin()) + throw e } - // TODO: catch Errors and IllegalStateException. return ExitCode.OK } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/TopDownAnalyzerFacadeForKonan.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/TopDownAnalyzerFacadeForKonan.kt index 0524c96057e..1aa21db7e5e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/TopDownAnalyzerFacadeForKonan.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/TopDownAnalyzerFacadeForKonan.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.MutableModuleContextImpl import org.jetbrains.kotlin.context.ProjectContext +import org.jetbrains.kotlin.konan.util.visibleName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.* @@ -56,8 +57,13 @@ object TopDownAnalyzerFacadeForKonan { config: KonanConfig ): AnalysisResult { - // we print out each file we compile for now - files.forEach{println(it)} + val verbose = config.configuration.get(KonanConfigKeys.VERBOSE_PHASES) + ?.contains(KonanPhase.FRONTEND.visibleName) + ?: false + if (verbose) { + // we print out each file we compile for now + files.forEach { println(it) } + } val analyzerForKonan = createTopDownAnalyzerForKonan( moduleContext, trace, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index f4c4ed672f9..c168c7d5222 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -577,7 +577,7 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map { + private fun bindParameters(descriptor: FunctionDescriptor?): Map { if (descriptor == null) return emptyMap() val parameterDescriptors = descriptor.allParameters return parameterDescriptors.mapIndexed { i, parameterDescriptor ->