Commit | Line | Data |
---|---|---|
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 | ) |