summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-12-10 18:00:42 -0500
committerLouis Dionne <ldionne@apple.com>2019-12-10 19:19:45 -0500
commitdd37e24ae62329d8376b7989dc2e3a53be30622a (patch)
treee03a7e7f0078658b5ba69c2879292f12c7089107 /libcxx/include
parent2fb07b90dc1c2c08fe6fc69c9d569a1fc2c8a8e1 (diff)
downloadbcm5719-llvm-dd37e24ae62329d8376b7989dc2e3a53be30622a.tar.gz
bcm5719-llvm-dd37e24ae62329d8376b7989dc2e3a53be30622a.zip
[libc++] Hide some functions and types in <future> and <thread> as hidden
Otherwise, weak symbols leak into user programs when using `async` with non-internal types.
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/future12
-rw-r--r--libcxx/include/thread1
2 files changed, 7 insertions, 6 deletions
diff --git a/libcxx/include/future b/libcxx/include/future
index 6da88c6e62b..deb7725f73d 100644
--- a/libcxx/include/future
+++ b/libcxx/include/future
@@ -611,7 +611,7 @@ __assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) c
}
template <class _Rp>
-class _LIBCPP_AVAILABILITY_FUTURE __assoc_state
+class _LIBCPP_AVAILABILITY_FUTURE _LIBCPP_HIDDEN __assoc_state
: public __assoc_sub_state
{
typedef __assoc_sub_state base;
@@ -1060,7 +1060,7 @@ template <class _Rp> class _LIBCPP_TEMPLATE_VIS shared_future;
template <class _Rp> class _LIBCPP_TEMPLATE_VIS future;
template <class _Rp, class _Fp>
-future<_Rp>
+_LIBCPP_INLINE_VISIBILITY future<_Rp>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
__make_deferred_assoc_state(_Fp&& __f);
#else
@@ -1068,7 +1068,7 @@ __make_deferred_assoc_state(_Fp __f);
#endif
template <class _Rp, class _Fp>
-future<_Rp>
+_LIBCPP_INLINE_VISIBILITY future<_Rp>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
__make_async_assoc_state(_Fp&& __f);
#else
@@ -2266,7 +2266,7 @@ struct _LIBCPP_TEMPLATE_VIS uses_allocator<packaged_task<_Callable>, _Alloc>
: public true_type {};
template <class _Rp, class _Fp>
-future<_Rp>
+_LIBCPP_INLINE_VISIBILITY future<_Rp>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
__make_deferred_assoc_state(_Fp&& __f)
#else
@@ -2279,7 +2279,7 @@ __make_deferred_assoc_state(_Fp __f)
}
template <class _Rp, class _Fp>
-future<_Rp>
+_LIBCPP_INLINE_VISIBILITY future<_Rp>
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
__make_async_assoc_state(_Fp&& __f)
#else
@@ -2293,7 +2293,7 @@ __make_async_assoc_state(_Fp __f)
}
template <class _Fp, class... _Args>
-class __async_func
+class _LIBCPP_HIDDEN __async_func
{
tuple<_Fp, _Args...> __f_;
diff --git a/libcxx/include/thread b/libcxx/include/thread
index 02da703c3cc..3b55342288d 100644
--- a/libcxx/include/thread
+++ b/libcxx/include/thread
@@ -274,6 +274,7 @@ __thread_execute(tuple<_TSp, _Fp, _Args...>& __t, __tuple_indices<_Indices...>)
}
template <class _Fp>
+_LIBCPP_INLINE_VISIBILITY
void* __thread_proxy(void* __vp)
{
// _Fp = std::tuple< unique_ptr<__thread_struct>, Functor, Args...>
OpenPOWER on IntegriCloud