Add Coccinelle usage: one for blacklisting, one for patch collection
This is inspired by the [Coccinelle](http://coccinelle.lip6.fr/) usage in systemd. I also took it a bit further and added infrastructure to have spatches which should never apply. This acts as a blacklist. The reason to do the latter is that coccinelle is *way* more powerful than the regular expresssions we have in `make syntax-check`. I started with blacklisting `g_error_free()` directly. The reason that's bad is it leaves a dangling pointer. Closes: #754 Approved by: jlebon
This commit is contained in:
1 parent
ee626c2654
commit
305db981d4
12 files changed
+96
-26
No files matched your search
@@ -0,0 +1,6 @@
|
||||
This is a directory of semantic patches
|
||||
to apply with coccinelle, like the collection in systemd:
|
||||
https://github.com/systemd/systemd/tree/29f32655842a0712e8db482bcefc4da8908460c8/coccinelle
|
||||
|
||||
See also the tests/coccinelle directory which
|
||||
has spatches which detect errors.
|
||||
@@ -0,0 +1,22 @@
|
||||
@@
|
||||
expression p;
|
||||
@@
|
||||
- glnx_set_error_from_errno (p);
|
||||
- goto out;
|
||||
+ return glnx_throw_errno (p);
|
||||
@@
|
||||
expression p;
|
||||
@@
|
||||
- if (!p)
|
||||
- goto out;
|
||||
+ if (!p)
|
||||
+ return FALSE;
|
||||
@@
|
||||
expression p;
|
||||
@@
|
||||
- gboolean ret = FALSE;
|
||||
...
|
||||
- ret = TRUE;
|
||||
- out:
|
||||
- return ret;
|
||||
+ return TRUE;
|
||||
Reference in new issue
Block a user