Affiliation:
1. University of Utah, Salt Lake City, UT, USA
Abstract
Compilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized test-case generation tool, and spent three years using it to find compiler bugs. During this period we reported more than 325 previously unknown bugs to compiler developers. Every compiler we tested was found to crash and also to silently generate wrong code when presented with valid input. In this paper we present our compiler-testing tool and the results of our bug-hunting study. Our first contribution is to advance the state of the art in compiler testing. Unlike previous tools, Csmith generates programs that cover a large subset of C while avoiding the undefined and unspecified behaviors that would destroy its ability to automatically find wrong-code bugs. Our second contribution is a collection of qualitative and quantitative results about the bugs we have found in open-source C compilers.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference32 articles.
1. ACE Associated Computer Experts. SuperTest C/C+ compiler test and validation suite. http://www.ace.nl/compiler/supertest.html ACE Associated Computer Experts. SuperTest C/C+ compiler test and validation suite. http://www.ace.nl/compiler/supertest.html
2. Compiler test case generation methods: a survey and assessment
3. The automatic generation of test cases for optimizing Fortran compilers
Cited by
169 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. LOOL: Low-Overhead, Optimization-Log-Guided Compiler Fuzzing (Registered Report);Proceedings of the 3rd ACM International Fuzzing Workshop;2024-09-13
2. AsFuzzer: Differential Testing of Assemblers with Error-Driven Grammar Inference;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
3. Evaluating the Effectiveness of Decompilers;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
4. LPR: Large Language Models-Aided Program Reduction;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
5. Type-Level Property Based Testing;Proceedings of the 9th ACM SIGPLAN International Workshop on Type-Driven Development;2024-08-28