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 && !(file in "ext")@ 17expression *x; 18expression f; 19expression i; 20type T; 21@@ 22 23( 24x = <+... sizeof( 25- x 26+ *x 27 ) ...+> 28| 29f(...,(T)(x),...,sizeof( 30- x 31+ *x 32 ),...) 33| 34f(...,sizeof( 35- x 36+ *x 37 ),...,(T)(x),...) 38| 39f(...,(T)(x),...,i*sizeof( 40- x 41+ *x 42 ),...) 43| 44f(...,i*sizeof( 45- x 46+ *x 47 ),...,(T)(x),...) 48) 49 50@r depends on !patch && !(file in "ext")@ 51expression *x; 52expression f; 53expression i; 54position p; 55type T; 56@@ 57 58( 59*x = <+... sizeof@p(x) ...+> 60| 61*f(...,(T)(x),...,sizeof@p(x),...) 62| 63*f(...,sizeof@p(x),...,(T)(x),...) 64| 65*f(...,(T)(x),...,i*sizeof@p(x),...) 66| 67*f(...,i*sizeof@p(x),...,(T)(x),...) 68) 69 70@script:python depends on org@ 71p << r.p; 72@@ 73 74cocci.print_main("application of sizeof to pointer",p) 75 76@script:python depends on report@ 77p << r.p; 78@@ 79 80msg = "ERROR: application of sizeof to pointer" 81coccilib.report.print_report(p[0],msg) 82