Skip to content
@checkedc

Checked C

Supporting the development of Checked C, an extension to C for writing more secure and reliable C programs.

Helping developers write more secure systems code

About Checked C

Checked C extends C with bounds checking and improved type-safety. This helps developers write more secure systems code.

  • It is opt-in and backwards compatible. As a developer, you add annotations and/or modify types to opt-in to bounds checking and type-safety.
  • All existing C code is valid Checked C code.
  • It supports incremental conversion of code. You can convert a few security-critical functions or your entire program, and do the conversion as you have time.
  • It supports annotations that can be erased from your program using macros, so that your Checked C code can compile with C compilers that do not understand Checked C annotations.

Checked C includes a language specification, samples, a compiler, and 3C, a tool for translating existing C code to Checked C.

About the Project

The language specification and compiler were developed at Microsoft from 2015-2021. The Checked C effort now continues as an active open-source research project. Recent contributions include:

  • The 3C tool for translating C to Checked C (Aravind Machiry, Mike Hicks and others). A paper on this tool appeared in OOPSLA '22 and won a Distinguished Paper award.
  • Fat-pointers for temporal safety (Jie Zhou, John Criswell, and Mike Hicks). This work will appear in the upcoming OOPSLA ’23 conference.
  • Support for erasing annotations for C compilers that don’t support Checked C (in progress).
  • Experiments with converting open-source systems code.

As of 2023, we're officially a non-profit! This supports continuity of the project beyond any one person, helps us keep track of intellectual property rights, and will let us raise funds so support project activities.

Pinned Loading

  1. checkedc checkedc Public

    Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety. The goal is to let people easily make their existing C code type-safe and eliminate …

    C 3.2k 185

  2. checkedc-clang checkedc-clang Public

    This repo contains a version of clang that is being modified to support Checked C. Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe.

    C++ 504 78

Repositories

Showing 10 of 15 repositories
  • checkedc Public

    Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors.

    checkedc/checkedc’s past year of commit activity
    C 3,219 185 72 0 Updated Oct 7, 2024
  • checkedc-clang Public

    This repo contains a version of clang that is being modified to support Checked C. Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe.

    checkedc/checkedc-clang’s past year of commit activity
    C++ 504 78 161 1 Updated Oct 5, 2024
  • checkedc-fork Public archive

    This was a fork of Checked C used from 2021-2024. The changes have been merged into the original Checked C repo.

    checkedc/checkedc-fork’s past year of commit activity
    C 26 3 68 0 Updated Sep 30, 2024
  • checkedc-llvm-project Public

    This was a fork of Checked C clang used from 2021-2024. The changes have been merged into the original Checked C clang repo, which is now at https://github.com/checkedc/checkedc-clang.

    checkedc/checkedc-llvm-project’s past year of commit activity
    C++ 14 19 167 2 Updated Sep 30, 2024
  • workflows Public

    Checked C workflows for GitHub Actions

    checkedc/workflows’s past year of commit activity
    Shell 0 0 1 0 Updated Sep 24, 2024
  • checkedc-libc-test Public

    This repo contains a version of libc-test that is modified to test a Checked C version of the musl C library. Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.

    checkedc/checkedc-libc-test’s past year of commit activity
    C 0 0 0 0 Updated Aug 22, 2024
  • checkedc-musl Public

    This repo contains a version of musl that is being modified to Checked C. Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.

    checkedc/checkedc-musl’s past year of commit activity
    C 0 0 0 0 Updated Aug 22, 2024
  • checkedc-parson Public

    This is modified version of parson that uses the Checked C extension to C. Parson is a lightweight json parsing library.

    checkedc/checkedc-parson’s past year of commit activity
    C 0 0 0 0 Updated Aug 22, 2024
  • .github Public
    checkedc/.github’s past year of commit activity
    0 0 0 0 Updated Nov 26, 2023
  • checkedc/checkedc-llvm-test-suite’s past year of commit activity
    C 0 0 1 0 Updated Jul 29, 2023