This repo contains a version of the LLVM/Clang toolchain that is being modified to support the Secure Software Development Project (SSDP) fork of Checked C. Checked C extends C with checking to detect or prevent common programming errors such as out-of-bounds memory accesses. The SSDP fork of the Checked C specification is available at the SSDP Checked C repo.
On Feb 19, 2021 we updated the checkedc-clang sources to upstream release_110, specifically this commit.
On Feb 18, 2020 we updated the checkedc-clang sources to upstream release_90, specifically this commit.
Programmers are welcome to use Checked C as it is being implemented. You will have to build your own copy of the compiler. For directions on how to do this, see the Checked C clang wiki. The compiler user manual is here. For more information on Checked C and pointers to example code, see our 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
For more information on the SSDP Checked C clang compiler, see the SSDP LLVM Project wiki.
Automated builds are not currently available.
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.