On 05/31/2016 10:35 AM, Laurent Vivier wrote:
> sample from http://coccinellery.org/
> 
> Signed-off-by: Laurent Vivier <lviv...@redhat.com>
> ---
>  scripts/coccinelle/round.cocci | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>  create mode 100644 scripts/coccinelle/round.cocci
> 
> diff --git a/scripts/coccinelle/round.cocci b/scripts/coccinelle/round.cocci
> new file mode 100644
> index 0000000..ed06773
> --- /dev/null
> +++ b/scripts/coccinelle/round.cocci
> @@ -0,0 +1,19 @@
> +// Use macro DIV_ROUND_UP instead of (((n) + (d) - 1) /(d))
> +@@
> +expression e1;
> +expression e2;
> +@@
> +(
> +- ((e1) + e2 - 1) / (e2)
> ++ DIV_ROUND_UP(e1,e2)

Should this also cover things like:

((e1) & e2) / (e2 + 1)

or with bit-shifts in place of division? I don't know how much
coccinelle can spot other issues (at least until I review the rest of
your series), but at any rate your patch looks like a good first start.
I also like the fact that we are committing the script into the repo, so
that we can reuse it to catch future additions of the open-coded forms.

Reviewed-by: Eric Blake <ebl...@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to