brintos

brintos / llvm-project-archived public Read only

0
0
Text · 542 B · 9305650 Raw
28 lines · cpp
1// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s2#include <pthread.h>3 4volatile int N;  // Prevent loop unrolling.5int **data;6 7void *Thread1(void *x) {8  for (int i = 0; i < N; i++)9    data[i][0] = 42;10  return 0;11}12 13int main() {14  N = 4;15  data = new int*[N];16  for (int i = 0; i < N; i++)17    data[i] = new int;18  pthread_t t;19  pthread_create(&t, 0, Thread1, 0);20  Thread1(0);21  pthread_join(t, 0);22  for (int i = 0; i < N; i++)23    delete data[i];24  delete[] data;25}26 27// CHECK: ThreadSanitizer: reported 1 warnings28