| // RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s | |
| #include <pthread.h> | |
| volatile int N; // Prevent loop unrolling. | |
| int **data; | |
| void *Thread1(void *x) { | |
| for (int i = 0; i < N; i++) | |
| data[i][0] = 42; | |
| return 0; | |
| } | |
| int main() { | |
| N = 4; | |
| data = new int*[N]; | |
| for (int i = 0; i < N; i++) | |
| data[i] = new int; | |
| pthread_t t; | |
| pthread_create(&t, 0, Thread1, 0); | |
| Thread1(0); | |
| pthread_join(t, 0); | |
| for (int i = 0; i < N; i++) | |
| delete data[i]; | |
| delete[] data; | |
| } | |
| // CHECK: ThreadSanitizer: reported 1 warnings |