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