git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] git-compat-util: introduce MEMZERO_ARRAY() macro

From
René Scharfe <l.s.r@web.de>
Date
Dec 12, 2025, 13:02 UTC
Message-ID
<f02b628f-b9d7-4436-88ee-3255e02cb0f3@web.de>
In-Reply-To
<xmqqtsxxg0z4.fsf@gitster.g>
On 12/11/25 4:18 AM, Junio C Hamano wrote:
Show 13 quoted lines
> 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.

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

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).

If you put parentheses around "n" in the pre-image then Coccinelle will remove them if present and still match code without them. They are no longer needed without the multiplication. Their removal would improve the result for ewah/bitmap.c.

René
Previous: Junio C HamanoNext: Toon Claes
Message 4 of 10 in “Add MEMZERO_ARRAY() macro and use it in coccinelle”
  1. 0/2 Add MEMZERO_ARRAY() macro and use it in coccinelleToon Claes, Dec 10, 2025
  2. 1/2 git-compat-util: introduce MEMZERO_ARRAY() macroToon Claes, Dec 10, 2025
  3. Junio C HamanoDec 11, 2025
  4. René ScharfeDec 12, 2025
  5. Toon ClaesDec 19, 2025
  6. 2/2 contrib/coccinelle: pass include paths to spatch(1)Toon Claes, Dec 10, 2025
  7. Patrick SteinhardtDec 11, 2025
  8. Junio C HamanoDec 12, 2025
  9. Junio C HamanoDec 13, 2025
  10. Junio C HamanoDec 13, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.