Coccinelle release 1.0.0c7.
** Language:
- scripts now have names and can declare metavariables that are seen by
SmPL as identifier metavariables, see demos/{python,ocaml}tococci.cocci
- declaration (match variable declarations) and field (match structure
field declarations) metavariables
- matching of array initializations and of enum declarations
** Features:
- compatability with Python 2.7. Thanks to Richard W.M. Jones for pointing
out the problem
- python and ocaml string representations of parameter lists and expression
lists
- try simpler patterns on glimpse failure
- graceful and immediate failure when a virtual rule is defined on the
command line, but not in the rule
- spatch returns -1 when a virtual rule is requested that is not supported
- no transformation when using * with the option -no_show_diff
- expanded +++ file name for match output
- struct *^* and enum *^* metavariable types
- allow an assignment to match a variable initialization, even if multiple
variables are declared at the same time.
- add the option -recursive_includes
** Bugfix:
- detect used after metavariables in simple statement metavariable match
- allow inheriting position variables over rules that make transformations
but depend on virtual rules that are not defined on the command line
- treat top-level tokens in decl visitor. Thanks to Peter Tummeltshammer
for noticing a resulting problem.
- improve typing of the result of an assignment expression
- eliminate some recursive calls in C code parsing to avoid stack overflows
- better pretty printing of #define when the whole line is removed
- better pretty printing of asm code containing
"::[input]"r"(&coherence_data[i])"
- allow pretty printing of C code with nameless bit fields
- avoid adding an error message to standard output if ocamlfind is not
found
- struct/union/enum-typed metavariables with a metavariable type name
- better management of whitespace between deleted lines. Thanks to
Andriy Gapon for noticing the problem.
- improved parsing recovery for badly parsed struct/enum typedefs
- drop expanded tokens in sgrep output. Thanks to Andriy Gapon for
noticing the problem.
- constant strings have array type, not pointer type. Thanks to Vasiliy
Kulikov for noticing the problem.
- improve indentation when adding code after a function call with indented
arguments.
- return type of sizeof converted to unsigned long. Thanks to Vasiliy
Kulikov for noticing the problem.
- improve spacing when adding structure initializers. Thanks to Vasiliy
Kulikov for noticing the problem.