Release coccinelle-0.2.4rc5
[bpt/coccinelle.git] / tests / bad_kfree.cocci
1 @print@
2 constant char [] c;
3 expression E1;
4 position p;
5 identifier f;
6 @@
7
8 f(...,c,...,E1@p,...)
9
10 @free@
11 expression E;
12 position p1;
13 @@
14
15 kfree@p1(E)
16
17 @r exists@
18 expression free.E, subE<=free.E, E2;
19 iterator iter;
20 statement S;
21 position free.p1,p2!=print.p;
22 @@
23
24 kfree@p1(E)
25 ...
26 (
27 iter(subE,...) S // no use
28 |
29 subE = E2 // no use
30 |
31 subE++ // no use
32 |
33 subE-- // no use
34 |
35 &subE // no use
36 |
37 - E@p2 // bad use
38 + NULL
39 )