The official project page is here.
Coccinelle is a C-program matching and transformation tool. To describe matching and transformation rules in the source code with a patch-like appearance, this tool employs a domain specific language called the Semantic Patch Language (SmPL), and attempts to manipulate the given C code based on the given SmPL rule.
I investigated Coccinelle's handleability of all function headers found in the Linux kernel and fixed most of issues that I detected. For 98% of the files, Coccinelle was able to parse all of the headers for their functions and it was possible to write a semantic patch rule that would successfully match the function header.
- Support for attributes between a type and identifiers
- Improvement of the C parser
- Support for attributes in function declaration and tests
- New algorithm to parse all attributes between a type and an identifier and just before ; or ,
- Support for attributes between type and identifiers in function parameters
- Support for attributes between a type and "*"
- Support for "signed/unsigned *" types
- Support for const/volatile after types
- Rename some constructors (refactoring)
- Support for macro-attributes with arguments
- Support for function pointers with attributes
- Support for use of const and volatile at the same time
- Support for identifiers with the same names as typedefed types
- Support for new attributes position
- Support for function attributes such as __aquire(x) and __releases(x).
- Support for mutltiple attributes
- Support for __attribute__ with multiple arguments