Re: [PATCH 0/4] Fix LLP64 `(size_t)1` compatibility VS C4334 warnings

From
Derrick Stolee <hidden>
Date
2021-11-29 18:14:46
Reply to
Philip Oakley, 2021-11-26
On 11/26/2021 6:36 AM, Philip Oakley wrote:
The Visual Studio MSVC compilation reports a number of C4334 "was 64-bit
shift intended" size mismatch warnings. In most of these cases a size_t
is ANDed (masked) with a bit shift of 1, or 1U. On LLP64 systems the unity
value is 32 bits, while size_t is 64 bits. 

The fix is to upcast the unity value to size_t.   

The first patch has also been reported [1] by René Scharfe as an extra patch
to the rs/mergesort series. That patch had been on maint.

The middle two patches are similar changes, though [2/4] is a uintptr_t.

The final patch is applied to object-file.c, which has recently been
renamed from sha1-file.c, so couldn't be applied to the earlier maint
branch.[2]

These fixes clear all the current C4334 warnings.
Thank you for these changes. They all are obviously correct.

I had one style nitpick that you could take or leave.
The patches can be squashed together if required.
I'm fine either way.

Thanks,
-Stolee
Thread (12 messages) 12 messages, 4 authors, last reply 2021-11-30
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help