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