vvlevchenko / KonancAssertionIssue

Reproducing an assertion violation with konan 1.4.20-M1-61

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reproduction project for the issue https://youtrack.jetbrains.com/issue/KT-42443

Build the plugin

./gradlew shadowJar

Compile a KLIB using the compiler plugin

cd example
konanc Api.kt -Xplugin=../build/shaded/KonancAssertionIssue.jar -p library -o mylib

Note: Make sure you see the following log line in the console which indicates that the generated IR property has been added

warning: [Kotlin Compiler] 2020-10-03T18:55:21.619Z ClassLoweringPass lowering Api

Producing a kexe fails

konanc Client.kt -g -ea -target macos_x64 -p program -o main -l mylib.klib

fails with

konanc Client.kt -g -ea -target macos_x64 -p program -o main -l mylib.klib            ✔  6s  18:33:03
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil (file:/Users/nabil/Dev/kotlin-native/dist/konan/lib/kotlin-native.jar) to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
error: compilation failed: Assertion failed

* Source files: Client.kt
* Compiler version info: Konan: 1.4.20-dev / Kotlin: 1.4.20
* Output kind: PROGRAM

exception: java.lang.AssertionError: Assertion failed
 at org.jetbrains.kotlin.backend.konan.llvm.DebugUtilsKt.location(DebugUtils.kt:99)
 at org.jetbrains.kotlin.backend.konan.llvm.DebugUtilsKt.line(DebugUtils.kt:108)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.startLine(IrToBitcode.kt:1910)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.debugFieldDeclaration(IrToBitcode.kt:1936)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitField(IrToBitcode.kt:841)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitField(IrElementVisitorVoid.kt:62)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitField(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitField(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.ir.declarations.IrField.accept(IrField.kt:35)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptVoid(IrElementVisitorVoid.kt:271)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitProperty(IrToBitcode.kt:834)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitProperty(IrElementVisitorVoid.kt:59)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitProperty(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitProperty(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.ir.declarations.IrProperty.accept(IrProperty.kt:46)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptVoid(IrElementVisitorVoid.kt:271)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitClass(IrToBitcode.kt:788)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitClass(IrElementVisitorVoid.kt:44)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitClass(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitClass(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:55)
 at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.acceptChildren(IrFileImpl.kt:65)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptChildrenVoid(IrElementVisitorVoid.kt:275)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:509)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:38)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitFile(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.accept(IrFileImpl.kt:62)
 at org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl.acceptChildren(IrModuleFragmentImpl.kt:40)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptChildrenVoid(IrElementVisitorVoid.kt:275)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:350)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:28)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.backend.konan.llvm.CodeGeneratorVisitor.visitModuleFragment(IrToBitcode.kt:200)
 at org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl.accept(IrModuleFragmentImpl.kt:37)
 at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptVoid(IrElementVisitorVoid.kt:271)
 at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$codegenPhase$1.invoke(BitcodePhases.kt:253)
 at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$codegenPhase$1.invoke(BitcodePhases.kt)
 at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:62)
 at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:60)
 at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:94)
 at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
 at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:94)
 at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
 at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:94)
 at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:23)
 at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:94)
 at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
 at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:94)
 at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:41)
 at org.jetbrains.kotlin.backend.konan.KonanDriverKt.runTopLevelPhases(KonanDriver.kt:29)
 at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:78)
 at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:35)
 at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
 at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
 at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
 at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:225)
 at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
 at org.jetbrains.kotlin.cli.bc.K2Native$Companion$main$1.invoke(K2Native.kt:265)
 at org.jetbrains.kotlin.cli.bc.K2Native$Companion$main$1.invoke(K2Native.kt:262)
 at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:27)
 at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:21)
 at org.jetbrains.kotlin.cli.bc.K2Native$Companion.main(K2Native.kt:264)
 at org.jetbrains.kotlin.cli.bc.K2NativeKt.main(K2Native.kt:458)
 at org.jetbrains.kotlin.cli.utilities.MainKt$main$1.invoke(main.kt:37)
 at org.jetbrains.kotlin.cli.utilities.MainKt$main$1.invoke(main.kt)
 at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:17)
 at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:37)

About

Reproducing an assertion violation with konan 1.4.20-M1-61


Languages

Language:Kotlin 100.0%