Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing
summary
Presents CrossLangFuzzer, a framework that defines a universal IR for JVM-based languages and automatically generates cross-language test programs (with varied type parameters and inheritance) to exercise Kotlin, Groovy, Scala 2/3 and Java compilers. It applies three mutations—LangShuffler, FunctionRemoval, and TypeChanger—to diversify programs, runs differential testing across compiler versions, reports 24 confirmed bugs (TypeChanger found 11), and analyzes symptoms and root causes to clarify compiler responsibilities in cross-language compilation.
AI-written summary · about
related talks
53mLocknote: How Badly Do We Want Correct Compilers?
15mWell-Typed Programs Can Go Wrong: A Study of Typing-Related Bugs in JVM Compilers
18mOptimization-Directed Compiler Fuzzing for Continuous Translation Validation
53mFrom Within: Compiler Testing and Validation via Compilers
22mBoosting Compiler Testing by Injecting Real-World Code
19mRustlantis: Randomized Differential Testing of the Rust Compiler
52mStructure aware fuzzing
16mRandomised Testing of the Dafny Compiler
