Merge tag 'block-5.11-2021-01-10' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / scripts / coccinelle / misc / noderef.cocci
blob72de62a77a44663d1ec4bc5e7afc6ddc741c8cc5
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
12 virtual org
13 virtual report
14 virtual context
15 virtual patch
17 @depends on patch@
18 expression *x;
19 expression f;
20 expression i;
21 type T;
25 x = <+... sizeof(
26 - x
27 + *x
28    ) ...+>
30 f(...,(T)(x),...,sizeof(
31 - x
32 + *x
33    ),...)
35 f(...,sizeof(
36 - x
37 + *x
38    ),...,(T)(x),...)
40 f(...,(T)(x),...,i*sizeof(
41 - x
42 + *x
43    ),...)
45 f(...,i*sizeof(
46 - x
47 + *x
48    ),...,(T)(x),...)
51 @r depends on !patch@
52 expression *x;
53 expression f;
54 expression i;
55 position p;
56 type T;
60 *x = <+... sizeof@p(x) ...+>
62 *f(...,(T)(x),...,sizeof@p(x),...)
64 *f(...,sizeof@p(x),...,(T)(x),...)
66 *f(...,(T)(x),...,i*sizeof@p(x),...)
68 *f(...,i*sizeof@p(x),...,(T)(x),...)
71 @script:python depends on org@
72 p << r.p;
75 cocci.print_main("application of sizeof to pointer",p)
77 @script:python depends on report@
78 p << r.p;
81 msg = "ERROR: application of sizeof to pointer"
82 coccilib.report.print_report(p[0],msg)