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