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)

Reply via email to