Re: [PATCH 3/3] builtin/checkout--worker: memset struct to avoid MSAN complaints
- From
Andrzej Hunt <andrzej@ahunt.org>
- Date
- Jun 11, 2021, 15:37 UTC
- Message-ID
- <5a7a57d8-3704-4531-44f5-4d0d48ec376c@ahunt.org>
- In-Reply-To
- <xmqq7dj0530s.fsf@gitster.g>
On 11/06/2021 08:28, Junio C Hamano wrote:
Show 22 quoted lines
> Chris Torek <chris.torek@gmail.com> writes:
>
>> On Thu, Jun 10, 2021 at 9:49 AM Andrzej Hunt via GitGitGadget
>> <gitgitgadget@gmail.com> wrote:
>>> [snip] Therefore we add a
>>> memset to convince MSAN that this memory is safe to read - but only
>>> when building with MSAN to avoid this cost in normal usage.
>>
>> It does not seem likely to be that expensive, and would definitely
>> be shorter without all the `#if` testing:
>>
>>> diff --git a/builtin/checkout--worker.c b/builtin/checkout--worker.c
>>> index 289a9b8f89d0..02fa5285988f 100644
>>> --- a/builtin/checkout--worker.c
>>> +++ b/builtin/checkout--worker.c
>>> @@ -56,6 +56,17 @@ static void report_result(struct parallel_checkout_item *pc_item)
>>> struct pc_item_result res;
>>
>> This could just have `= { 0 }` added.
>
> I'd prefer that very much more than the #if testing, within which //
> comments that we do not want in our codebase are enclosed.I'll fix this for V2 - thanks Chris and Junio!
(At the time I wasn't aware that this would include all members and padding, but I've learned more since reading the clang developer's discussion around padding and brace intialisation :) : https://reviews.llvm.org/D61280 . )