Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Fuzz Testing Software
  3. Csmith

Csmith

What it is

Csmith is a free tool that generates random C programs to help find compiler bugs through differential testing. Its generated programs avoid undefined behavior and include statistics for each program. A documented workflow compiles generated code with GCC and Clang, then compares the outputs to look for differences. The project also suggests using Csmith to produce material for a C-program test suite when users do not want to write one themselves. Command-line options customize generation. Csmith runs locally, with project instructions for Linux and Windows: Windows builds use Visual Studio or WSL, while Ubuntu source-build instructions list g++, CMake, and m4. The project says it should build on most modern machines with a C++ compiler. Generated programs may run into infinite loops, so the README recommends timeouts when executing them. The repository includes a COPYING license file. Bug reports and suggestions go through GitHub issues, and a mailing list is available for discussion; maintainers caution that replies may take time because they maintain the project in their discretionary time.

For and against

For

  • Generated programs avoid undefined behavior.
  • Per-program statistics are included.
  • Documents a GCC and Clang output-comparison workflow.
  • Command-line options customize generation.
  • Project documents Linux and Windows builds.

Against

  • Generated programs may contain infinite loops.
  • Maintainer responses may be delayed.

The verdict

Csmith provides a local way to generate C programs for compiler testing and test-suite creation. Users should apply execution timeouts and allow for possible delays in maintainer responses.

Who it suits

Csmith suits compiler developers and testers who need generated C programs for differential testing or test-suite creation. It is aimed at users comfortable building and running command-line software.

Plans and prices

Csmith

Free

Open-source C program generator

Every plan, in full

On the record

Build compatibility
The INSTALL file says Csmith should build on most modern machines with a C++ compiler.github.com · read 4 Oct 2026
Compiler workflow
The README demonstrates compiling generated programs with GCC and Clang and comparing their outputs to identify compiler bugs.github.com · read 4 Oct 2026
Customization
Command-line options shown by `csmith -h` and `csmith -hh` customize random generation.github.com · read 4 Oct 2026
Execution limit
Generated programs might contain infinite loops, and the README recommends applying timeouts to their execution.github.com · read 4 Oct 2026
License
The repository includes a COPYING license file.github.com · read 4 Oct 2026
Linux build
The Ubuntu build instructions list g++, CMake, and m4 as prerequisites and use CMake and make to install from source.github.com · read 4 Oct 2026
Origin
Csmith was originally developed at the University of Utah as part of a compiler-testing research project and was open-sourced in 2009.github.com · read 4 Oct 2026
Other use
The project suggests using Csmith to create a C-program test suite when users do not want to write one themselves.github.com · read 4 Oct 2026
Purpose
Csmith generates random C programs to find compiler bugs using differential testing.github.com · read 4 Oct 2026
Safe output
Generated C programs are free of undefined behaviors and include per-program statistics.github.com · read 4 Oct 2026
Support
The project directs users to GitHub issues for bug reports and suggestions and provides a mailing list for discussion.github.com · read 4 Oct 2026
Support response
The maintainers say they maintain Csmith in their discretionary time and responses to bug reports or feature requests may be delayed.github.com · read 4 Oct 2026
Windows build
The project documents building on Windows with Visual Studio or WSL.github.com · read 4 Oct 2026

Alternatives to Csmith

Every alternative, ranked