Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, and test code.
Перейти к файлу
Sam Elliott 3febc2c49e
Technical Report Number 2 (#248)
The overall output of my work in 2017.
2018-01-22 13:22:39 -08:00
include Make Fortify-source definitions more fine-grained (#239) 2017-11-15 12:38:15 -08:00
papers/dynamic_checks Technical Report Number 2 (#248) 2018-01-22 13:22:39 -08:00
samples Remove -fcheckedc-extension flag. (#244) 2017-12-21 19:28:38 -05:00
spec Allow writing a 0 at the upper bound of a null-terminated array. (#242) 2017-11-29 16:22:34 -05:00
tests Error messages for problems involving return statements. (#247) 2018-01-09 14:42:51 -08:00
CONTRIBUTING.md Update README.md and other md files. (#77) 2016-11-22 12:01:16 -08:00
LICENSE.TXT Update copyright notice. 2016-06-13 11:03:35 -07:00
MAILING-LISTS.md Update README.md and other md files. (#77) 2016-11-22 12:01:16 -08:00
README.md Update README.md and other md files. (#77) 2016-11-22 12:01:16 -08:00
WishList.md Add a wish list of projects. (#27) 2016-06-15 09:44:04 -07:00

README.md

Checked C

Checked C is an extension to C that adds static and dynamic checking to detect or prevent common programming errors such as buffer overruns, out-of-bounds memory accesses, and incorrect type casts. This repo contains the specification for the extension, test code, and samples. For the latest version of the specification and the draft of the next version, see the Checked C releases page.

We are creating a modified version of LLVM/clang that supports Checked C. The code for the modified version of LLVM/clang lives in the Checked C clang repo and the Checked C LLVM repo.

Getting involved

You can join the mailing lists for announcements and weekly status updates about the project. There are a variety of ways to get involved in the project, including opening issues, contributing changes to the specification, or helping out with the compiler and tools implementation. See contributing for more information.

Licensing

The software in this repository is covered by the MIT license. See the file LICENSE.TXT for the license. The Checked C specification is made available by Microsoft under the OpenWeb Foundation Final Specification Agreement, version 1.0. Contributions of code to the Checked LLVM/clang repos are subject to the CLANG/LLVM licensing terms.

Code of conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.