On Mon, 28 Aug 2017, Joe Perches wrote:
> A simple cocci script that removes unnecessary casts of > a void * will also remove casts with __force or __user Unfortunately, attributes are currently not supported inside casts. This can be done in a hackish way (possible false negatives) as follows: --- @initialize:ocaml@ @@ let close (p1,p2) = let r = (List.hd p1).line_end in let l = (List.hd p2).line in let rc = (List.hd p1).col_end in let lc = (List.hd p2).col in r = l && lc = rc+1 @r@ position p1,p2; expression f,e; type T; @@ f(..., // generalize this rule as needed (T@p1 *@p2) e,...) @@ position r.p2 : script:ocaml(r.p1) { close(p1,p2) }; position r.p1; expression e; type T; @@ - (T@p1 *@p2) e --- Basically, it assumes that if the type and the * are more than one space apart then there is something important there, and the cast is not removed. julia _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci