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