Re: [PATCH] coccinelle: misc: minmax: suppress patch generation for err returns

From: Denis Efremov
Date: Thu Apr 22 2021 - 03:21:44 EST


Ping?

On 4/9/21 2:19 PM, Denis Efremov wrote:
> There is a standard idiom for "if 'ret' holds an error, return it":
> return ret < 0 ? ret : 0;
>
> Developers prefer to keep the things as they are because stylistic
> change to "return min(ret, 0);" breaks readability.
>
> Let's suppress automatic generation for this type of patches.
>
> Signed-off-by: Denis Efremov <efremov@xxxxxxxxx>
> ---
> scripts/coccinelle/misc/minmax.cocci | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/coccinelle/misc/minmax.cocci b/scripts/coccinelle/misc/minmax.cocci
> index eccdd3eb3452..fcf908b34f27 100644
> --- a/scripts/coccinelle/misc/minmax.cocci
> +++ b/scripts/coccinelle/misc/minmax.cocci
> @@ -116,16 +116,32 @@ func(...)
> ...>
> }
>
> +// Don't generate patches for errcode returns.
> +@errcode depends on patch@
> +position p;
> +identifier func;
> +expression x;
> +binary operator cmp = {<, <=};
> +@@
> +
> +func(...)
> +{
> + <...
> + return ((x) cmp@p 0 ? (x) : 0);
> + ...>
> +}
> +
> @pmin depends on patch@
> identifier func;
> expression x, y;
> binary operator cmp = {<=, <};
> +position p != errcode.p;
> @@
>
> func(...)
> {
> <...
> -- ((x) cmp (y) ? (x) : (y))
> +- ((x) cmp@p (y) ? (x) : (y))
> + min(x, y)
> ...>
> }
>