The current cocci patches try to convert
if (!E) free(E);
into an unconditional call to free(E), with the rationale
cocci: detect useless free(3) calls
Add a semantic patch for removing checks that cause free(3) to only be
called with a NULL pointer, as that must be a programming mistake.which came from ec6cd14c7a (cocci: detect useless free(3) calls, 2017-02-11).
Leaving _something_ in ALL.patch output to draw programmers' attention is a good thing, but this changes a piece of code that is originally a no-op to do something else, which may be even worse.
We could change it to
if (!E)
BUG("free(E) is certainly not what we meant to write");to force programmers to think. But it probably is safer to just rewrite one form of no-op into a simpler form of no-op.
Signed-off-by: Junio C Hamano <gitster@pobox.com> --- tools/coccinelle/free.cocci | 10 ---------- 1 file changed, 10 deletions(-)
Show changes to tools/coccinelle/free.cocci +0 −10
diff --git a/tools/coccinelle/free.cocci b/tools/coccinelle/free.cocci index 03799e1908..3dfaae9dd8 100644 --- a/tools/coccinelle/free.cocci +++ b/tools/coccinelle/free.cocci @@ -8,16 +8,6 @@ expression E; commit_list_free(E); ) -@@ -expression E; -@@ -- if (!E) -( - free(E); -| - commit_list_free(E); -) - @@ expression E; @@
-- 2.56.0-rc0-143-g1fea62d0ca