From: Andrzej Hunt Date: Fri, 11 Jun 2021 15:37:40 GMT Subject: Re: [PATCH 3/3] builtin/checkout--worker: memset struct to avoid MSAN complaints Message-ID: <5a7a57d8-3704-4531-44f5-4d0d48ec376c@ahunt.org> In-Reply-To: On 11/06/2021 08:28, Junio C Hamano wrote: > Chris Torek writes: > >> On Thu, Jun 10, 2021 at 9:49 AM Andrzej Hunt via GitGitGadget >> 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 . )