1// SPDX-License-Identifier: GPL-2.0-only 2/// sizeof when applied to a pointer typed expression gives the size of 3/// the pointer 4/// 5// Confidence: High 6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. 7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. 8// URL: http://coccinelle.lip6.fr/ 9// Comments: 10// Options: --no-includes --include-headers 11 12virtual org 13virtual report 14virtual context 15virtual patch 16 17@depends on patch@ 18expression *x; 19expression f; 20expression i; 21type T; 22@@ 23 24( 25x = <+... sizeof( 26- x 27+ *x 28 ) ...+> 29| 30f(...,(T)(x),...,sizeof( 31- x 32+ *x 33 ),...) 34| 35f(...,sizeof( 36- x 37+ *x 38 ),...,(T)(x),...) 39| 40f(...,(T)(x),...,i*sizeof( 41- x 42+ *x 43 ),...) 44| 45f(...,i*sizeof( 46- x 47+ *x 48 ),...,(T)(x),...) 49) 50 51@r depends on !patch@ 52expression *x; 53expression f; 54expression i; 55position p; 56type T; 57@@ 58 59( 60*x = <+... sizeof@p(x) ...+> 61| 62*f(...,(T)(x),...,sizeof@p(x),...) 63| 64*f(...,sizeof@p(x),...,(T)(x),...) 65| 66*f(...,(T)(x),...,i*sizeof@p(x),...) 67| 68*f(...,i*sizeof@p(x),...,(T)(x),...) 69) 70 71@script:python depends on org@ 72p << r.p; 73@@ 74 75cocci.print_main("application of sizeof to pointer",p) 76 77@script:python depends on report@ 78p << r.p; 79@@ 80 81msg = "ERROR: application of sizeof to pointer" 82coccilib.report.print_report(p[0],msg) 83