Message ID | 20211126113614.709-4-philipoakley@iee.email (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Fix LLP64 `(size_t)1` compatibility VS C4334 warnings | expand |
On 11/26/2021 6:36 AM, Philip Oakley wrote: > 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..a4e86dfa38 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))); This could use spaces around "<<" > 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)); Especially because you correctly add them here. Thanks, -Stolee
On 29/11/2021 14:44, Derrick Stolee wrote: > On 11/26/2021 6:36 AM, Philip Oakley wrote: >> 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..a4e86dfa38 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))); > This could use spaces around "<<" OK. > >> 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)); > Especially because you correctly add them here. True. The spacing isn't that consistent in the code base, but adding the spaces here does look better. > > Thanks, > -Stolee Philip
diff --git a/diffcore-delta.c b/diffcore-delta.c index 5668ace60d..a4e86dfa38 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; }
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(-)