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

[PATCH v2 2/3] diffcore-delta.c: LLP64 compatibility, upcast unity for left shift

From
Philip Oakley <philipoakley@iee.email>
Date
Dec 1, 2021, 00:29 UTC
Message-ID
<20211201002902.1042-3-philipoakley@iee.email>
In-Reply-To
<20211201002902.1042-1-philipoakley@iee.email>

Visual Studio reports C4334 "was 64-bit shift intended" warning because of size miss-match.

Promote unity to the matching type to fit with its subsequent operation.
Signed-off-by: Philip Oakley <philipoakley@iee.email>
---
 diffcore-delta.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/diffcore-delta.c b/diffcore-delta.c
index 5668ace60d..18d8f766d7 100644
--- a/diffcore-delta.c
+++ b/diffcore-delta.c
@@ -133,10 +133,10 @@ static struct spanhash_top *hash_chars(struct repository *r,
 
 	i = INITIAL_HASH_SIZE;
 	hash = xmalloc(st_add(sizeof(*hash),
-			      st_mult(sizeof(struct spanhash), 1<<i)));
+			      st_mult(sizeof(struct spanhash), (size_t)1 << i)));
 	hash->alloc_log2 = i;
 	hash->free = INITIAL_FREE(i);
-	memset(hash->data, 0, sizeof(struct spanhash) * (1<<i));
+	memset(hash->data, 0, sizeof(struct spanhash) * ((size_t)1 << i));
 
 	n = 0;
 	accum1 = accum2 = 0;
@@ -159,7 +159,7 @@ static struct spanhash_top *hash_chars(struct repository *r,
 		n = 0;
 		accum1 = accum2 = 0;
 	}
-	QSORT(hash->data, 1ul << hash->alloc_log2, spanhash_cmp);
+	QSORT(hash->data, (size_t)1ul << hash->alloc_log2, spanhash_cmp);
 	return hash;
 }
 
-- 
2.34.0.rc1.windows.1.4.ga126985b17
Previous: Philip OakleyNext: Philip Oakley
Message 3 of 6 in “Fix LLP64 `(size_t)1` compatibility VS C4334 warnings”
  1. 0/3 Fix LLP64 `(size_t)1` compatibility VS C4334 warningsPhilip Oakley, Dec 1, 2021
  2. 1/3 repack.c: LLP64 compatibility, upcast unity for left shiftPhilip Oakley, Dec 1, 2021
  3. 2/3 diffcore-delta.c: LLP64 compatibility, upcast unity for left shiftPhilip Oakley, Dec 1, 2021
  4. 3/3 object-file.c: LLP64 compatibility, upcast unity for left shiftPhilip Oakley, Dec 1, 2021
  5. Junio C HamanoDec 1, 2021
  6. Derrick StoleeDec 2, 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.