lenary / checkedc-llvm-test-suite

This repo contains a version of the LLVM test suite that is being modified to use Checked C. The modified programs will be used to benchmark the implementation of Checked C in clang/LLVM. Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.

Home Page:https://www.microsoft.com/en-us/research/project/checked-c/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Checked C LLVM test-suite repo

This repo contains a version of the LLVM test-suite repo that is being modified to use Checked C. The modified programs will be used to benchmark the Checked C version of LLVM/clang.

We have deleted test-only code from the master branch of the repo and left only benchmarks in the master branch. That makes the repo easier to work with. It decreases disk usage from about 2.3 GBytes to under 500 MBytes when using the master branch.

Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses. For more information on Checked C, see the Checked C specification in the Checked C repo. The Checked C version of LLVM/clang lives in two repos: the Checked C clang repo and the Checked C LLVM repo.

Status

At this time, no benchmarks have been converted to use Checked C.

Branch organization

There are 3 branches in the repo:

  • master: this branch contains benchmarks, some of which may have been modified to use Checked C.
  • baseline: this branch contains benchmarks that have not been modified.
  • original: this contains all the tests, including application tests.

This master branch should be used for modifying benchmarks. This branch can be diffed against the baseline branch to see the changes in benchmarks. The original branch can be used to test that the Checked C implementation has not broken existing tests.

Running tests

To run tests on Linux, see the LNT quick start directions on the LLVM site. You will want to add the argument --ccflags -fcheckedc-extension to the LNT command-line. The tests can also be run on Windows 10 using the Windows Subsystem for Linux. See the directions here.

Contributing

We would be happy for people to convert existing benchmarks to use Checked C. 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 a converted benchmark.

For more information on contributing on the Checked C project, see Contributing to Checked C.

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.

About

This repo contains a version of the LLVM test suite that is being modified to use Checked C. The modified programs will be used to benchmark the implementation of Checked C in clang/LLVM. Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.

https://www.microsoft.com/en-us/research/project/checked-c/

License:Other


Languages

Language:C 53.7%Language:C++ 29.3%Language:Awk 5.7%Language:PostScript 2.6%Language:OpenEdge ABL 2.3%Language:Makefile 1.2%Language:Objective-C 0.9%Language:Perl 0.8%Language:Shell 0.8%Language:Cuda 0.6%Language:Fortran 0.5%Language:CMake 0.5%Language:Python 0.4%Language:Emacs Lisp 0.3%Language:Yacc 0.1%Language:JavaScript 0.1%Language:QMake 0.1%Language:M4 0.1%Language:Lua 0.0%Language:Limbo 0.0%Language:PHP 0.0%Language:Roff 0.0%Language:LLVM 0.0%Language:Brainfuck 0.0%Language:SourcePawn 0.0%Language:Batchfile 0.0%