1 #include <pthread.h> 2 3 volatile int N; // Prevent loop unrolling. 4 int **data; 5 6 void *Thread1(void *x) { 7 for (int i = 0; i < N; i++) 8 data[i][0] = 42; 9 return 0; 10 } 11 12 int main() { 13 N = 4; 14 data = new int*[N]; 15 for (int i = 0; i < N; i++) 16 data[i] = new int; 17 pthread_t t; 18 pthread_create(&t, 0, Thread1, 0); 19 Thread1(0); 20 pthread_join(t, 0); 21 for (int i = 0; i < N; i++) 22 delete data[i]; 23 delete[] data; 24 } 25 26 // CHECK: ThreadSanitizer: reported 1 warnings 27 28