The main changes are:

* Better support for #endif and #undef

* A tiny effort to accomodate c++ code, with the option -c++.  This allows 
  some extra characters within identifiers.

* Support for iteration of a semantic patch over a directory.  Support is 
  now provided for creating something like a new instance of a semantic 
  patch that will be run on the directory again.  It is possible to 
  specify new virtual rules to be defined and new bindings of the virtual 
  identifiers.  It is also possible to restrict the set of files to 
  something smaller than the entire directory.  The initialize scripts and 
  finalize scripts are only run at the very beginning and at the very end, 
  making it possible to maintain information across different instances of 
  the samentic patch. For the moment, this is only supported from ocaml 
  code.  If anyone wants to port it to python, that would be most welcome.  
  And for the moment, it is necessary to give the option -no_show_diff.

An example of iteration is in demos/iteration.cocci.  This example first
finds functions that return ERR_PTR, and then finds functions that return
the result of those functions.  At the same time, for each found function,
it prints an org mode report when it finds a call with no IS_ERR test
before a dereference.  This semantic patch finds quite a lot of bugs in
linux-next, that I haven't had much time to look into.

julia
_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)

Reply via email to