Commit 2cbd08253a011bd9db9a51f15a974df3a779224b

Authored by Julia Lawall
Committed by Michal Marek
1 parent 4619c2b830

scripts/coccinelle: sizeof of pointer

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.cz>

Showing 1 changed file with 65 additions and 0 deletions Side-by-side Diff

scripts/coccinelle/misc/noderef.cocci
  1 +/// sizeof when applied to a pointer typed expression gives the size of
  2 +/// the pointer
  3 +///
  4 +// Confidence: High
  5 +// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
  6 +// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
  7 +// URL: http://coccinelle.lip6.fr/
  8 +// Comments:
  9 +// Options: -no_includes -include_headers
  10 +
  11 +virtual org
  12 +virtual report
  13 +virtual context
  14 +virtual patch
  15 +
  16 +@depends on patch@
  17 +expression *x;
  18 +expression f;
  19 +type T;
  20 +@@
  21 +
  22 +(
  23 +x = <+... sizeof(
  24 +- x
  25 ++ *x
  26 + ) ...+>
  27 +|
  28 +f(...,(T)(x),...,sizeof(
  29 +- x
  30 ++ *x
  31 + ),...)
  32 +|
  33 +f(...,sizeof(x),...,(T)(
  34 +- x
  35 ++ *x
  36 + ),...)
  37 +)
  38 +
  39 +@r depends on !patch@
  40 +expression *x;
  41 +expression f;
  42 +position p;
  43 +type T;
  44 +@@
  45 +
  46 +(
  47 +*x = <+... sizeof@p(x) ...+>
  48 +|
  49 +*f(...,(T)(x),...,sizeof@p(x),...)
  50 +|
  51 +*f(...,sizeof@p(x),...,(T)(x),...)
  52 +)
  53 +
  54 +@script:python depends on org@
  55 +p << r.p;
  56 +@@
  57 +
  58 +cocci.print_main("application of sizeof to pointer",p)
  59 +
  60 +@script:python depends on report@
  61 +p << r.p;
  62 +@@
  63 +
  64 +msg = "ERROR: application of sizeof to pointer"
  65 +coccilib.report.print_report(p[0],msg)