mirror of git://gcc.gnu.org/git/gcc.git
re PR sanitizer/64265 (r217669 broke tsan)
PR sanitizer/64265 * g++.dg/tsan/pr64265.C: New test. From-SVN: r221509
This commit is contained in:
parent
bfd714822b
commit
02703f4c0f
|
|
@ -1,5 +1,8 @@
|
||||||
2015-03-19 Jakub Jelinek <jakub@redhat.com>
|
2015-03-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR sanitizer/64265
|
||||||
|
* g++.dg/tsan/pr64265.C: New test.
|
||||||
|
|
||||||
PR sanitizer/65400
|
PR sanitizer/65400
|
||||||
* c-c++-common/tsan/pr65400-1.c: New test.
|
* c-c++-common/tsan/pr65400-1.c: New test.
|
||||||
* c-c++-common/tsan/pr65400-2.c: New test.
|
* c-c++-common/tsan/pr65400-2.c: New test.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
// PR sanitizer/64265
|
||||||
|
// { dg-shouldfail "tsan" }
|
||||||
|
// { dg-additional-options "-fno-omit-frame-pointer -ldl" }
|
||||||
|
|
||||||
|
#include <pthread.h>
|
||||||
|
#include "tsan_barrier.h"
|
||||||
|
|
||||||
|
static pthread_barrier_t barrier;
|
||||||
|
int v;
|
||||||
|
|
||||||
|
__attribute__((noinline, noclone)) int
|
||||||
|
foo (int x)
|
||||||
|
{
|
||||||
|
if (x < 99)
|
||||||
|
throw x;
|
||||||
|
barrier_wait (&barrier);
|
||||||
|
v++;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__((noinline, noclone)) void
|
||||||
|
bar (void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 100; i++)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foo (i);
|
||||||
|
}
|
||||||
|
catch (int)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__((noinline, noclone)) void *
|
||||||
|
tf (void *)
|
||||||
|
{
|
||||||
|
bar ();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
pthread_t th;
|
||||||
|
barrier_init (&barrier, 2);
|
||||||
|
if (pthread_create (&th, NULL, tf, NULL))
|
||||||
|
return 0;
|
||||||
|
v++;
|
||||||
|
barrier_wait (&barrier);
|
||||||
|
pthread_join (th, NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// { dg-output "WARNING: ThreadSanitizer: data race.*#2 _?(tf|_Z2tfPv)" }
|
||||||
Loading…
Reference in New Issue