Release coccinelle-0.1
[bpt/coccinelle.git] / demos / sgrep / free.sgrep
1 @@
2 identifier x;
3 expression E,E1;
4 expression f;
5 identifier fld;
6 @@
7
8 (
9 free(x);
10 |
11 kfree(x);
12 |
13 kfree_skb(x);
14 |
15 dev_kfree_skb(x);
16 |
17 dev_kfree_skb_any(x);
18 )
19 ... WHEN != x = E
20 (
21 f(...,x,...)
22 |
23 *x
24 |
25 x[E1]
26 |
27 x->fld
28 )
29
30 @@
31 identifier x;
32 expression E;
33 @@
34
35 (
36 free(x);
37 |
38 kfree(x);
39 |
40 kfree_skb(x);
41 |
42 dev_kfree_skb(x);
43 |
44 dev_kfree_skb_any(x);
45 )
46 ... WHEN != x = E
47 return x;
48
49 //------------------------------------------------------------
50 @@
51 expression x;
52 expression E,E1,E2;
53 expression f;
54 identifier fld;
55 @@
56
57 (
58 free(x[E2]);
59 |
60 kfree(x[E2]);
61 |
62 kfree_skb(x[E2]);
63 |
64 dev_kfree_skb(x[E2]);
65 |
66 dev_kfree_skb_any(x[E2]);
67 )
68 ... WHEN != \(x = E \| E2 = E\)
69 (
70 f(...,x[E2],...)
71 |
72 *x[E2]
73 |
74 x[E2][E1]
75 |
76 x[E2]->fld
77 )
78
79 @@
80 expression x;
81 expression E;
82 @@
83
84 (
85 free(x[E2]);
86 |
87 kfree(x[E2]);
88 |
89 kfree_skb(x[E2]);
90 |
91 dev_kfree_skb(x[E2]);
92 |
93 dev_kfree_skb_any(x[E2]);
94 )
95 ... WHEN != \(x = E \| E2 = E\)
96 return x[E2];
97
98 //------------------------------------------------------------
99 @@
100 expression x;
101 expression E,E1;
102 expression f;
103 identifier fld,f1;
104 @@
105
106 (
107 free(x->f1);
108 |
109 kfree(x->f1);
110 |
111 kfree_skb(x->f1);
112 |
113 dev_kfree_skb(x->f1);
114 |
115 dev_kfree_skb_any(x->f1);
116 )
117 ... WHEN != \(x = E\|x->f1 = E\)
118 (
119 f(...,x->f1,...)
120 |
121 *x->f1
122 |
123 x->f1[E1]
124 |
125 x->f1->fld
126 )
127
128 @@
129 expression x;
130 expression E;
131 @@
132
133 (
134 free(x->f1);
135 |
136 kfree(x->f1);
137 |
138 kfree_skb(x->f1);
139 |
140 dev_kfree_skb(x->f1);
141 |
142 dev_kfree_skb_any(x->f1);
143 )
144 ... WHEN != \(x = E\|x->f1 = E\)
145 return x->f1;
146
147 //------------------------------------------------------------
148 @@
149 expression x;
150 expression E,E1;
151 expression f;
152 identifier fld;
153 @@
154
155 (
156 free(*x);
157 |
158 kfree(*x);
159 |
160 kfree_skb(*x);
161 |
162 dev_kfree_skb(*x);
163 |
164 dev_kfree_skb_any(*x);
165 )
166 ... WHEN != \(x = E\|*x = E\)
167 (
168 f(...,*x,...)
169 |
170 **x
171 |
172 *x[E1]
173 |
174 *x->fld
175 )
176
177 @@
178 expression x;
179 expression E;
180 @@
181
182 (
183 free(*x);
184 |
185 kfree(*x);
186 |
187 kfree_skb(*x);
188 |
189 dev_kfree_skb(*x);
190 |
191 dev_kfree_skb_any(*x);
192 )
193 ... WHEN != \(x = E\|*x = E\)
194 return *x;
195
196 //------------------------------------------------------------