xref: /llvm-project/compiler-rt/test/tsan/tiny_race.c (revision 3ab6b2347e8d940b0687fb693c861c68d1e50998)
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 Samsonov void *Thread1(void *x) {
7*3ab6b234SDmitry Vyukov   barrier_wait(&barrier);
8e6a6183eSAlexey Samsonov   Global = 42;
9e6a6183eSAlexey Samsonov   return x;
10e6a6183eSAlexey Samsonov }
11e6a6183eSAlexey Samsonov 
main()12e6a6183eSAlexey Samsonov int 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