Replace 'noexcept' with '_NOEXCEPT' in <shared_mutex>. This allows us to build the dylib with MSVC, which doesn't support noexcept (sheesh\!). Thanks to K-ballo for the report.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@216384 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow 2014-08-25 14:53:16 +00:00
parent 4de32048f5
commit 861f1e95fd

View File

@ -232,7 +232,7 @@ private:
public: public:
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
shared_lock() noexcept shared_lock() _NOEXCEPT
: __m_(nullptr), : __m_(nullptr),
__owns_(false) __owns_(false)
{} {}
@ -244,7 +244,7 @@ public:
{__m_->lock_shared();} {__m_->lock_shared();}
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
shared_lock(mutex_type& __m, defer_lock_t) noexcept shared_lock(mutex_type& __m, defer_lock_t) _NOEXCEPT
: __m_(&__m), : __m_(&__m),
__owns_(false) __owns_(false)
{} {}
@ -288,7 +288,7 @@ public:
shared_lock& operator=(shared_lock const&) = delete; shared_lock& operator=(shared_lock const&) = delete;
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
shared_lock(shared_lock&& __u) noexcept shared_lock(shared_lock&& __u) _NOEXCEPT
: __m_(__u.__m_), : __m_(__u.__m_),
__owns_(__u.__owns_) __owns_(__u.__owns_)
{ {
@ -297,7 +297,7 @@ public:
} }
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
shared_lock& operator=(shared_lock&& __u) noexcept shared_lock& operator=(shared_lock&& __u) _NOEXCEPT
{ {
if (__owns_) if (__owns_)
__m_->unlock_shared(); __m_->unlock_shared();
@ -320,14 +320,14 @@ public:
// Setters // Setters
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
void swap(shared_lock& __u) noexcept void swap(shared_lock& __u) _NOEXCEPT
{ {
_VSTD::swap(__m_, __u.__m_); _VSTD::swap(__m_, __u.__m_);
_VSTD::swap(__owns_, __u.__owns_); _VSTD::swap(__owns_, __u.__owns_);
} }
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
mutex_type* release() noexcept mutex_type* release() _NOEXCEPT
{ {
mutex_type* __m = __m_; mutex_type* __m = __m_;
__m_ = nullptr; __m_ = nullptr;
@ -337,13 +337,13 @@ public:
// Getters // Getters
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
bool owns_lock() const noexcept {return __owns_;} bool owns_lock() const _NOEXCEPT {return __owns_;}
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
explicit operator bool () const noexcept {return __owns_;} explicit operator bool () const _NOEXCEPT {return __owns_;}
_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
mutex_type* mutex() const noexcept {return __m_;} mutex_type* mutex() const _NOEXCEPT {return __m_;}
}; };
template <class _Mutex> template <class _Mutex>
@ -409,7 +409,7 @@ shared_lock<_Mutex>::unlock()
template <class _Mutex> template <class _Mutex>
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
void void
swap(shared_lock<_Mutex>& __x, shared_lock<_Mutex>& __y) noexcept swap(shared_lock<_Mutex>& __x, shared_lock<_Mutex>& __y) _NOEXCEPT
{__x.swap(__y);} {__x.swap(__y);}
_LIBCPP_END_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD