diff options
Diffstat (limited to 'compiler-rt/test/msan/pthread_getattr_np_deadlock.cc')
-rw-r--r-- | compiler-rt/test/msan/pthread_getattr_np_deadlock.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler-rt/test/msan/pthread_getattr_np_deadlock.cc b/compiler-rt/test/msan/pthread_getattr_np_deadlock.cc index 98eaf14150b..241caa2a211 100644 --- a/compiler-rt/test/msan/pthread_getattr_np_deadlock.cc +++ b/compiler-rt/test/msan/pthread_getattr_np_deadlock.cc @@ -1,14 +1,23 @@ // RUN: %clangxx_msan -fsanitize-memory-track-origins -O0 %s -o %t && %run %t // Regression test for a deadlock in pthread_getattr_np -// UNSUPPORTED: freebsd #include <assert.h> #include <pthread.h> +#if defined(__FreeBSD__) +#include <pthread_np.h> +#endif void *ThreadFn(void *) { pthread_attr_t attr; +#if defined(__FreeBSD__) + // On FreeBSD it needs to allocate attr underlying memory + int res = pthread_attr_init(&attr); + assert(!res); + res = pthread_attr_get_np(pthread_self(), &attr); +#else int res = pthread_getattr_np(pthread_self(), &attr); +#endif assert(!res); return 0; } |