coccinelle: misc: minmax: check for the presence of if cases
authorJulia Lawall <Julia.Lawall@inria.fr>
Sun, 26 Jul 2026 14:08:56 +0000 (16:08 +0200)
committerJulia Lawall <Julia.Lawall@inria.fr>
Sun, 23 Aug 2026 20:12:10 +0000 (22:12 +0200)
As done previously for the ternary command, check that a file contains
the min or max if pattern before applying the minif and maxif rules.

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
scripts/coccinelle/misc/minmax.cocci

index 905dd22..f14e608 100644 (file)
@@ -45,7 +45,19 @@ func(...)
        ...>
 }
 
-@rmaxif depends on !patch@
+@maxif_candidate@
+expression x, y;
+expression max_val;
+binary operator cmp = {>, >=};
+@@
+
+if ((x) cmp (y)) {
+        max_val = (x);
+} else {
+        max_val = (y);
+}
+
+@rmaxif depends on !patch && maxif_candidate@
 identifier func;
 expression x, y;
 expression max_val;
@@ -93,7 +105,19 @@ func(...)
        ...>
 }
 
-@rminif depends on !patch@
+@minif_candidate@
+expression x, y;
+expression min_val;
+binary operator cmp = {<, <=};
+@@
+
+if ((x) cmp (y)) {
+        min_val = (x);
+} else {
+        min_val = (y);
+}
+
+@rminif depends on !patch && minif_candidate@
 identifier func;
 expression x, y;
 expression min_val;
@@ -126,7 +150,7 @@ func(...)
        ...>
 }
 
-@pmaxif depends on patch@
+@pmaxif depends on patch && maxif_candidate@
 identifier func;
 expression x, y;
 expression max_val;
@@ -160,7 +184,7 @@ func(...)
        ...>
 }
 
-@pminif depends on patch@
+@pminif depends on patch && maxif_candidate@
 identifier func;
 expression x, y;
 expression min_val;