<div dir="ltr">compiler-rt mostly uses the same warning as LLVM/Clang.<div><br></div><div style>I vote for adding -Wno-maybe-uninitialized to custom gotsan build script.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Tue, Jun 11, 2013 at 12:43 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Mon, Jun 10, 2013 at 4:15 AM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>
> On Mon, Jun 10, 2013 at 3:14 PM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>
>> It's gcc4.7 and it says:<br>
><br>
> gcc gotsan.cc -S -o tmp.s -I../rtl -I../.. -I../../sanitizer_common<br>
> -I../../../include -m64 -Wall -Werror -fno-exception<br>
> s -fno-rtti -DTSAN_GO -DSANITIZER_GO -DTSAN_SHADOW_COUNT=4<br>
> -Wno-error=attributes -Wno-attributes -DTSAN_DEBUG=0 -O3 -fom<br>
> it-frame-pointer<br>
> In file included from ../rtl/tsan_clock.h:17:0,<br>
>                  from ../rtl/tsan_rtl.h:33,<br>
>                  from gotsan.cc:14:<br>
> ../rtl/tsan_vector.h: In function 'void<br>
> __tsan::ReportRace(__tsan::ThreadState*)':<br>
> ../rtl/tsan_vector.h:63:5: error: '*((void*)(&<br>
> hash)+16).__tsan::MD5Hash::hash[1]' may be used uninitialized in this<br>
> fun<br>
> ction [-Werror=maybe-uninitialized]<br>
<br>
</div>We've disabled this warning in the LLVM/Clang builds (because of false<br>
positives like this and adding explicit initialization removes the<br>
ability for dynamic tools (such as msan, valgrind, etc) to detect an<br>
actual failure to initialize (if the md5 hash function didn't write to<br>
the whole value, etc)) - is there a reason it's not disabled in<br>
compiler-rt?<br>
<div class="HOEnZb"><div class="h5"><br>
> gotsan.cc:2709:14: note: '*((void*)(&<br>
> hash)+16).__tsan::MD5Hash::hash[1]' was declared here<br>
> In file included from ../rtl/tsan_clock.h:17:0,<br>
>                  from ../rtl/tsan_rtl.h:33,<br>
>                  from gotsan.cc:14:<br>
> ../rtl/tsan_vector.h:63:5: error: '*((void*)(&<br>
> hash)+16).__tsan::MD5Hash::hash[0]' may be used uninitialized in this<br>
> fun<br>
> ction [-Werror=maybe-uninitialized]<br>
> gotsan.cc:2709:14: note: '*((void*)(&<br>
> hash)+16).__tsan::MD5Hash::hash[0]' was declared here<br>
> In file included from ../rtl/tsan_clock.h:17:0,<br>
>                  from ../rtl/tsan_rtl.h:33,<br>
>                  from gotsan.cc:14:<br>
> ../rtl/tsan_vector.h:63:5: error: 'hash.__tsan::MD5Hash::hash[1]' may<br>
> be used uninitialized in this function [-Werror=ma<br>
> ybe-uninitialized]<br>
> gotsan.cc:2709:14: note: 'hash.__tsan::MD5Hash::hash[1]' was declared here<br>
> In file included from ../rtl/tsan_clock.h:17:0,<br>
>                  from ../rtl/tsan_rtl.h:33,<br>
>                  from gotsan.cc:14:<br>
> ../rtl/tsan_vector.h:63:5: error: 'hash.__tsan::MD5Hash::hash[0]' may<br>
> be used uninitialized in this function [-Werror=ma<br>
> ybe-uninitialized]<br>
> gotsan.cc:2709:14: note: 'hash.__tsan::MD5Hash::hash[0]' was declared here<br>
> cc1plus.exe: all warnings being treated as errors<br>
><br>
><br>
><br>
>> On Mon, Jun 10, 2013 at 2:38 PM, Alexey Samsonov <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:<br>
>>> I think this change will lead to warnings in the newer compilers. AFAIR<br>
>>> we've dropped gcc 4.4 support in sanitizers. Is it needed for<br>
>>> Go-ThreadSanitizer?<br>
>>><br>
>>><br>
>>> On Mon, Jun 10, 2013 at 2:30 PM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>
>>>><br>
>>>> Author: dvyukov<br>
>>>> Date: Mon Jun 10 05:30:19 2013<br>
>>>> New Revision: 183645<br>
>>>><br>
>>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=183645&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=183645&view=rev</a><br>
>>>> Log:<br>
>>>> tsan: fix old gcc warnings<br>
>>>><br>
>>>> Modified:<br>
>>>>     compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc<br>
>>>><br>
>>>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc<br>
>>>> URL:<br>
>>>> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc?rev=183645&r1=183644&r2=183645&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc?rev=183645&r1=183644&r2=183645&view=diff</a><br>

>>>><br>
>>>> ==============================================================================<br>
>>>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc (original)<br>
>>>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc Mon Jun 10 05:30:19<br>
>>>> 2013<br>
>>>> @@ -448,7 +448,7 @@ static bool HandleRacyStacks(ThreadState<br>
>>>>      uptr addr_min, uptr addr_max) {<br>
>>>>    Context *ctx = CTX();<br>
>>>>    bool equal_stack = false;<br>
>>>> -  RacyStacks hash;<br>
>>>> +  RacyStacks hash = {};<br>
>>>>    if (flags()->suppress_equal_stacks) {<br>
>>>>      hash.hash[0] = md5_hash(traces[0].Begin(), traces[0].Size() *<br>
>>>> sizeof(uptr));<br>
>>>>      hash.hash[1] = md5_hash(traces[1].Begin(), traces[1].Size() *<br>
>>>> sizeof(uptr));<br>
>>>> @@ -488,7 +488,7 @@ static void AddRacyStacks(ThreadState *t<br>
>>>>      uptr addr_min, uptr addr_max) {<br>
>>>>    Context *ctx = CTX();<br>
>>>>    if (flags()->suppress_equal_stacks) {<br>
>>>> -    RacyStacks hash;<br>
>>>> +    RacyStacks hash = {};<br>
>>>>      hash.hash[0] = md5_hash(traces[0].Begin(), traces[0].Size() *<br>
>>>> sizeof(uptr));<br>
>>>>      hash.hash[1] = md5_hash(traces[1].Begin(), traces[1].Size() *<br>
>>>> sizeof(uptr));<br>
>>>>      ctx->racy_stacks.PushBack(hash);<br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> llvm-commits mailing list<br>
>>>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
>>><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Alexey Samsonov, MSK<br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>