Hi, On Fri, 16 Jan 2015 21:25:42, Dmitry Vyukov wrote: > > This is just a copy from llvm repo, right? > Looks good to me. >
Thanks. Yes I found these test case in the llvm tree, and just adapted them to work in the gcc test suite. However, here is a small tweak in the positive test: That is we now use a tsan-invisible barrier_wait function instead of the not very reliable sleep(1). barrier_wait is bypassing the tsan interceptor, because it is accessed with dlsym (dlopen ("libpthread.so.0", RTLD_LAZY), "pthread_barrier_wait"). Bernd. > On Fri, Jan 16, 2015 at 10:17 AM, Bernd Edlinger > <bernd.edlin...@hotmail.de> wrote: >> Hi, >> >> >> I think I should ping for this patch now: >> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00599.html >> >> note that by mistake the change log referenced sanitizer.c instead of >> sanitizer.def, consider that fixed on my local copy. >> >> >> Thanks >> Bernd. >> >> >>> Date: Sun, 11 Jan 2015 14:15:54 +0100 >>> >>> Hi, >>> >>> >>> >>> On Sun, 4 Jan 2015 14:54:56, Bernd Edlinger wrote: >>>> >>>> Hi Jakub, >>>> >>>> >>>> I think I have found a reasonable test case, see the attached patch file. >>>> The use case is: a class that destroys an owned thread in the destructor. >>>> The destructor sets the vptr again to thread::vptr but this should >>>> _not_ trigger a diagnostic message, when the vptr does not really change. >>>> >>>> Jakub, this is another test case where the TREE_READONLY prevents >>>> the tsan instrumentation. So I had first to install your patch: >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01432.html >>>> >>>> ... to see the test case fail without my patch. >>>> >>> >>> that has been installed in the meantime. >>> >>>> The patch installs cleanly on 4.9 and 4.8, however the 4.8 branch >>>> has no tsan tests, so I would leave the test case away for 4.8. >>>> >>> >>> I found, 4.8 does not have BT_FN_VOID_PTR_PTR, and no tsan tests >>> at all, so it is probably not worth the effort. >>> >>>> Boot-strapped and regression-tested on x86_64-linux-gnu >>>> OK for trunk and 4.9 + 4.8 branches? >>>> >>>> >>>> Thanks >>>> Bernd. >>>> >>>> >>> >>> I found some test cases in the clang tree, about the __tsan_vptr_update. >>> So I thought I should use these instead of inventing new ones. >>> >>> Attached you'll find an updated patch with one positive and one negative >>> test for vptr races. >>> >>> Tested with x86_64-linux-gnu. >>> OK for trunk and 4.9 after a while? >>> >>> >>> Thanks >>> Bernd. >>> >>