Coccinelle release 1.0.0-rc4
[bpt/coccinelle.git] / tests / null.cocci
CommitLineData
34e49164
C
1// The first two rules only work when there is only one reference.
2
3@@
4expression *x;
5type T;
6expression e;
7expression f;
8@@
9 if(x == NULL) {
10 ... when != x = e
11(
12 return x;
13|
34e49164
C
14(
15 *x
16|
17 *((T)x)
18|
19 f(...,x,...)
20|
21 f(...,(T)x,...)
22)
34e49164
C
23)
24 ...
25 }
26
27@@
28expression *x;
29type T;
30expression e;
31expression f;
32statement S;
33@@
34 if(x != NULL) S else {
35 ... when != x = e
36(
37 return x;
38|
34e49164
C
39(
40 *x
41|
42 *((T)x)
43|
44 f(...,x,...)
45|
46 f(...,(T)x,...)
47)
34e49164
C
48)
49 ...
50 }
51
52@@
53expression *x;
54type T1, T2, T3;
55expression e;
56expression f;
57statement S;
58@@
59 x = (T1) kmalloc(...);
60 ... when != \( if(x == NULL) { ... return ...; } \| if(x == NULL) S else { ... return ...; } \| x = e; \)
61(
62 return x;
63|
34e49164
C
64(
65 *x
66|
67 *((T2)x)
68|
69 f(...,x,...)
70|
71 f(...,(T3)x,...)
72)
34e49164 73)