[compiler-rt] r183645 - tsan: fix old gcc warnings

Dmitry Vyukov dvyukov at google.com
Tue Jun 11 04:45:53 PDT 2013


Done. r183738.

On Tue, Jun 11, 2013 at 2:15 PM, Alexey Samsonov <samsonov at google.com> wrote:
> compiler-rt mostly uses the same warning as LLVM/Clang.
>
> I vote for adding -Wno-maybe-uninitialized to custom gotsan build script.
>
>
> On Tue, Jun 11, 2013 at 12:43 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>
>> On Mon, Jun 10, 2013 at 4:15 AM, Dmitry Vyukov <dvyukov at google.com> wrote:
>> > On Mon, Jun 10, 2013 at 3:14 PM, Dmitry Vyukov <dvyukov at google.com>
>> > wrote:
>> >> It's gcc4.7 and it says:
>> >
>> > gcc gotsan.cc -S -o tmp.s -I../rtl -I../.. -I../../sanitizer_common
>> > -I../../../include -m64 -Wall -Werror -fno-exception
>> > s -fno-rtti -DTSAN_GO -DSANITIZER_GO -DTSAN_SHADOW_COUNT=4
>> > -Wno-error=attributes -Wno-attributes -DTSAN_DEBUG=0 -O3 -fom
>> > it-frame-pointer
>> > In file included from ../rtl/tsan_clock.h:17:0,
>> >                  from ../rtl/tsan_rtl.h:33,
>> >                  from gotsan.cc:14:
>> > ../rtl/tsan_vector.h: In function 'void
>> > __tsan::ReportRace(__tsan::ThreadState*)':
>> > ../rtl/tsan_vector.h:63:5: error: '*((void*)(&
>> > hash)+16).__tsan::MD5Hash::hash[1]' may be used uninitialized in this
>> > fun
>> > ction [-Werror=maybe-uninitialized]
>>
>> We've disabled this warning in the LLVM/Clang builds (because of false
>> positives like this and adding explicit initialization removes the
>> ability for dynamic tools (such as msan, valgrind, etc) to detect an
>> actual failure to initialize (if the md5 hash function didn't write to
>> the whole value, etc)) - is there a reason it's not disabled in
>> compiler-rt?
>>
>> > gotsan.cc:2709:14: note: '*((void*)(&
>> > hash)+16).__tsan::MD5Hash::hash[1]' was declared here
>> > In file included from ../rtl/tsan_clock.h:17:0,
>> >                  from ../rtl/tsan_rtl.h:33,
>> >                  from gotsan.cc:14:
>> > ../rtl/tsan_vector.h:63:5: error: '*((void*)(&
>> > hash)+16).__tsan::MD5Hash::hash[0]' may be used uninitialized in this
>> > fun
>> > ction [-Werror=maybe-uninitialized]
>> > gotsan.cc:2709:14: note: '*((void*)(&
>> > hash)+16).__tsan::MD5Hash::hash[0]' was declared here
>> > In file included from ../rtl/tsan_clock.h:17:0,
>> >                  from ../rtl/tsan_rtl.h:33,
>> >                  from gotsan.cc:14:
>> > ../rtl/tsan_vector.h:63:5: error: 'hash.__tsan::MD5Hash::hash[1]' may
>> > be used uninitialized in this function [-Werror=ma
>> > ybe-uninitialized]
>> > gotsan.cc:2709:14: note: 'hash.__tsan::MD5Hash::hash[1]' was declared
>> > here
>> > In file included from ../rtl/tsan_clock.h:17:0,
>> >                  from ../rtl/tsan_rtl.h:33,
>> >                  from gotsan.cc:14:
>> > ../rtl/tsan_vector.h:63:5: error: 'hash.__tsan::MD5Hash::hash[0]' may
>> > be used uninitialized in this function [-Werror=ma
>> > ybe-uninitialized]
>> > gotsan.cc:2709:14: note: 'hash.__tsan::MD5Hash::hash[0]' was declared
>> > here
>> > cc1plus.exe: all warnings being treated as errors
>> >
>> >
>> >
>> >> On Mon, Jun 10, 2013 at 2:38 PM, Alexey Samsonov <samsonov at google.com>
>> >> wrote:
>> >>> I think this change will lead to warnings in the newer compilers.
>> >>> AFAIR
>> >>> we've dropped gcc 4.4 support in sanitizers. Is it needed for
>> >>> Go-ThreadSanitizer?
>> >>>
>> >>>
>> >>> On Mon, Jun 10, 2013 at 2:30 PM, Dmitry Vyukov <dvyukov at google.com>
>> >>> wrote:
>> >>>>
>> >>>> Author: dvyukov
>> >>>> Date: Mon Jun 10 05:30:19 2013
>> >>>> New Revision: 183645
>> >>>>
>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=183645&view=rev
>> >>>> Log:
>> >>>> tsan: fix old gcc warnings
>> >>>>
>> >>>> Modified:
>> >>>>     compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc
>> >>>>
>> >>>> Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc
>> >>>> URL:
>> >>>>
>> >>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc?rev=183645&r1=183644&r2=183645&view=diff
>> >>>>
>> >>>>
>> >>>> ==============================================================================
>> >>>> --- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc (original)
>> >>>> +++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc Mon Jun 10
>> >>>> 05:30:19
>> >>>> 2013
>> >>>> @@ -448,7 +448,7 @@ static bool HandleRacyStacks(ThreadState
>> >>>>      uptr addr_min, uptr addr_max) {
>> >>>>    Context *ctx = CTX();
>> >>>>    bool equal_stack = false;
>> >>>> -  RacyStacks hash;
>> >>>> +  RacyStacks hash = {};
>> >>>>    if (flags()->suppress_equal_stacks) {
>> >>>>      hash.hash[0] = md5_hash(traces[0].Begin(), traces[0].Size() *
>> >>>> sizeof(uptr));
>> >>>>      hash.hash[1] = md5_hash(traces[1].Begin(), traces[1].Size() *
>> >>>> sizeof(uptr));
>> >>>> @@ -488,7 +488,7 @@ static void AddRacyStacks(ThreadState *t
>> >>>>      uptr addr_min, uptr addr_max) {
>> >>>>    Context *ctx = CTX();
>> >>>>    if (flags()->suppress_equal_stacks) {
>> >>>> -    RacyStacks hash;
>> >>>> +    RacyStacks hash = {};
>> >>>>      hash.hash[0] = md5_hash(traces[0].Begin(), traces[0].Size() *
>> >>>> sizeof(uptr));
>> >>>>      hash.hash[1] = md5_hash(traces[1].Begin(), traces[1].Size() *
>> >>>> sizeof(uptr));
>> >>>>      ctx->racy_stacks.PushBack(hash);
>> >>>>
>> >>>>
>> >>>> _______________________________________________
>> >>>> llvm-commits mailing list
>> >>>> llvm-commits at cs.uiuc.edu
>> >>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Alexey Samsonov, MSK
>> > _______________________________________________
>> > llvm-commits mailing list
>> > llvm-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
>
>
> --
> Alexey Samsonov, MSK



More information about the llvm-commits mailing list