summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuba Brecka <kuba.brecka@gmail.com>2015-11-20 11:13:36 +0000
committerKuba Brecka <kuba.brecka@gmail.com>2015-11-20 11:13:36 +0000
commit1a26ff7d170b3db1d140caba9a4e7643429772c8 (patch)
tree6493e2cf2bee97ba6e570cfa734477a03b4635af
parent8aa56d3cc878bf230bb2d732d214deaaadc59af2 (diff)
downloadbcm5719-llvm-1a26ff7d170b3db1d140caba9a4e7643429772c8.tar.gz
bcm5719-llvm-1a26ff7d170b3db1d140caba9a4e7643429772c8.zip
[tsan] Fix deadlock_detector_stress_test.cc testcase for OS X
On OS X, we don't have pthread spinlocks, let's just use a regular mutex instead. Secondly, pthread_rwlock_t is much larger (200 bytes), so `char padding_[64 - sizeof(pthread_rwlock_t)]` actually underflows. Differential Revision: http://reviews.llvm.org/D14862 llvm-svn: 253659
-rw-r--r--compiler-rt/test/tsan/deadlock_detector_stress_test.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler-rt/test/tsan/deadlock_detector_stress_test.cc b/compiler-rt/test/tsan/deadlock_detector_stress_test.cc
index 8af70b2afb9..41ad5818bdf 100644
--- a/compiler-rt/test/tsan/deadlock_detector_stress_test.cc
+++ b/compiler-rt/test/tsan/deadlock_detector_stress_test.cc
@@ -56,6 +56,7 @@ class PthreadRecursiveMutex : public PthreadMutex {
static bool supports_recursive_lock() { return true; }
};
+#ifndef __APPLE__
class PthreadSpinLock {
public:
PthreadSpinLock() { assert(0 == pthread_spin_init(&mu_, 0)); }
@@ -76,6 +77,9 @@ class PthreadSpinLock {
pthread_spinlock_t mu_;
char padding_[64 - sizeof(pthread_spinlock_t)];
};
+#else
+class PthreadSpinLock : public PthreadMutex { };
+#endif
class PthreadRWLock {
public:
@@ -95,7 +99,7 @@ class PthreadRWLock {
private:
pthread_rwlock_t mu_;
- char padding_[64 - sizeof(pthread_rwlock_t)];
+ char padding_[256 - sizeof(pthread_rwlock_t)];
};
class LockTest {
OpenPOWER on IntegriCloud