Merge tag 'du-next-20210105' of git://linuxtv.org/pinchartl/media into drm-next
[linux-2.6-microblaze.git] / scripts / coccinelle / misc / noderef.cocci
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// sizeof when applied to a pointer typed expression gives the size of
3 /// the pointer
4 ///
5 // Confidence: High
6 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
7 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
8 // URL: http://coccinelle.lip6.fr/
9 // Comments:
10 // Options: --no-includes --include-headers
11
12 virtual org
13 virtual report
14 virtual context
15 virtual patch
16
17 @depends on patch@
18 expression *x;
19 expression f;
20 expression i;
21 type T;
22 @@
23
24 (
25 x = <+... sizeof(
26 - x
27 + *x
28    ) ...+>
29 |
30 f(...,(T)(x),...,sizeof(
31 - x
32 + *x
33    ),...)
34 |
35 f(...,sizeof(
36 - x
37 + *x
38    ),...,(T)(x),...)
39 |
40 f(...,(T)(x),...,i*sizeof(
41 - x
42 + *x
43    ),...)
44 |
45 f(...,i*sizeof(
46 - x
47 + *x
48    ),...,(T)(x),...)
49 )
50
51 @r depends on !patch@
52 expression *x;
53 expression f;
54 expression i;
55 position p;
56 type T;
57 @@
58
59 (
60 *x = <+... sizeof@p(x) ...+>
61 |
62 *f(...,(T)(x),...,sizeof@p(x),...)
63 |
64 *f(...,sizeof@p(x),...,(T)(x),...)
65 |
66 *f(...,(T)(x),...,i*sizeof@p(x),...)
67 |
68 *f(...,i*sizeof@p(x),...,(T)(x),...)
69 )
70
71 @script:python depends on org@
72 p << r.p;
73 @@
74
75 cocci.print_main("application of sizeof to pointer",p)
76
77 @script:python depends on report@
78 p << r.p;
79 @@
80
81 msg = "ERROR: application of sizeof to pointer"
82 coccilib.report.print_report(p[0],msg)