CIL is a frontend for the C programming language which facilitates program analysis and transformation. CIL will parse and typecheck a program, and compile it into a simplified subset of C. For example, in CIL, all looping constructs are given a single form and expressions have no side effects. This reduces the number of cases which must be considered when manipulating a C program. CIL has been used for a variety of projects, including CCured, a tool which makes C programs memory safe. It supports ANSI C, as well as most of the extensions of the GNU C and Microsoft C compilers. A Perl script acts as a drop-in replacement for either gcc or Microsoft's cl, and allows merging of the source files in your project. Other features include support for control-flow and points-to analyses.
|Tags||Software Development Compilers|
Release Notes: This release fixes installation of the CIL library. It fixes machine-independent flags in cilly (eg. -fPIC).
Release Notes: Building and installation of the CIL library was fixed.
Release Notes: This release improves the build system and installation (available as an opam package).
Release Notes: This release supports C99 flexible array members, supports GCC’s “case range” extension (--useCaseRange), adds a “regtest” make target to run regression tests, installs cilly as a proper Perl script, and adds many bugfixes.
Release Notes: New features: support for static local variables and GCC’s "computed gotos" (or "labels as values"). Various bugfixes.