1// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s 2#include <pthread.h> 3#include <stdio.h> 4#include <unistd.h> 5 6char s[] = "abracadabra"; 7 8void *Thread0(void *p) { 9 puts(s); 10 return 0; 11} 12 13void *Thread1(void *p) { 14 s[3] = 'z'; 15 return 0; 16} 17 18int main() { 19 pthread_t th[2]; 20 pthread_create(&th[0], 0, Thread0, 0); 21 pthread_create(&th[1], 0, Thread1, 0); 22 pthread_join(th[0], 0); 23 pthread_join(th[1], 0); 24 fprintf(stderr, "DONE"); 25} 26 27// CHECK: WARNING: ThreadSanitizer: data race 28// CHECK: DONE 29 30