brintos

brintos / llvm-project-archived public Read only

0
0
Text · 512 B · 5d481c3 Raw
28 lines · cpp
1// RUN: %clang_tsan -O1 %s -o %t && %env_tsan_opts=halt_on_error=1 %deflake %run %t | FileCheck %s2#include "test.h"3 4int X;5 6void *Thread(void *x) {7  barrier_wait(&barrier);8  X = 42;9  return 0;10}11 12int main() {13  barrier_init(&barrier, 2);14  fprintf(stderr, "BEFORE\n");15  pthread_t t;16  pthread_create(&t, 0, Thread, 0);17  X = 43;18  barrier_wait(&barrier);19  pthread_join(t, 0);20  fprintf(stderr, "AFTER\n");21  return 0;22}23 24// CHECK: BEFORE25// CHECK: WARNING: ThreadSanitizer: data race26// CHECK-NOT: AFTER27 28