diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-06-10 13:44:32 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-06-10 13:44:32 +0000 |
commit | 7edd24de96f22ad70fd3ca16a3c51723383cd58b (patch) | |
tree | 1bd9c96401fc2098358ab3ab9f14255e2eabd1ac /test/tsan/strerror_r.cc | |
parent | 25091d6bd042c6bf2709eaab2bd1a88f3f2d9fda (diff) | |
download | src-7edd24de96f22ad70fd3ca16a3c51723383cd58b.tar.gz src-7edd24de96f22ad70fd3ca16a3c51723383cd58b.zip |
Vendor import of compiler-rt trunk r305145:vendor/compiler-rt/compiler-rt-trunk-r305145
Notes
Notes:
svn path=/vendor/compiler-rt/dist/; revision=319784
svn path=/vendor/compiler-rt/compiler-rt-trunk-r305145/; revision=319785; tag=vendor/compiler-rt/compiler-rt-trunk-r305145
Diffstat (limited to 'test/tsan/strerror_r.cc')
-rw-r--r-- | test/tsan/strerror_r.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/tsan/strerror_r.cc b/test/tsan/strerror_r.cc new file mode 100644 index 000000000000..06c92d3bb641 --- /dev/null +++ b/test/tsan/strerror_r.cc @@ -0,0 +1,29 @@ +// RUN: %clangxx_tsan -O1 -DTEST_ERROR=ERANGE %s -o %t && %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-SYS %s +// RUN: %clangxx_tsan -O1 -DTEST_ERROR=-1 %s -o %t && not %run %t 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-USER %s +// UNSUPPORTED: darwin + +#include <assert.h> +#include <errno.h> +#include <pthread.h> +#include <stdio.h> +#include <string.h> + +char buffer[1000]; + +void *Thread(void *p) { + return strerror_r(TEST_ERROR, buffer, sizeof(buffer)); +} + +int main() { + pthread_t th[2]; + pthread_create(&th[0], 0, Thread, 0); + pthread_create(&th[1], 0, Thread, 0); + pthread_join(th[0], 0); + pthread_join(th[1], 0); + fprintf(stderr, "DONE\n"); +} + +// CHECK-USER: WARNING: ThreadSanitizer: data race +// CHECK-SYS-NOT: WARNING: ThreadSanitizer: data race + +// CHECK: DONE |