This repo contains a version of the LLVM/Clang toolchain that has been modified to support Checked C. Checked C extends C with bounds checking and improved type-safety. The Checked C specification is available at the Checked C repo release page.
You can install the Checked C compiler and the 3C tool from the Checked C LLVM Project releases page. There are versions available for Ubuntu 22.04, Windows 10/11, and MacOS. The compiler user manual is here. For more information on Checked C and pointers to example code, see the Checked C wiki. If you want to build your own copy of the compiler, see the directions on the Checked C LLVM Project wiki.
You can use clangd
built from this repository to get similar IDE support for
editing Checked C code as upstream clangd
provides for C code. For example,
you can jump to definition/references and get a real-time display of errors and
warnings, etc. Here is more information about Checked C's
clangd
.
This repository includes a tool called 3C that partially automates the conversion of C code to Checked C. Quick documentation links:
General information, including development status and how to contribute
Build instructions
Usage instructions for the 3c
command-line tool
For more information on the Checked C clang compiler, see the Checked C LLVM Project wiki.
We welcome contributions to the Checked C project. To get involved in the project, see Contributing to Checked C.
For code contributions, we follow the standard Github workflow. See Contributing to Checked C for more detail.
This project has adopted a code of conduct.