1// RUN: %clang_tsan -O1 %s -o %t && TSAN_OPTIONS="$TSAN_OPTIONS halt_on_error=1" %deflake %run %t | FileCheck %s 2#include <pthread.h> 3#include <stdio.h> 4#include <unistd.h> 5 6int X; 7 8void *Thread(void *x) { 9 sleep(1); 10 X = 42; 11 return 0; 12} 13 14int main() { 15 fprintf(stderr, "BEFORE\n"); 16 pthread_t t; 17 pthread_create(&t, 0, Thread, 0); 18 X = 43; 19 pthread_join(t, 0); 20 fprintf(stderr, "AFTER\n"); 21 return 0; 22} 23 24// CHECK: BEFORE 25// CHECK: WARNING: ThreadSanitizer: data race 26// CHECK-NOT: AFTER 27 28