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