Re: [PATCH 3/3] builtin/checkout--worker: memset struct to avoid MSAN complaints

2 messages, 2 authors, 2021-06-11 · open the first message on its own page

Re: [PATCH 3/3] builtin/checkout--worker: memset struct to avoid MSAN complaints

From: Junio C Hamano <hidden>
Date: 2021-06-11 06:28:09

Chris Torek [off-list ref] writes:
On Thu, Jun 10, 2021 at 9:49 AM Andrzej Hunt via GitGitGadget
[off-list ref] wrote:
quoted
[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:
quoted
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.

Thanks.

Re: [PATCH 3/3] builtin/checkout--worker: memset struct to avoid MSAN complaints

From: Andrzej Hunt <hidden>
Date: 2021-06-11 15:37:56


On 11/06/2021 08:28, Junio C Hamano wrote:
Chris Torek [off-list ref] writes:
quoted
On Thu, Jun 10, 2021 at 9:49 AM Andrzej Hunt via GitGitGadget
[off-list ref] wrote:
quoted
[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:
quoted
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 . )
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help