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 10 11virtual org 12virtual report 13virtual context 14virtual patch 15 16@depends on patch@ 17expression *x; 18expression f; 19type T; 20@@ 21 22( 23x = <+... sizeof( 24- x 25+ *x 26 ) ...+> 27| 28f(...,(T)(x),...,sizeof( 29- x 30+ *x 31 ),...) 32| 33f(...,sizeof(x),...,(T)( 34- x 35+ *x 36 ),...) 37) 38 39@r depends on !patch@ 40expression *x; 41expression f; 42position p; 43type T; 44@@ 45 46( 47*x = <+... sizeof@p(x) ...+> 48| 49*f(...,(T)(x),...,sizeof@p(x),...) 50| 51*f(...,sizeof@p(x),...,(T)(x),...) 52) 53 54@script:python depends on org@ 55p << r.p; 56@@ 57 58cocci.print_main("application of sizeof to pointer",p) 59 60@script:python depends on report@ 61p << r.p; 62@@ 63 64msg = "ERROR: application of sizeof to pointer" 65coccilib.report.print_report(p[0],msg) 66