Commit 2cbd08253a011bd9db9a51f15a974df3a779224b
Committed by
Michal Marek
1 parent
4619c2b830
Exists in
master
and in
20 other branches
scripts/coccinelle: sizeof of pointer
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.cz>
Showing 1 changed file with 65 additions and 0 deletions Side-by-side Diff
scripts/coccinelle/misc/noderef.cocci
1 | +/// sizeof when applied to a pointer typed expression gives the size of | |
2 | +/// the pointer | |
3 | +/// | |
4 | +// Confidence: High | |
5 | +// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | |
6 | +// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | |
7 | +// URL: http://coccinelle.lip6.fr/ | |
8 | +// Comments: | |
9 | +// Options: -no_includes -include_headers | |
10 | + | |
11 | +virtual org | |
12 | +virtual report | |
13 | +virtual context | |
14 | +virtual patch | |
15 | + | |
16 | +@depends on patch@ | |
17 | +expression *x; | |
18 | +expression f; | |
19 | +type T; | |
20 | +@@ | |
21 | + | |
22 | +( | |
23 | +x = <+... sizeof( | |
24 | +- x | |
25 | ++ *x | |
26 | + ) ...+> | |
27 | +| | |
28 | +f(...,(T)(x),...,sizeof( | |
29 | +- x | |
30 | ++ *x | |
31 | + ),...) | |
32 | +| | |
33 | +f(...,sizeof(x),...,(T)( | |
34 | +- x | |
35 | ++ *x | |
36 | + ),...) | |
37 | +) | |
38 | + | |
39 | +@r depends on !patch@ | |
40 | +expression *x; | |
41 | +expression f; | |
42 | +position p; | |
43 | +type T; | |
44 | +@@ | |
45 | + | |
46 | +( | |
47 | +*x = <+... sizeof@p(x) ...+> | |
48 | +| | |
49 | +*f(...,(T)(x),...,sizeof@p(x),...) | |
50 | +| | |
51 | +*f(...,sizeof@p(x),...,(T)(x),...) | |
52 | +) | |
53 | + | |
54 | +@script:python depends on org@ | |
55 | +p << r.p; | |
56 | +@@ | |
57 | + | |
58 | +cocci.print_main("application of sizeof to pointer",p) | |
59 | + | |
60 | +@script:python depends on report@ | |
61 | +p << r.p; | |
62 | +@@ | |
63 | + | |
64 | +msg = "ERROR: application of sizeof to pointer" | |
65 | +coccilib.report.print_report(p[0],msg) |