xref: /openbmc/linux/scripts/coccinelle/misc/noderef.cocci (revision 93f14468491747d6d3efd0b3a42785b1d51a127a)
12cbd0825SJulia Lawall/// sizeof when applied to a pointer typed expression gives the size of
22cbd0825SJulia Lawall/// the pointer
32cbd0825SJulia Lawall///
42cbd0825SJulia Lawall// Confidence: High
52cbd0825SJulia Lawall// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.  GPLv2.
62cbd0825SJulia Lawall// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.  GPLv2.
72cbd0825SJulia Lawall// URL: http://coccinelle.lip6.fr/
82cbd0825SJulia Lawall// Comments:
9*93f14468SNicolas Palix// Options: --no-includes --include-headers
102cbd0825SJulia Lawall
112cbd0825SJulia Lawallvirtual org
122cbd0825SJulia Lawallvirtual report
132cbd0825SJulia Lawallvirtual context
142cbd0825SJulia Lawallvirtual patch
152cbd0825SJulia Lawall
162cbd0825SJulia Lawall@depends on patch@
172cbd0825SJulia Lawallexpression *x;
182cbd0825SJulia Lawallexpression f;
192cbd0825SJulia Lawalltype T;
202cbd0825SJulia Lawall@@
212cbd0825SJulia Lawall
222cbd0825SJulia Lawall(
232cbd0825SJulia Lawallx = <+... sizeof(
242cbd0825SJulia Lawall- x
252cbd0825SJulia Lawall+ *x
262cbd0825SJulia Lawall   ) ...+>
272cbd0825SJulia Lawall|
282cbd0825SJulia Lawallf(...,(T)(x),...,sizeof(
292cbd0825SJulia Lawall- x
302cbd0825SJulia Lawall+ *x
312cbd0825SJulia Lawall   ),...)
322cbd0825SJulia Lawall|
332cbd0825SJulia Lawallf(...,sizeof(x),...,(T)(
342cbd0825SJulia Lawall- x
352cbd0825SJulia Lawall+ *x
362cbd0825SJulia Lawall   ),...)
372cbd0825SJulia Lawall)
382cbd0825SJulia Lawall
392cbd0825SJulia Lawall@r depends on !patch@
402cbd0825SJulia Lawallexpression *x;
412cbd0825SJulia Lawallexpression f;
422cbd0825SJulia Lawallposition p;
432cbd0825SJulia Lawalltype T;
442cbd0825SJulia Lawall@@
452cbd0825SJulia Lawall
462cbd0825SJulia Lawall(
472cbd0825SJulia Lawall*x = <+... sizeof@p(x) ...+>
482cbd0825SJulia Lawall|
492cbd0825SJulia Lawall*f(...,(T)(x),...,sizeof@p(x),...)
502cbd0825SJulia Lawall|
512cbd0825SJulia Lawall*f(...,sizeof@p(x),...,(T)(x),...)
522cbd0825SJulia Lawall)
532cbd0825SJulia Lawall
542cbd0825SJulia Lawall@script:python depends on org@
552cbd0825SJulia Lawallp << r.p;
562cbd0825SJulia Lawall@@
572cbd0825SJulia Lawall
582cbd0825SJulia Lawallcocci.print_main("application of sizeof to pointer",p)
592cbd0825SJulia Lawall
602cbd0825SJulia Lawall@script:python depends on report@
612cbd0825SJulia Lawallp << r.p;
622cbd0825SJulia Lawall@@
632cbd0825SJulia Lawall
642cbd0825SJulia Lawallmsg = "ERROR: application of sizeof to pointer"
652cbd0825SJulia Lawallcoccilib.report.print_report(p[0],msg)
66