diff options
Diffstat (limited to 'lib/tsan/lit_tests/static_init5.cc')
-rw-r--r-- | lib/tsan/lit_tests/static_init5.cc | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/lib/tsan/lit_tests/static_init5.cc b/lib/tsan/lit_tests/static_init5.cc deleted file mode 100644 index 1d0ed6d54ca25..0000000000000 --- a/lib/tsan/lit_tests/static_init5.cc +++ /dev/null @@ -1,42 +0,0 @@ -// RUN: %clangxx_tsan -O1 %s -o %t && %t 2>&1 | FileCheck %s -#include <pthread.h> -#include <stdlib.h> -#include <stdio.h> -#include <sched.h> - -struct Cache { - int x; - explicit Cache(int x) - : x(x) { - } -}; - -void *AsyncInit(void *p) { - return new Cache((int)(long)p); -} - -Cache *CreateCache() { - pthread_t t; - pthread_create(&t, 0, AsyncInit, (void*)(long)rand()); - void *res; - pthread_join(t, &res); - return (Cache*)res; -} - -void *Thread1(void *x) { - static Cache *c = CreateCache(); - if (c->x >= RAND_MAX) - exit(1); - return 0; -} - -int main() { - pthread_t t[2]; - pthread_create(&t[0], 0, Thread1, 0); - pthread_create(&t[1], 0, Thread1, 0); - pthread_join(t[0], 0); - pthread_join(t[1], 0); - printf("PASS\n"); -} - -// CHECK-NOT: WARNING: ThreadSanitizer: data race |