Author: Julia Lawall <Julia.Lawall@lip6.fr> A struct clk value is intended to be an abstract pointer, so it should be manipulated using the various API functions. clk_put is additionally added on the failure paths. The semantic match that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression e,e1; identifier i; @@ *e = clk_get(…) …