Coccinelle is a tool for matching and transformation of C code. Coccinelle is well suited for automating low-level evolutions, such as updating the use of APIs, and for bug finding. Examples are available on the Coccinelle web site (http://coccinelle.lip6.fr/). A number of bug-finding rules are also available in the Linux kernel source code (versions since 2.6.36) in the directory scripts/coccinelle.
Version 0.2.4 of Coccinelle has been released and is available at http://coccinelle.lip6.fr/download.php. Some of the new features in this version are as follows: * Python or Ocaml script rules can have names and can declare identifier metavariables that can be inherited by subsequent SmPL rules. * Several new types of metavariables have been added: declaration, field, struct, and enum. The latter two match any expression of structure type or enum type, respectively. Furthermore, the only typed expression metavariables that match a sizeof expression are those with type size_t, and the only typed expression metavariables that match a pointer difference expression are those of type ptrdiff_t. * Array initializers and enum declarations can now be matched. * Coccinelle is compatible with Python 2.7 * The option -recursive_includes causes Coccinelle to recursively unfold include files. * There have been some improvements in type inference and pretty printing for C code. * Indexing using id-utils is now supported (http://www.gnu.org/software/idutils/) The complete set of changes is available at http://coccinelle.lip6.fr/distrib/changes.html _______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
