Re: [PATCH 0/4] Fix LLP64 `(size_t)1` compatibility VS C4334 warnings
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Nov 29, 2021, 14:44 UTC
- Message-ID
- <3afe7a17-bf9f-1191-5ed4-407f4f26b9ed@gmail.com>
- In-Reply-To
- <20211126113614.709-1-philipoakley@iee.email>
On 11/26/2021 6:36 AM, Philip Oakley wrote:
Show 17 quoted lines
> 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