The Checked C clang repo
This repo contains a version of the LLVM/Clang toolchain that is being modified
to support Checked C. Checked C extends C with checking to detect or prevent
common programming errors such as out-of-bounds memory accesses. The Checked
C specification is available at the
Checked C repo.
Announcement
Earlier this year, the LLVM community
transitioned to
"monorepo".
We moved Checked C to a monorepo on Oct 30, 2019. This has resulted in the following changes:
-
checkedc-llvm and
checkedc-clang (as well as other
LLVM subprojects) are now tracked via a single git repo. -
The checkedc-llvm repo will
no longer be maintained. The
checkedc-clang repo will be the
new monorepo. -
There will be no changes to the
checkedc repo. It will continue to be
a separate git repo. -
All future patches should be based off this new monorepo.
-
You can use
this
script to cherry-pick your existing patches to the new monorepo. -
Make sure to set the following CMake flag to enable clang in your builds:
-DLLVM_ENABLE_PROJECTS=clang
We are hiring.
We have positions available for a Principal Software
Engineer
and a Senior Software
Engineer.
We are looking for an engineer who has production compiler development
experience and who values shipping software.
Trying out Checked C
Programmers are welcome to use Checked C as it is being implemented. We have
pre-built compiler installers for Windows available for download on the
release page. For
other platforms, 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.
More information
For more information on the Checked C clang compiler, see the Checked C clang
wiki.
Build Status, Configuration, Testing, Status, --------, ---------------, -------, Debug X86 Windows, Checked C and clang regression tests,
, Debug X64 Windows, Checked C and clang regression tests,
, Debug X64 Linux, Checked C and clang regression tests,
, Release X64 Linux, Checked C, clang, and LLVM nightly tests,
, ## Contributing
We welcome contributions to the Checked C project. To get involved in the
project, see Contributing to Checked
C. We
have a wish list of possible projects there.
For code contributions, we follow the standard Github
workflow. See Contributing to
Checked C
for more detail. You will need to sign a contributor license agreement before
contributing code.
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.