articleJun 4, 2011Closed access

Finding and understanding bugs in C compilers

University of Utah

Indexed incrossref

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…

Citation impact

729
total citations
FWCI
26.34
Percentile
100%
References
24
Citations per year

Authors

4

Topics & keywords

Keywords
  • Compiler
  • Computer science
  • Programming language
  • Interprocedural optimization
  • Compiler correctness
  • Software bug
  • Crash
  • Compiler construction
No related works found for this paper.