2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/scripts/coccinelle/api/string_choices.cocci
Kees Cook 0336f89888 coccinelle: Add rules to find str_down_up() replacements
As done with str_up_down(), add checks for str_down_up() opportunities.
5 cases currently exist in the tree.

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20240812183637.work.999-kees@kernel.org
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Kees Cook <kees@kernel.org>
2024-08-15 09:26:02 -07:00

88 lines
1.4 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-only
/// Find places to use string_choices.h's various helpers.
//
// Confidence: Medium
// Options: --no-includes --include-headers
virtual patch
virtual context
virtual report
@str_plural depends on patch@
expression E;
@@
(
- ((E == 1) ? "" : "s")
+ str_plural(E)
|
- ((E != 1) ? "s" : "")
+ str_plural(E)
|
- ((E > 1) ? "s" : "")
+ str_plural(E)
)
@str_plural_r depends on !patch exists@
expression E;
position P;
@@
(
* ((E@P == 1) ? "" : "s")
|
* ((E@P != 1) ? "s" : "")
|
* ((E@P > 1) ? "s" : "")
)
@script:python depends on report@
p << str_plural_r.P;
e << str_plural_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_plural(%s)" % e)
@str_up_down depends on patch@
expression E;
@@
(
- ((E) ? "up" : "down")
+ str_up_down(E)
)
@str_up_down_r depends on !patch exists@
expression E;
position P;
@@
(
* ((E@P) ? "up" : "down")
)
@script:python depends on report@
p << str_up_down_r.P;
e << str_up_down_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_up_down(%s)" % e)
@str_down_up depends on patch@
expression E;
@@
(
- ((E) ? "down" : "up")
+ str_down_up(E)
)
@str_down_up_r depends on !patch exists@
expression E;
position P;
@@
(
* ((E@P) ? "down" : "up")
)
@script:python depends on report@
p << str_down_up_r.P;
e << str_down_up_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_down_up(%s)" % e)