/// sizeof when applied to a pointer typed expression gives the size of /// the pointer /// // Confidence: High // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. // URL: http://coccinelle.lip6.fr/ // Comments: // Options: --no-includes --include-headers virtual org virtual report virtual context virtual patch @depends on patch && !(file in "ext")@ expression *x; expression f; expression i; type T; @@ ( x = <+... sizeof( - x + *x ) ...+> | f(...,(T)(x),...,sizeof( - x + *x ),...) | f(...,sizeof( - x + *x ),...,(T)(x),...) | f(...,(T)(x),...,i*sizeof( - x + *x ),...) | f(...,i*sizeof( - x + *x ),...,(T)(x),...) ) @r depends on !patch && !(file in "ext")@ expression *x; expression f; expression i; position p; type T; @@ ( *x = <+... sizeof@p(x) ...+> | *f(...,(T)(x),...,sizeof@p(x),...) | *f(...,sizeof@p(x),...,(T)(x),...) | *f(...,(T)(x),...,i*sizeof@p(x),...) | *f(...,i*sizeof@p(x),...,(T)(x),...) ) @script:python depends on org@ p << r.p; @@ cocci.print_main("application of sizeof to pointer",p) @script:python depends on report@ p << r.p; @@ msg = "ERROR: application of sizeof to pointer" coccilib.report.print_report(p[0],msg)