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

[PATCH] block-sha1: drop trailing semicolon from macro definition

From
René Scharfe. <l.s.r@web.de>
Date
Mar 13, 2021, 16:17 UTC
Message-ID
<f8122736-e729-5d35-e1e1-78a213816d4a@web.de>

23119ffb4e (block-sha1: put expanded macro parameters in parentheses, 2012-07-22) added a trailing semicolon to the definition of SHA_MIX without explanation. It doesn't matter with the current code, but make sure to avoid potential surprises by removing it again.

This allows the macro to be used almost like a function: Users can combine it with operators of their choice, but still must not pass an expression with side-effects as a parameter, as it would be evaluated multiple times.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 block-sha1/sha1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block-sha1/sha1.c b/block-sha1/sha1.c
index 8681031402..1bb6e7c069 100644
--- a/block-sha1/sha1.c
+++ b/block-sha1/sha1.c
@@ -70,7 +70,7 @@
  * the input data, the next mix it from the 512-bit array.
  */
 #define SHA_SRC(t) get_be32((unsigned char *) block + (t)*4)
-#define SHA_MIX(t) SHA_ROL(W((t)+13) ^ W((t)+8) ^ W((t)+2) ^ W(t), 1);
+#define SHA_MIX(t) SHA_ROL(W((t)+13) ^ W((t)+8) ^ W((t)+2) ^ W(t), 1)

 #define SHA_ROUND(t, input, fn, constant, A, B, C, D, E) do { \
 	unsigned int TEMP = input(t); setW(t, TEMP); \
--
2.30.2
Next: Jonathan Nieder
Message 1 of 2 in “block-sha1: drop trailing semicolon from macro definition”
  1. block-sha1: drop trailing semicolon from macro definitionRené Scharfe., Mar 13, 2021
  2. Jonathan NiederMar 15, 2021

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.