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: https://coccinelle.gitlabpages.inria.fr/website 9 // Comments: 10 // Options: --no-includes --include-headers 11 12 virtual org 13 virtual report 14 virtual context 15 virtual patch 16 17 @depends on patch@ 18 expression *x; 19 expression f; 20 expression i; 21 type T; 22 @@ 23 24 ( 25 x = <+... sizeof( 26 - x 27 + *x 28 ) ...+> 29 | 30 f(...,(T)(x),...,sizeof( 31 - x 32 + *x 33 ),...) 34 | 35 f(...,sizeof( 36 - x 37 + *x 38 ),...,(T)(x),...) 39 | 40 f(...,(T)(x),...,i*sizeof( 41 - x 42 + *x 43 ),...) 44 | 45 f(...,i*sizeof( 46 - x 47 + *x 48 ),...,(T)(x),...) 49 ) 50 51 @r depends on !patch@ 52 expression *x; 53 expression f; 54 expression i; 55 position p; 56 type 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@ 72 p << r.p; 73 @@ 74 75 cocci.print_main("application of sizeof to pointer",p) 76 77 @script:python depends on report@ 78 p << r.p; 79 @@ 80 81 msg = "ERROR: application of sizeof to pointer" 82 coccilib.report.print_report(p[0],msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.