brintos

brintos / llvm-project-archived public Read only

0
0
Text · 533 B · 95dff19 Raw
26 lines · cpp
1// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s2#include "test.h"3 4int x;5 6void *Thread(void *a) {7  barrier_wait(&barrier);8  x = 1;9  return 0;10}11 12int main() {13  barrier_init(&barrier, 2);14  print_address("addr2=", 1, &x);15  pthread_t t;16  pthread_create(&t, 0, Thread, 0);17  x = 0;18  barrier_wait(&barrier);19  pthread_join(t, 0);20}21 22// CHECK: addr2=[[ADDR2:0x[0-9,a-f]+]]23// CHECK: WARNING: ThreadSanitizer: data race24// CHECK: Location is global 'x' {{(of size 4 )?}}at [[ADDR2]] ({{.*}}+0x{{[0-9,a-f]+}})25 26