1233f401cSDmitry Vyukov // RUN: %clang_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s 2*3ab6b234SDmitry Vyukov #include "test.h" 3e6a6183eSAlexey Samsonov 4e6a6183eSAlexey Samsonov int Global; 5e6a6183eSAlexey Samsonov Thread1(void * x)6e6a6183eSAlexey Samsonovvoid *Thread1(void *x) { 7*3ab6b234SDmitry Vyukov barrier_wait(&barrier); 8e6a6183eSAlexey Samsonov Global = 42; 9e6a6183eSAlexey Samsonov return x; 10e6a6183eSAlexey Samsonov } 11e6a6183eSAlexey Samsonov main()12e6a6183eSAlexey Samsonovint main() { 13*3ab6b234SDmitry Vyukov barrier_init(&barrier, 2); 14e6a6183eSAlexey Samsonov pthread_t t; 15e6a6183eSAlexey Samsonov pthread_create(&t, 0, Thread1, 0); 16e6a6183eSAlexey Samsonov Global = 43; 17*3ab6b234SDmitry Vyukov barrier_wait(&barrier); 18e6a6183eSAlexey Samsonov pthread_join(t, 0); 19e6a6183eSAlexey Samsonov return Global; 20e6a6183eSAlexey Samsonov } 21e6a6183eSAlexey Samsonov 22e6a6183eSAlexey Samsonov // CHECK: WARNING: ThreadSanitizer: data race 23