From: Junio C Hamano <gitster@pobox.com>
To: "Toon Claes" <toon@iotcl.com>, "René Scharfe" <l.s.r@web.de>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>
Subject: Re: [PATCH 2/2] contrib/coccinelle: pass include paths to spatch(1)
Date: Sat, 13 Dec 2025 10:22:52 +0900 [thread overview]
Message-ID: <xmqqwm2r9nv7.fsf@gitster.g> (raw)
In-Reply-To: <20251210-toon-cocci-memzero-v1-2-ae916a79065b@iotcl.com> (Toon Claes's message of "Wed, 10 Dec 2025 14:13:02 +0100")
Toon Claes <toon@iotcl.com> writes:
> In the previous commit a new coccinelle rule is added. But neiter
> `make coccicheck` nor `meson compile coccicheck` did detect a case in
> builtin/last-modified.c.
I can reproduce this. I started with only git-compat-util.h and
contrib/coccinelle/array.cocci from your [1/2] and without [2/2],
and "make coccicheck" produced all other changes contained in [1/2]
and the leftover changes to diffcore-delta.c, linear-assignment.c
and shallow.c I reported earlier in a separate message, but the one
in last-modified.c is left intact. There are successful rewrites
that involve eword_t in other files, so I am not sure what the
problem is.
I used the following instead of your [1/2], as suggested by René in
an earlier exchange. I did not see any changes but I did not expect
to, either.
contrib/coccinelle/array.cocci | 22 ++++++++++++++++++++++
git-compat-util.h | 1 +
2 files changed, 23 insertions(+)
diff --git a/contrib/coccinelle/array.cocci b/contrib/coccinelle/array.cocci
index 27a3b479c9..ae23114b68 100644
--- a/contrib/coccinelle/array.cocci
+++ b/contrib/coccinelle/array.cocci
@@ -101,3 +101,25 @@ expression dst, src, n;
-ALLOC_ARRAY(dst, n);
-COPY_ARRAY(dst, src, n);
+DUP_ARRAY(dst, src, n);
+
+@@
+type T;
+T *ptr;
+expression n;
+@@
+- memset(ptr, \( '\0' \| 0 \), n * \( sizeof(T)
+- \| sizeof(*ptr)
+- \| sizeof(ptr[0])
+- \) )
++ MEMZERO_ARRAY(ptr, n)
+
+@@
+type T;
+T[] ptr;
+expression n;
+@@
+- memset(ptr, \( '\0' \| 0 \), n * \( sizeof(T)
+- \| sizeof(*ptr)
+- \| sizeof(ptr[0])
+- \) )
++ MEMZERO_ARRAY(ptr, n)
diff --git a/git-compat-util.h b/git-compat-util.h
index 398e0fac4f..2b8192fd2e 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -726,6 +726,7 @@ static inline uint64_t u64_add(uint64_t a, uint64_t b)
#define ALLOC_ARRAY(x, alloc) (x) = xmalloc(st_mult(sizeof(*(x)), (alloc)))
#define CALLOC_ARRAY(x, alloc) (x) = xcalloc((alloc), sizeof(*(x)))
#define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), st_mult(sizeof(*(x)), (alloc)))
+#define MEMZERO_ARRAY(x, alloc) memset((x), 0x0, st_mult(sizeof(*(x)), (alloc)))
#define COPY_ARRAY(dst, src, n) copy_array((dst), (src), (n), sizeof(*(dst)) + \
BARF_UNLESS_COPYABLE((dst), (src)))
next prev parent reply other threads:[~2025-12-13 1:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-10 13:13 [PATCH 0/2] Add MEMZERO_ARRAY() macro and use it in coccinelle Toon Claes
2025-12-10 13:13 ` [PATCH 1/2] git-compat-util: introduce MEMZERO_ARRAY() macro Toon Claes
2025-12-11 3:18 ` Junio C Hamano
2025-12-12 13:02 ` René Scharfe
2025-12-19 9:17 ` Toon Claes
2025-12-10 13:13 ` [PATCH 2/2] contrib/coccinelle: pass include paths to spatch(1) Toon Claes
2025-12-11 6:19 ` Patrick Steinhardt
2025-12-12 5:04 ` Junio C Hamano
2025-12-13 1:22 ` Junio C Hamano [this message]
2025-12-13 0:18 ` [PATCH 0/2] Add MEMZERO_ARRAY() macro and use it in coccinelle Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqwm2r9nv7.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
--cc=peff@peff.net \
--cc=toon@iotcl.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).