mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
coccinelle: api: check for macro context
A cast on a call to an allocation function that is the body of a macro can be useful, as it ensures tha the macro is used for allocating objects of the right type. Add two new rules to ignore the macro case. Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
This commit is contained in:
parent
5adb3698bb
commit
b64acacd54
|
|
@ -20,6 +20,24 @@ virtual patch
|
|||
virtual org
|
||||
virtual report
|
||||
|
||||
@m1@
|
||||
identifier i;
|
||||
expression e;
|
||||
type T;
|
||||
position p1;
|
||||
@@
|
||||
|
||||
#define i (T@p1 *)e
|
||||
|
||||
@m2@
|
||||
identifier i;
|
||||
expression e;
|
||||
type T;
|
||||
position p2;
|
||||
@@
|
||||
|
||||
#define i(...) (T@p2 *)e
|
||||
|
||||
@initialize:python@
|
||||
@@
|
||||
import re
|
||||
|
|
@ -28,9 +46,10 @@ m = re.compile(pattern)
|
|||
|
||||
@r1 depends on context || patch@
|
||||
type T;
|
||||
position p != {m1.p1,m2.p2};
|
||||
@@
|
||||
|
||||
(T *)
|
||||
(T@p *)
|
||||
\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
|
||||
kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\|
|
||||
dma_alloc_coherent\|devm_kmalloc\|devm_kzalloc\|
|
||||
|
|
@ -90,7 +109,7 @@ type r1.T;
|
|||
|
||||
@r2 depends on org || report@
|
||||
type T;
|
||||
position p;
|
||||
position p != {m1.p1,m2.p2};
|
||||
@@
|
||||
|
||||
(T@p *)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user