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.5 of Coccinelle has been released and is available at http://coccinelle.lip6.fr/download.php. The most significant change is that Coccinelle now makes a very minimal attempt to parse C++ code. We hope to further improve the support for C++ in the near future. Some other new features are as follows: * Support for iteration of a semantic patch over a code base. This can be useful for performing simple interprocedural analyses. An example is found in demos/iteration.cocci. The specification of the iteration process must currently be done in an ocaml script. * Improved treatment of #endif, __attribute__((...)), #undef, and arrays. * Added the "field list" metavariable type and the "metavariable" metavariable type. The latter can be used when knowing whether a metavariable represents an expression, statement, etc is not necessary for parsing the SmPL code. * Allow transformation on variable declarations declaring multiple variables in some cases. More information about this is available in the entry "More that one variable in decl error" in the wiki (http://cocci.ekstranet.diku.dk/wiki/doku.php). The complete set of changes is available at http://coccinelle.lip6.fr/distrib/changes.html _______________________________________________ Cocci mailing list Cocci@diku.dk http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)