diff options
author | Eric Fiselier <eric@efcs.ca> | 2015-10-02 21:25:15 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2015-10-02 21:25:15 +0000 |
commit | 2d6c0e79f7270a039a9a2e708450be80c8fea423 (patch) | |
tree | 9cdb100b0fcd37d5f2b26e6e65b527bf4a3a017c /libcxx/include/future | |
parent | 06e338b40304d6c292bc881765ddd14f8e12a174 (diff) | |
download | bcm5719-llvm-2d6c0e79f7270a039a9a2e708450be80c8fea423.tar.gz bcm5719-llvm-2d6c0e79f7270a039a9a2e708450be80c8fea423.zip |
[libcxx] Attempt to fix __throw_future_error in C++03
Summary:
Hi Marshall,
Could you please test this patch and see if you run into the same linker errors we talked about?
I can't reproduce on linux or OS X.
Hopefully you can't find any problems and we can fix the C++03 bot.
Reviewers: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D13337
llvm-svn: 249192
Diffstat (limited to 'libcxx/include/future')
-rw-r--r-- | libcxx/include/future | 61 |
1 files changed, 30 insertions, 31 deletions
diff --git a/libcxx/include/future b/libcxx/include/future index 0f8fe57da20..367eab90512 100644 --- a/libcxx/include/future +++ b/libcxx/include/future @@ -512,9 +512,8 @@ public: virtual ~future_error() _NOEXCEPT; }; -template <future_errc _Ev> -_LIBCPP_ALWAYS_INLINE -void __throw_future_error() +inline _LIBCPP_ALWAYS_INLINE +void __throw_future_error(future_errc _Ev) { #ifndef _LIBCPP_NO_EXCEPTIONS throw future_error(make_error_code(_Ev)); @@ -657,7 +656,7 @@ __assoc_state<_Rp>::set_value(_Arg& __arg) { unique_lock<mutex> __lk(this->__mut_); if (this->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg)); this->__state_ |= base::__constructed | base::ready; __cv_.notify_all(); @@ -674,7 +673,7 @@ __assoc_state<_Rp>::set_value_at_thread_exit(_Arg& __arg) { unique_lock<mutex> __lk(this->__mut_); if (this->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg)); this->__state_ |= base::__constructed; __thread_local_data()->__make_ready_at_thread_exit(this); @@ -733,7 +732,7 @@ __assoc_state<_Rp&>::set_value(_Rp& __arg) { unique_lock<mutex> __lk(this->__mut_); if (this->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); __value_ = _VSTD::addressof(__arg); this->__state_ |= base::__constructed | base::ready; __cv_.notify_all(); @@ -745,7 +744,7 @@ __assoc_state<_Rp&>::set_value_at_thread_exit(_Rp& __arg) { unique_lock<mutex> __lk(this->__mut_); if (this->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); __value_ = _VSTD::addressof(__arg); this->__state_ |= base::__constructed; __thread_local_data()->__make_ready_at_thread_exit(this); @@ -1142,7 +1141,7 @@ future<_Rp>::future(__assoc_state<_Rp>* __state) : __state_(__state) { if (__state_->__has_future_attached()) - __throw_future_error<future_errc::future_already_retrieved>(); + __throw_future_error(future_errc::future_already_retrieved); __state_->__add_shared(); __state_->__set_future_attached(); } @@ -1244,7 +1243,7 @@ future<_Rp&>::future(__assoc_state<_Rp&>* __state) : __state_(__state) { if (__state_->__has_future_attached()) - __throw_future_error<future_errc::future_already_retrieved>(); + __throw_future_error(future_errc::future_already_retrieved); __state_->__add_shared(); __state_->__set_future_attached(); } @@ -1445,7 +1444,7 @@ future<_Rp> promise<_Rp>::get_future() { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); return future<_Rp>(__state_); } @@ -1454,7 +1453,7 @@ void promise<_Rp>::set_value(const _Rp& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value(__r); } @@ -1465,7 +1464,7 @@ void promise<_Rp>::set_value(_Rp&& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value(_VSTD::move(__r)); } @@ -1476,7 +1475,7 @@ void promise<_Rp>::set_exception(exception_ptr __p) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_exception(__p); } @@ -1485,7 +1484,7 @@ void promise<_Rp>::set_value_at_thread_exit(const _Rp& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value_at_thread_exit(__r); } @@ -1496,7 +1495,7 @@ void promise<_Rp>::set_value_at_thread_exit(_Rp&& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value_at_thread_exit(_VSTD::move(__r)); } @@ -1507,7 +1506,7 @@ void promise<_Rp>::set_exception_at_thread_exit(exception_ptr __p) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_exception_at_thread_exit(__p); } @@ -1605,7 +1604,7 @@ future<_Rp&> promise<_Rp&>::get_future() { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); return future<_Rp&>(__state_); } @@ -1614,7 +1613,7 @@ void promise<_Rp&>::set_value(_Rp& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value(__r); } @@ -1623,7 +1622,7 @@ void promise<_Rp&>::set_exception(exception_ptr __p) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_exception(__p); } @@ -1632,7 +1631,7 @@ void promise<_Rp&>::set_value_at_thread_exit(_Rp& __r) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_value_at_thread_exit(__r); } @@ -1641,7 +1640,7 @@ void promise<_Rp&>::set_exception_at_thread_exit(exception_ptr __p) { if (__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __state_->set_exception_at_thread_exit(__p); } @@ -2063,9 +2062,9 @@ void packaged_task<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __args) { if (__p_.__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); if (__p_.__state_->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); #ifndef _LIBCPP_NO_EXCEPTIONS try { @@ -2085,9 +2084,9 @@ void packaged_task<_Rp(_ArgTypes...)>::make_ready_at_thread_exit(_ArgTypes... __args) { if (__p_.__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); if (__p_.__state_->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); #ifndef _LIBCPP_NO_EXCEPTIONS try { @@ -2107,7 +2106,7 @@ void packaged_task<_Rp(_ArgTypes...)>::reset() { if (!valid()) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __p_ = promise<result_type>(); } @@ -2192,9 +2191,9 @@ void packaged_task<void(_ArgTypes...)>::operator()(_ArgTypes... __args) { if (__p_.__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); if (__p_.__state_->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); #ifndef _LIBCPP_NO_EXCEPTIONS try { @@ -2215,9 +2214,9 @@ void packaged_task<void(_ArgTypes...)>::make_ready_at_thread_exit(_ArgTypes... __args) { if (__p_.__state_ == nullptr) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); if (__p_.__state_->__has_value()) - __throw_future_error<future_errc::promise_already_satisfied>(); + __throw_future_error(future_errc::promise_already_satisfied); #ifndef _LIBCPP_NO_EXCEPTIONS try { @@ -2238,7 +2237,7 @@ void packaged_task<void(_ArgTypes...)>::reset() { if (!valid()) - __throw_future_error<future_errc::no_state>(); + __throw_future_error(future_errc::no_state); __p_ = promise<result_type>(); } |