Message ID | 20241027125858.1804-2-thorsten.blum@linux.dev (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | coccinelle: Add str_off_on() and str_no_yes() rules | expand |
On Sun, Oct 27, 2024 at 2:59 PM Thorsten Blum <thorsten.blum@linux.dev> wrote: > > In addition to str_on_off() and str_yes_no(), add rules to search for > str_off_on() and str_no_yes() replacements. I don't know cocci well enough, but this does simply not scale. We also have cases where "Yes"/"No", "YES"/"NO" and all possible variations of that.
On Sun, 27 Oct 2024, Andy Shevchenko wrote: > On Sun, Oct 27, 2024 at 2:59 PM Thorsten Blum <thorsten.blum@linux.dev> wrote: > > > > In addition to str_on_off() and str_yes_no(), add rules to search for > > str_off_on() and str_no_yes() replacements. > > I don't know cocci well enough, but this does simply not scale. We > also have cases where "Yes"/"No", "YES"/"NO" and all possible > variations of that. Andy, are you concerned about the number of such functions in the kernel or the number of rules in the semantic patch. There are indeed more concise ways to write the semantic patch. julia > > > -- > With Best Regards, > Andy Shevchenko >
On Sun, Oct 27, 2024 at 5:25 PM Julia Lawall <julia.lawall@inria.fr> wrote: > On Sun, 27 Oct 2024, Andy Shevchenko wrote: > > On Sun, Oct 27, 2024 at 2:59 PM Thorsten Blum <thorsten.blum@linux.dev> wrote: > > > > > > In addition to str_on_off() and str_yes_no(), add rules to search for > > > str_off_on() and str_no_yes() replacements. > > > > I don't know cocci well enough, but this does simply not scale. We > > also have cases where "Yes"/"No", "YES"/"NO" and all possible > > variations of that. > > Andy, are you concerned about the number of such functions in the kernel > or the number of rules in the semantic patch. Rules for the semantic patches I am worried about. > There are indeed more > concise ways to write the semantic patch. Would be nice to see ways to cover more cases in less lines in the spatch.
diff --git a/scripts/coccinelle/api/string_choices.cocci b/scripts/coccinelle/api/string_choices.cocci index 375045086912..93de05aeded2 100644 --- a/scripts/coccinelle/api/string_choices.cocci +++ b/scripts/coccinelle/api/string_choices.cocci @@ -282,6 +282,25 @@ e << str_on_off_r.E; coccilib.report.print_report(p[0], "opportunity for str_on_off(%s)" % e) +@str_off_on depends on patch@ +expression E; +@@ +- ((E) ? "off" : "on") ++ str_off_on(E) + +@str_off_on_r depends on !patch@ +expression E; +position P; +@@ +* E@P ? "off" : "on" + +@script:python depends on report@ +p << str_off_on_r.P; +e << str_off_on_r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_off_on(%s)" % e) + @str_yes_no depends on patch@ expression E; @@ @@ -300,3 +319,22 @@ e << str_yes_no_r.E; @@ coccilib.report.print_report(p[0], "opportunity for str_yes_no(%s)" % e) + +@str_no_yes depends on patch@ +expression E; +@@ +- ((E) ? "no" : "yes") ++ str_no_yes(E) + +@str_no_yes_r depends on !patch@ +expression E; +position P; +@@ +* E@P ? "no" : "yes" + +@script:python depends on report@ +p << str_no_yes_r.P; +e << str_no_yes_r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_no_yes(%s)" % e)
In addition to str_on_off() and str_yes_no(), add rules to search for str_off_on() and str_no_yes() replacements. Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> --- scripts/coccinelle/api/string_choices.cocci | 38 +++++++++++++++++++++ 1 file changed, 38 insertions(+)