Linux 5.0.8
[linux/fpc-iii.git] / scripts / coccinelle / misc / noderef.cocci
blob007f0de0c715a6770d5f28f1e64f7cac87d42325
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
11 virtual org
12 virtual report
13 virtual context
14 virtual patch
16 @depends on patch@
17 expression *x;
18 expression f;
19 expression i;
20 type T;
24 x = <+... sizeof(
25 - x
26 + *x
27    ) ...+>
29 f(...,(T)(x),...,sizeof(
30 - x
31 + *x
32    ),...)
34 f(...,sizeof(
35 - x
36 + *x
37    ),...,(T)(x),...)
39 f(...,(T)(x),...,i*sizeof(
40 - x
41 + *x
42    ),...)
44 f(...,i*sizeof(
45 - x
46 + *x
47    ),...,(T)(x),...)
50 @r depends on !patch@
51 expression *x;
52 expression f;
53 expression i;
54 position p;
55 type T;
59 *x = <+... sizeof@p(x) ...+>
61 *f(...,(T)(x),...,sizeof@p(x),...)
63 *f(...,sizeof@p(x),...,(T)(x),...)
65 *f(...,(T)(x),...,i*sizeof@p(x),...)
67 *f(...,i*sizeof@p(x),...,(T)(x),...)
70 @script:python depends on org@
71 p << r.p;
74 cocci.print_main("application of sizeof to pointer",p)
76 @script:python depends on report@
77 p << r.p;
80 msg = "ERROR: application of sizeof to pointer"
81 coccilib.report.print_report(p[0],msg)