All of lore.kernel.org
 help / color / mirror / Atom feed
From: Toon Claes <toon@iotcl.com>
To: "René Scharfe" <l.s.r@web.de>, "Junio C Hamano" <gitster@pobox.com>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>
Subject: Re: [PATCH 1/2] git-compat-util: introduce MEMZERO_ARRAY() macro
Date: Fri, 19 Dec 2025 10:17:33 +0100	[thread overview]
Message-ID: <878qeyhlua.fsf@iotcl.com> (raw)
In-Reply-To: <f02b628f-b9d7-4436-88ee-3255e02cb0f3@web.de>

René Scharfe <l.s.r@web.de> writes:

> On 12/11/25 4:18 AM, Junio C Hamano wrote:
>> Toon Claes <toon@iotcl.com> writes:
>> 
>>> +@@
>>> +- memset(ptr, \( 0x0 \| 0 \), n * \( sizeof(T)
>>> +-                                 \| sizeof(*ptr)
>>> +-                                 \) )
>>> ++ MEMZERO_ARRAY(ptr, n)
>> 
>> Shouldn't we be also catching
>> 
>> 	memset(array, '\0', sizeof(array[0]) * ARRAY_SIZE(array));
>> 
>> in addition to "0" and "0x0"?
>
> Good idea to match "sizeof(ptr[...])", even though we currently don't have
> matching code.

I didn't include that because I didn't see any case that would be
covered by that. But it's good to include it anyway to capture future
code.

> Good idea also to match "'\0'".  There's code with that pattern in
> compat/regex/.

Good find, I didn't think about that.

> You can drop "0x0", though, "0" matches it already (at least for me, I have
> "spatch version 1.3-dirty compiled with OCaml version 5.1.1" from
> Homebrew).

Nice!

> If you put parentheses around "n" in the pre-image then Coccinelle will
> remove them if present and still match code without them.

Well, that's not what I am seeing. With parentheses around "n", it
didn't match the case in builtin/last-modified.c on my machine. I'm
using spatch v1.3

> They are no longer needed without the multiplication. Their removal
> would improve the result for ewah/bitmap.c.

I agree it would be an improvement. Using `\( (n) \| n \)` does the
trick for all cases I've found.


-- 
Cheers,
Toon

  reply	other threads:[~2025-12-19  9:17 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 [this message]
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
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=878qeyhlua.fsf@iotcl.com \
    --to=toon@iotcl.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=l.s.r@web.de \
    --cc=peff@peff.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.