Release coccinelle-0.2.0
[bpt/coccinelle.git] / scripts / coccicheck / cocci / kmalloc7.cocci
CommitLineData
951c7801
C
1//
2// kmalloc 7
3//
4//
5
6virtual org,diff
7
8@r exists@
9local idexpression x;
10statement S;
11expression E;
12identifier f,l;
13position p1,p2,p3;
14expression *ptr != NULL;
15@@
16
17(
18if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S
19|
20x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
21...
22if (x == NULL) S
23)
24<... when != x
25 when != if (...) { <+...x...+> }
26(
27goto@p3 l;
28|
29x->f = E
30)
31...>
32(
33 return \(0\|<+...x...+>\|ptr\);
34|
35 return@p2 ...;
36)
37
38@script:python depends on org@
39p1 << r.p1;
40p2 << r.p2;
41p3 << r.p3;
42@@
43
44cocci.print_main("",p1)
45cocci.print_secs("", p2)
46cocci.print_secs("goto", p3)
47cocci.include_match(False)
48
49@script:python depends on org@
50p1 << r.p1;
51p2 << r.p2;
52@@
53
54cocci.print_main("",p1)
55cocci.print_secs("", p2)
56
57@with_goto depends on diff@
58expression x;
59identifier l;
60position r.p1, r.p2, r.p3;
61@@
62
63*x@p1
9f8e26f4 64<...
951c7801 65*goto@p3 l;
9f8e26f4 66...>
951c7801 67*return@p2 ...;