1 // RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s 2 #include <pthread.h> 3 #include <stddef.h> 4 #include <unistd.h> 5 6 void *Thread2(void *a) { 7 sleep(1); 8 *(int*)a = 43; 9 return 0; 10 } 11 12 void *Thread(void *a) { 13 int Var = 42; 14 pthread_t t; 15 pthread_create(&t, 0, Thread2, &Var); 16 Var = 42; 17 pthread_join(t, 0); 18 return 0; 19 } 20 21 int main() { 22 pthread_t t; 23 pthread_create(&t, 0, Thread, 0); 24 pthread_join(t, 0); 25 } 26 27 // CHECK: WARNING: ThreadSanitizer: data race 28 // CHECK: Location is stack of thread T1. 29 30