From fce5ad1358aa137e305c75d84da95070e3890831 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Wed, 20 Apr 2022 15:01:43 +0300 Subject: [PATCH] Native: check return value of clang_saveTranslationUnit --- .../kotlin/native/interop/indexer/Utils.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Utils.kt b/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Utils.kt index 65509436e36..726934cc398 100644 --- a/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Utils.kt +++ b/kotlin-native/Interop/Indexer/src/main/kotlin/org/jetbrains/kotlin/native/interop/indexer/Utils.kt @@ -417,7 +417,20 @@ fun Compilation.precompileHeaders(): CompilationWithPCH = withIndex { index -> internal fun Compilation.withPrecompiledHeader(translationUnit: CXTranslationUnit): CompilationWithPCH { val precompiledHeader = Files.createTempFile(null, ".pch").toFile().apply { this.deleteOnExit() } - clang_saveTranslationUnit(translationUnit, precompiledHeader.absolutePath, 0) + val errorCode = clang_saveTranslationUnit(translationUnit, precompiledHeader.absolutePath, 0) + if (errorCode != 0) { + error(buildString { + appendLine(""" + clang_saveTranslationUnit failed with $errorCode; + output = ${precompiledHeader.absolutePath} + output size is ${precompiledHeader.length()}, exists = ${precompiledHeader.exists()} + arguments = ${compilerArgs.joinToString(" ")} + preamble: + """.trimIndent()) + + this.appendPreamble(this@withPrecompiledHeader) + }) + } return CompilationWithPCH( this.compilerArgs,