Merge tag 'locks-v3.16-2' of git://git.samba.org/jlayton/linux
[linux/fpc-iii.git] / scripts / coccinelle / misc / noderef.cocci
blob80a831c91161a88deb402a5d4b99beb889d60484
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 type T;
23 x = <+... sizeof(
24 - x
25 + *x
26    ) ...+>
28 f(...,(T)(x),...,sizeof(
29 - x
30 + *x
31    ),...)
33 f(...,sizeof(x),...,(T)(
34 - x
35 + *x
36    ),...)
39 @r depends on !patch@
40 expression *x;
41 expression f;
42 position p;
43 type T;
47 *x = <+... sizeof@p(x) ...+>
49 *f(...,(T)(x),...,sizeof@p(x),...)
51 *f(...,sizeof@p(x),...,(T)(x),...)
54 @script:python depends on org@
55 p << r.p;
58 cocci.print_main("application of sizeof to pointer",p)
60 @script:python depends on report@
61 p << r.p;
64 msg = "ERROR: application of sizeof to pointer"
65 coccilib.report.print_report(p[0],msg)