diff options
author | Zachary Turner <zturner@google.com> | 2014-06-17 00:17:38 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2014-06-17 00:17:38 +0000 |
commit | 84fea7720cf37d82af2968e073cff71305f130e7 (patch) | |
tree | 450b3bb3b89ad6f5478868f29037e8a2ad443495 /unittests | |
parent | 408691f9673fb69b5ed45326f6ded4f3b6f19c50 (diff) | |
download | llvm-84fea7720cf37d82af2968e073cff71305f130e7.tar.gz llvm-84fea7720cf37d82af2968e073cff71305f130e7.tar.bz2 llvm-84fea7720cf37d82af2968e073cff71305f130e7.tar.xz |
Expose ValueMap's mutex type as a typedef instead of a sys::Mutex.
This enables static polymorphism of the mutex type, which is
necessary in order to replace the standard mutex implementation
with a different type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211080 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/IR/ValueMapTest.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/unittests/IR/ValueMapTest.cpp b/unittests/IR/ValueMapTest.cpp index 3427c91332..d480865805 100644 --- a/unittests/IR/ValueMapTest.cpp +++ b/unittests/IR/ValueMapTest.cpp @@ -177,10 +177,10 @@ TYPED_TEST(ValueMapTest, ConfiguredCollisionBehavior) { // TODO: Implement this when someone needs it. } -template<typename KeyT> -struct LockMutex : ValueMapConfig<KeyT> { +template<typename KeyT, typename MutexT> +struct LockMutex : ValueMapConfig<KeyT, MutexT> { struct ExtraData { - sys::Mutex *M; + mutex_type *M; bool *CalledRAUW; bool *CalledDeleted; }; @@ -192,15 +192,15 @@ struct LockMutex : ValueMapConfig<KeyT> { *Data.CalledDeleted = true; EXPECT_FALSE(Data.M->tryacquire()) << "Mutex should already be locked."; } - static sys::Mutex *getMutex(const ExtraData &Data) { return Data.M; } + static mutex_type *getMutex(const ExtraData &Data) { return Data.M; } }; #if LLVM_ENABLE_THREADS TYPED_TEST(ValueMapTest, LocksMutex) { sys::Mutex M(false); // Not recursive. bool CalledRAUW = false, CalledDeleted = false; - typename LockMutex<TypeParam*>::ExtraData Data = - {&M, &CalledRAUW, &CalledDeleted}; - ValueMap<TypeParam*, int, LockMutex<TypeParam*> > VM(Data); + typedef LockMutex<TypeParam*, sys::Mutex> ConfigType; + typename ConfigType::ExtraData Data = {&M, &CalledRAUW, &CalledDeleted}; + ValueMap<TypeParam*, int, ConfigType> VM(Data); VM[this->BitcastV.get()] = 7; this->BitcastV->replaceAllUsesWith(this->AddV.get()); this->AddV.reset(); |