From aeb300c1dbfc77b493728f608dd14d6814676546 Mon Sep 17 00:00:00 2001 From: Denis Efremov Date: Wed, 28 Apr 2021 09:03:50 +0300 Subject: [PATCH] coccinelle: misc: minmax: suppress patch generation for err returns 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 --- scripts/coccinelle/misc/minmax.cocci | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) 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(...) ...> } -@pmin depends on patch@ +// Don't generate patches for errcode returns. +@errcode depends on patch@ +position p; identifier func; -expression x, y; -binary operator cmp = {<=, <}; +expression x; +binary operator cmp = {<, <=}; @@ func(...) { <... -- ((x) cmp (y) ? (x) : (y)) + 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@p (y) ? (x) : (y)) + min(x, y) ...> }