github microsoft/checkedc-clang v0.7-devbuild-2018-04-27-2018
2018-04-27 Developer build of Checked C clang compiler

Summary

This is a developer build of the Checked C clang compiler. It is for use by developers who want to try out the Checked C extension while it is being implemented. We do not recommend using this compiler in production environments because core extension features are still under active development.

Installation Notes

Clang expects an existing C/C++ compiler before running the installer. If installing on a fresh machine, first install the C/C++ compiler. We recommend using Visual Studio 2017, which has a free Community version available. Use Visual Studio 2017's built in feature installer to ensure a C/C++ compiler and runtime are present before installing Checked C clang.

  • The binaries are installers for 32-bit and 64-bit Windows versions of the compiler
  • The compiler will be installed in a separate directory from your existing clang install. If you are also using the production version of clang, do not add the Checked C version to your path.
  • If you could use prebuilt binaries for another OS, please open an issue.

Using the compiler

See the Checked C clang users manual for directions on how to use the compiler.

To change the compiler to Checked C clang in a Visual Studio project, open the project Properties and set "Platform Toolset" to one of the "CheckedC-LLVM" versions in the drop-down. (If there are no CheckedC-LLVM options in the "Platform Toolset" dropdown, try reinstalling Checked C clang.)

Change notes

  • Rename BOUNDS_CHECKED pragma to CHECKED_SCOPE.
  • Static checking now produces an error message when inferred bounds contain modifying expressions (#480).
  • Fix compiler crash when using a function in a checked scope that returns a function pointer with a bounds-safe interface (#483).
  • Fix incorrect typechecking error when making an indirect function call via a const member (#482).

Extension features implemented

See the implementation roadmap and status. Some runtime checks and a lot of the static checking is not implemented yet.

Don't miss a new checkedc-clang release

NewReleases is sending notifications on new releases.