Add rules for finding places where str_alloc_free()/str_free_alloc can be used.
Tested-by mingzhu.wang <[email protected]> Signed-off-by: Jiazi Li <[email protected]> --- scripts/coccinelle/api/string_choices.cocci | 38 +++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/scripts/coccinelle/api/string_choices.cocci b/scripts/coccinelle/api/string_choices.cocci index 7b2b76a42acc..516b30828380 100644 --- a/scripts/coccinelle/api/string_choices.cocci +++ b/scripts/coccinelle/api/string_choices.cocci @@ -7,6 +7,44 @@ virtual patch virtual context virtual report +@str_alloc_free depends on patch disable neg_if_exp@ +expression E; +@@ +- ((E) ? "alloc" : "free") ++ str_alloc_free(E) + +@str_alloc_free_r depends on !patch disable neg_if_exp@ +expression E; +position P; +@@ +* E@P ? "alloc" : "free" + +@script:python depends on report@ +p << str_alloc_free_r.P; +e << str_alloc_free_r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_alloc_free(%s)" % e) + +@str_free_alloc depends on patch disable neg_if_exp@ +expression E; +@@ +- ((E) ? "free" : "alloc") ++ str_free_alloc(E) + +@str_free_alloc_r depends on !patch disable neg_if_exp@ +expression E; +position P; +@@ +* E@P ? "free" : "alloc" + +@script:python depends on report@ +p << str_free_alloc_r.P; +e << str_free_alloc_r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_free_alloc(%s)" % e) + @str_enable_disable depends on patch@ expression E; @@ -- 2.49.0
