brintos

brintos / llvm-project-archived public Read only

0
0
Text · 910 B · 6adab1e Raw
33 lines · cpp
1// RUN: %clangxx_tsan -O1 -DTEST_ERROR=ERANGE %s -o %t && %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-SYS %s2// RUN: %clangxx_tsan -O1 -DTEST_ERROR=-1 %s -o %t && not %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-USER %s3// This test is for GNU specific version of strerror_r()4// UNSUPPORTED: darwin, target={{.*(netbsd|freebsd).*}}5 6#include "test.h"7 8#include <errno.h>9#include <pthread.h>10#include <string.h>11 12char buffer[1000];13 14void *Thread(void *p) {15  barrier_wait(&barrier);16  return strerror_r(TEST_ERROR, buffer, sizeof(buffer));17}18 19int main() {20  barrier_init(&barrier, 2);21  pthread_t th;22  pthread_create(&th, 0, Thread, 0);23  strerror_r(TEST_ERROR, buffer, sizeof(buffer));24  barrier_wait(&barrier);25  pthread_join(th, 0);26  fprintf(stderr, "DONE\n");27}28 29// CHECK-USER: WARNING: ThreadSanitizer: data race30// CHECK-SYS-NOT: WARNING: ThreadSanitizer: data race31 32// CHECK: DONE33