brintos

brintos / llvm-project-archived public Read only

0
0
Text · 536 B · 53e820d Raw
28 lines · cpp
1// RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s2#include "test.h"3 4int Global;5int WTFGlobal;6 7void *Thread(void *x) {8  Global = 42;9  WTFGlobal = 142;10  barrier_wait(&barrier);11  return 0;12}13 14int main() {15  barrier_init(&barrier, 2);16  ANNOTATE_BENIGN_RACE(Global);17  WTF_ANNOTATE_BENIGN_RACE(WTFGlobal);18  pthread_t t;19  pthread_create(&t, 0, Thread, 0);20  barrier_wait(&barrier);21  Global = 43;22  WTFGlobal = 143;23  pthread_join(t, 0);24  fprintf(stderr, "OK\n");25}26 27// CHECK-NOT: WARNING: ThreadSanitizer: data race28