[libc++] Remove availability annotations that aren't required anymore (#161640)
Apple dropped support for some older platforms, so we can also remove the annotations for them. See https://developer.apple.com/support/xcode/ for the supported versions.
This commit is contained in:
parent
45f224d3f0
commit
1760206383
@ -114,22 +114,16 @@ struct __atomic_base // false
|
||||
}
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void wait(_Tp __v, memory_order __m = memory_order_seq_cst) const
|
||||
volatile _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(_Tp __v, memory_order __m = memory_order_seq_cst) const volatile _NOEXCEPT {
|
||||
std::__atomic_wait(*this, __v, __m);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
wait(_Tp __v, memory_order __m = memory_order_seq_cst) const _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(_Tp __v, memory_order __m = memory_order_seq_cst) const _NOEXCEPT {
|
||||
std::__atomic_wait(*this, __v, __m);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_one() volatile _NOEXCEPT {
|
||||
std::__atomic_notify_one(*this);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_one() _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_all() volatile _NOEXCEPT {
|
||||
std::__atomic_notify_all(*this);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_all() _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_one() volatile _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_one() _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_all() volatile _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_all() _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
@ -619,28 +613,27 @@ _LIBCPP_HIDE_FROM_ABI bool atomic_compare_exchange_strong_explicit(
|
||||
// atomic_wait
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
_LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_wait(const volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __v) _NOEXCEPT {
|
||||
return __o->wait(__v);
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_wait(const atomic<_Tp>* __o, typename atomic<_Tp>::value_type __v) _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void atomic_wait(const atomic<_Tp>* __o, typename atomic<_Tp>::value_type __v) _NOEXCEPT {
|
||||
return __o->wait(__v);
|
||||
}
|
||||
|
||||
// atomic_wait_explicit
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
_LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_wait_explicit(const volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __v, memory_order __m) _NOEXCEPT
|
||||
_LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m) {
|
||||
return __o->wait(__v, __m);
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
_LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_wait_explicit(const atomic<_Tp>* __o, typename atomic<_Tp>::value_type __v, memory_order __m) _NOEXCEPT
|
||||
_LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m) {
|
||||
return __o->wait(__v, __m);
|
||||
@ -649,22 +642,22 @@ atomic_wait_explicit(const atomic<_Tp>* __o, typename atomic<_Tp>::value_type __
|
||||
// atomic_notify_one
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void atomic_notify_one(volatile atomic<_Tp>* __o) _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void atomic_notify_one(volatile atomic<_Tp>* __o) _NOEXCEPT {
|
||||
__o->notify_one();
|
||||
}
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void atomic_notify_one(atomic<_Tp>* __o) _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void atomic_notify_one(atomic<_Tp>* __o) _NOEXCEPT {
|
||||
__o->notify_one();
|
||||
}
|
||||
|
||||
// atomic_notify_all
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void atomic_notify_all(volatile atomic<_Tp>* __o) _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void atomic_notify_all(volatile atomic<_Tp>* __o) _NOEXCEPT {
|
||||
__o->notify_all();
|
||||
}
|
||||
template <class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void atomic_notify_all(atomic<_Tp>* __o) _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void atomic_notify_all(atomic<_Tp>* __o) _NOEXCEPT {
|
||||
__o->notify_all();
|
||||
}
|
||||
|
||||
|
||||
@ -49,22 +49,16 @@ struct atomic_flag {
|
||||
}
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void wait(bool __v, memory_order __m = memory_order_seq_cst) const
|
||||
volatile _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(bool __v, memory_order __m = memory_order_seq_cst) const volatile _NOEXCEPT {
|
||||
std::__atomic_wait(*this, _LIBCPP_ATOMIC_FLAG_TYPE(__v), __m);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
wait(bool __v, memory_order __m = memory_order_seq_cst) const _NOEXCEPT {
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(bool __v, memory_order __m = memory_order_seq_cst) const _NOEXCEPT {
|
||||
std::__atomic_wait(*this, _LIBCPP_ATOMIC_FLAG_TYPE(__v), __m);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_one() volatile _NOEXCEPT {
|
||||
std::__atomic_notify_one(*this);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_one() _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_all() volatile _NOEXCEPT {
|
||||
std::__atomic_notify_all(*this);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void notify_all() _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_one() volatile _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_one() _NOEXCEPT { std::__atomic_notify_one(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_all() volatile _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
_LIBCPP_HIDE_FROM_ABI void notify_all() _NOEXCEPT { std::__atomic_notify_all(*this); }
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
@ -143,43 +137,26 @@ inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_clear_explicit(atomic_flag* __o, m
|
||||
}
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
atomic_flag_wait(const volatile atomic_flag* __o, bool __v) _NOEXCEPT {
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_wait(const volatile atomic_flag* __o, bool __v) _NOEXCEPT {
|
||||
__o->wait(__v);
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
atomic_flag_wait(const atomic_flag* __o, bool __v) _NOEXCEPT {
|
||||
__o->wait(__v);
|
||||
}
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_wait(const atomic_flag* __o, bool __v) _NOEXCEPT { __o->wait(__v); }
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
inline _LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_flag_wait_explicit(const volatile atomic_flag* __o, bool __v, memory_order __m) _NOEXCEPT {
|
||||
__o->wait(__v, __m);
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
inline _LIBCPP_HIDE_FROM_ABI void
|
||||
atomic_flag_wait_explicit(const atomic_flag* __o, bool __v, memory_order __m) _NOEXCEPT {
|
||||
__o->wait(__v, __m);
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
atomic_flag_notify_one(volatile atomic_flag* __o) _NOEXCEPT {
|
||||
__o->notify_one();
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void atomic_flag_notify_one(atomic_flag* __o) _NOEXCEPT {
|
||||
__o->notify_one();
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void
|
||||
atomic_flag_notify_all(volatile atomic_flag* __o) _NOEXCEPT {
|
||||
__o->notify_all();
|
||||
}
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_SYNC void atomic_flag_notify_all(atomic_flag* __o) _NOEXCEPT {
|
||||
__o->notify_all();
|
||||
}
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_notify_one(volatile atomic_flag* __o) _NOEXCEPT { __o->notify_one(); }
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_notify_one(atomic_flag* __o) _NOEXCEPT { __o->notify_one(); }
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_notify_all(volatile atomic_flag* __o) _NOEXCEPT { __o->notify_all(); }
|
||||
inline _LIBCPP_HIDE_FROM_ABI void atomic_flag_notify_all(atomic_flag* __o) _NOEXCEPT { __o->notify_all(); }
|
||||
#endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
@ -58,20 +58,16 @@ struct __atomic_waitable< _Tp,
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
# if _LIBCPP_HAS_THREADS
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t
|
||||
__libcpp_atomic_monitor(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
|
||||
__libcpp_atomic_wait(void const volatile*, __cxx_contention_t) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor(void const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait(void const volatile*, __cxx_contention_t) _NOEXCEPT;
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
|
||||
__cxx_atomic_notify_one(__cxx_atomic_contention_t const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
|
||||
__cxx_atomic_notify_all(__cxx_atomic_contention_t const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(__cxx_atomic_contention_t const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(__cxx_atomic_contention_t const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t
|
||||
__libcpp_atomic_monitor(__cxx_atomic_contention_t const volatile*) _NOEXCEPT;
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
|
||||
_LIBCPP_EXPORTED_FROM_ABI void
|
||||
__libcpp_atomic_wait(__cxx_atomic_contention_t const volatile*, __cxx_contention_t) _NOEXCEPT;
|
||||
|
||||
template <class _AtomicWaitable, class _Poll>
|
||||
@ -82,7 +78,6 @@ struct __atomic_wait_backoff_impl {
|
||||
|
||||
using __waitable_traits _LIBCPP_NODEBUG = __atomic_waitable_traits<__decay_t<_AtomicWaitable> >;
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC
|
||||
_LIBCPP_HIDE_FROM_ABI bool
|
||||
__update_monitor_val_and_poll(__cxx_atomic_contention_t const volatile*, __cxx_contention_t& __monitor_val) const {
|
||||
// In case the contention type happens to be __cxx_atomic_contention_t, i.e. __cxx_atomic_impl<int64_t>,
|
||||
@ -95,7 +90,6 @@ struct __atomic_wait_backoff_impl {
|
||||
return __poll_(__monitor_val);
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC
|
||||
_LIBCPP_HIDE_FROM_ABI bool
|
||||
__update_monitor_val_and_poll(void const volatile* __contention_address, __cxx_contention_t& __monitor_val) const {
|
||||
// In case the contention type is anything else, platform wait is monitoring a __cxx_atomic_contention_t
|
||||
@ -105,7 +99,6 @@ struct __atomic_wait_backoff_impl {
|
||||
return __poll_(__current_val);
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC
|
||||
_LIBCPP_HIDE_FROM_ABI bool operator()(chrono::nanoseconds __elapsed) const {
|
||||
if (__elapsed > chrono::microseconds(4)) {
|
||||
auto __contention_address = __waitable_traits::__atomic_contention_address(__a_);
|
||||
@ -128,8 +121,7 @@ struct __atomic_wait_backoff_impl {
|
||||
// `false`, it must set the argument to its current understanding of the atomic
|
||||
// value. The predicate function must not return `false` spuriously.
|
||||
template <class _AtomicWaitable, class _Poll>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
__atomic_wait_unless(const _AtomicWaitable& __a, memory_order __order, _Poll&& __poll) {
|
||||
_LIBCPP_HIDE_FROM_ABI void __atomic_wait_unless(const _AtomicWaitable& __a, memory_order __order, _Poll&& __poll) {
|
||||
static_assert(__atomic_waitable<_AtomicWaitable>::value, "");
|
||||
__atomic_wait_backoff_impl<_AtomicWaitable, __decay_t<_Poll> > __backoff_fn = {__a, __poll, __order};
|
||||
std::__libcpp_thread_poll_with_backoff(
|
||||
@ -142,13 +134,13 @@ __atomic_wait_unless(const _AtomicWaitable& __a, memory_order __order, _Poll&& _
|
||||
}
|
||||
|
||||
template <class _AtomicWaitable>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void __atomic_notify_one(const _AtomicWaitable& __a) {
|
||||
_LIBCPP_HIDE_FROM_ABI void __atomic_notify_one(const _AtomicWaitable& __a) {
|
||||
static_assert(__atomic_waitable<_AtomicWaitable>::value, "");
|
||||
std::__cxx_atomic_notify_one(__atomic_waitable_traits<__decay_t<_AtomicWaitable> >::__atomic_contention_address(__a));
|
||||
}
|
||||
|
||||
template <class _AtomicWaitable>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void __atomic_notify_all(const _AtomicWaitable& __a) {
|
||||
_LIBCPP_HIDE_FROM_ABI void __atomic_notify_all(const _AtomicWaitable& __a) {
|
||||
static_assert(__atomic_waitable<_AtomicWaitable>::value, "");
|
||||
std::__cxx_atomic_notify_all(__atomic_waitable_traits<__decay_t<_AtomicWaitable> >::__atomic_contention_address(__a));
|
||||
}
|
||||
@ -180,8 +172,7 @@ _LIBCPP_HIDE_FROM_ABI bool __cxx_nonatomic_compare_equal(_Tp const& __lhs, _Tp c
|
||||
}
|
||||
|
||||
template <class _AtomicWaitable, class _Tp>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void
|
||||
__atomic_wait(_AtomicWaitable& __a, _Tp __val, memory_order __order) {
|
||||
_LIBCPP_HIDE_FROM_ABI void __atomic_wait(_AtomicWaitable& __a, _Tp __val, memory_order __order) {
|
||||
static_assert(__atomic_waitable<_AtomicWaitable>::value, "");
|
||||
std::__atomic_wait_unless(__a, __order, [&](_Tp const& __current) {
|
||||
return !std::__cxx_nonatomic_compare_equal(__current, __val);
|
||||
|
||||
@ -60,7 +60,7 @@ struct _FilesystemClock {
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI static _LIBCPP_CONSTEXPR_SINCE_CXX14 const bool is_steady = false;
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_EXPORTED_FROM_ABI static time_point now() noexcept;
|
||||
_LIBCPP_EXPORTED_FROM_ABI static time_point now() noexcept;
|
||||
|
||||
# if _LIBCPP_STD_VER >= 20
|
||||
template <class _Duration>
|
||||
|
||||
@ -108,14 +108,6 @@
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_12 1
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_12_ATTRIBUTE /* nothing */
|
||||
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_11 1
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE /* nothing */
|
||||
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9 1
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE /* nothing */
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH /* nothing */
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP /* nothing */
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
|
||||
// clang-format off
|
||||
@ -215,48 +207,6 @@
|
||||
__attribute__((availability(bridgeos, strict, introduced = 6.0))) \
|
||||
__attribute__((availability(driverkit, strict, introduced = 21.3)))
|
||||
|
||||
// LLVM 11
|
||||
# if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 110000) || \
|
||||
(defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 140000) || \
|
||||
(defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 140000) || \
|
||||
(defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 70000)
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_11 0
|
||||
# else
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_11 1
|
||||
# endif
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE \
|
||||
__attribute__((availability(macos, strict, introduced = 11.0))) \
|
||||
__attribute__((availability(ios, strict, introduced = 14.0))) \
|
||||
__attribute__((availability(tvos, strict, introduced = 14.0))) \
|
||||
__attribute__((availability(watchos, strict, introduced = 7.0)))
|
||||
|
||||
// LLVM 9
|
||||
# if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101500) || \
|
||||
(defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 130000) || \
|
||||
(defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 130000) || \
|
||||
(defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 60000)
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9 0
|
||||
# else
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9 1
|
||||
# endif
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE \
|
||||
__attribute__((availability(macos, strict, introduced = 10.15))) \
|
||||
__attribute__((availability(ios, strict, introduced = 13.0))) \
|
||||
__attribute__((availability(tvos, strict, introduced = 13.0))) \
|
||||
__attribute__((availability(watchos, strict, introduced = 6.0)))
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH \
|
||||
_Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \
|
||||
_Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \
|
||||
_Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \
|
||||
_Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))")
|
||||
# define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP \
|
||||
_Pragma("clang attribute pop") \
|
||||
_Pragma("clang attribute pop") \
|
||||
_Pragma("clang attribute pop") \
|
||||
_Pragma("clang attribute pop")
|
||||
|
||||
// clang-format on
|
||||
|
||||
#else
|
||||
|
||||
// ...New vendors can add availability markup here...
|
||||
@ -266,20 +216,6 @@
|
||||
|
||||
#endif
|
||||
|
||||
// These macros control the availability of all parts of <filesystem> that
|
||||
// depend on something in the dylib.
|
||||
#define _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY _LIBCPP_INTRODUCED_IN_LLVM_9
|
||||
#define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE
|
||||
#define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH
|
||||
#define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP
|
||||
|
||||
// This controls the availability of the C++20 synchronization library,
|
||||
// which requires shared library support for various operations
|
||||
// (see libcxx/src/atomic.cpp). This includes <barier>, <latch>,
|
||||
// <semaphore>, and notification functions on std::atomic.
|
||||
#define _LIBCPP_AVAILABILITY_HAS_SYNC _LIBCPP_INTRODUCED_IN_LLVM_11
|
||||
#define _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE
|
||||
|
||||
// Enable additional explicit instantiations of iostreams components. This
|
||||
// reduces the number of weak definitions generated in programs that use
|
||||
// iostreams by providing a single strong definition in the shared library.
|
||||
|
||||
@ -40,8 +40,6 @@ _LIBCPP_PUSH_MACROS
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
class directory_entry {
|
||||
typedef filesystem::path _Path;
|
||||
|
||||
@ -459,8 +457,6 @@ private:
|
||||
directory_entry __elem_;
|
||||
};
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 17 && _LIBCPP_HAS_FILESYSTEM
|
||||
|
||||
@ -34,8 +34,6 @@ _LIBCPP_PUSH_MACROS
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
class _LIBCPP_HIDDEN __dir_stream;
|
||||
class directory_iterator {
|
||||
public:
|
||||
@ -127,19 +125,15 @@ inline _LIBCPP_HIDE_FROM_ABI directory_iterator begin(directory_iterator __iter)
|
||||
|
||||
inline _LIBCPP_HIDE_FROM_ABI directory_iterator end(directory_iterator) noexcept { return directory_iterator(); }
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
# if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY inline constexpr bool
|
||||
std::ranges::enable_borrowed_range<std::filesystem::directory_iterator> = true;
|
||||
inline constexpr bool std::ranges::enable_borrowed_range<std::filesystem::directory_iterator> = true;
|
||||
|
||||
template <>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY inline constexpr bool
|
||||
std::ranges::enable_view<std::filesystem::directory_iterator> = true;
|
||||
inline constexpr bool std::ranges::enable_view<std::filesystem::directory_iterator> = true;
|
||||
|
||||
# endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
class _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_EXPORTED_FROM_ABI filesystem_error : public system_error {
|
||||
class _LIBCPP_EXPORTED_FROM_ABI filesystem_error : public system_error {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI filesystem_error(const string& __what, error_code __ec)
|
||||
: system_error(__ec, __what), __storage_(make_shared<_Storage>(path(), path())) {
|
||||
@ -69,14 +69,12 @@ private:
|
||||
|
||||
# if _LIBCPP_HAS_EXCEPTIONS
|
||||
template <class... _Args>
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
__throw_filesystem_error(_Args&&... __args) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_filesystem_error(_Args&&... __args) {
|
||||
throw filesystem_error(std::forward<_Args>(__args)...);
|
||||
}
|
||||
# else
|
||||
template <class... _Args>
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
__throw_filesystem_error(_Args&&...) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_filesystem_error(_Args&&...) {
|
||||
_LIBCPP_VERBOSE_ABORT("filesystem_error was thrown in -fno-exceptions mode");
|
||||
}
|
||||
# endif
|
||||
|
||||
@ -31,8 +31,6 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI path __absolute(const path&, error_code* __ec = nullptr);
|
||||
_LIBCPP_EXPORTED_FROM_ABI path __canonical(const path&, error_code* __ec = nullptr);
|
||||
_LIBCPP_EXPORTED_FROM_ABI bool
|
||||
@ -301,8 +299,6 @@ inline _LIBCPP_HIDE_FROM_ABI path weakly_canonical(path const& __p, error_code&
|
||||
return __weakly_canonical(__p, &__ec);
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 17 && _LIBCPP_HAS_FILESYSTEM
|
||||
|
||||
@ -42,8 +42,6 @@ _LIBCPP_PUSH_MACROS
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
template <class _Tp>
|
||||
struct __can_convert_char {
|
||||
static const bool value = false;
|
||||
@ -910,14 +908,12 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(path& __lhs, path& __rhs) noexcept { __lh
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI size_t hash_value(const path& __p) noexcept;
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <>
|
||||
struct _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY hash<filesystem::path> : __unary_function<filesystem::path, size_t> {
|
||||
struct hash<filesystem::path> : __unary_function<filesystem::path, size_t> {
|
||||
_LIBCPP_HIDE_FROM_ABI size_t operator()(filesystem::path const& __p) const noexcept {
|
||||
return filesystem::hash_value(__p);
|
||||
}
|
||||
|
||||
@ -95,12 +95,10 @@ private:
|
||||
_ParserState __state_;
|
||||
};
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
inline _LIBCPP_HIDE_FROM_ABI bool operator==(const path::iterator& __lhs, const path::iterator& __rhs) {
|
||||
return __lhs.__path_ptr_ == __rhs.__path_ptr_ && __lhs.__entry_.data() == __rhs.__entry_.data();
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const path::iterator& __lhs, const path::iterator& __rhs) {
|
||||
return !(__lhs == __rhs);
|
||||
}
|
||||
|
||||
@ -33,8 +33,6 @@ _LIBCPP_PUSH_MACROS
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
class recursive_directory_iterator {
|
||||
public:
|
||||
using value_type = directory_entry;
|
||||
@ -140,19 +138,15 @@ inline _LIBCPP_HIDE_FROM_ABI recursive_directory_iterator end(recursive_director
|
||||
return recursive_directory_iterator();
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
# if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY inline constexpr bool
|
||||
std::ranges::enable_borrowed_range<std::filesystem::recursive_directory_iterator> = true;
|
||||
inline constexpr bool std::ranges::enable_borrowed_range<std::filesystem::recursive_directory_iterator> = true;
|
||||
|
||||
template <>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY inline constexpr bool
|
||||
std::ranges::enable_view<std::filesystem::recursive_directory_iterator> = true;
|
||||
inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_directory_iterator> = true;
|
||||
|
||||
# endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
|
||||
@ -24,8 +24,6 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH
|
||||
|
||||
template <class _InputIt, __enable_if_t<__is_pathable<_InputIt>::value, int> = 0>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path(_InputIt __f, _InputIt __l) {
|
||||
static_assert(
|
||||
@ -86,8 +84,6 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_WITH_CHAR8_T path u8path(const _Source&
|
||||
# endif
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
|
||||
@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
// where State contains a lock bit and might contain other data,
|
||||
// and LockedBit is the value of State when the lock bit is set, e.g 1 << 2
|
||||
template <class _State, _State _LockedBit>
|
||||
class _LIBCPP_AVAILABILITY_SYNC __atomic_unique_lock {
|
||||
class __atomic_unique_lock {
|
||||
static_assert(std::__popcount(static_cast<unsigned long long>(_LockedBit)) == 1,
|
||||
"LockedBit must be an integer where only one bit is set");
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
#if _LIBCPP_STD_VER >= 20 && _LIBCPP_HAS_THREADS
|
||||
|
||||
template <class _Callback>
|
||||
class _LIBCPP_AVAILABILITY_SYNC stop_callback : private __stop_callback_base {
|
||||
class stop_callback : private __stop_callback_base {
|
||||
static_assert(invocable<_Callback>,
|
||||
"Mandates: stop_callback is instantiated with an argument for the template parameter Callback that "
|
||||
"satisfies invocable.");
|
||||
@ -91,7 +91,7 @@ private:
|
||||
};
|
||||
|
||||
template <class _Callback>
|
||||
_LIBCPP_AVAILABILITY_SYNC stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
|
||||
stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 20 && _LIBCPP_HAS_THREADS
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ struct nostopstate_t {
|
||||
|
||||
inline constexpr nostopstate_t nostopstate{};
|
||||
|
||||
class _LIBCPP_AVAILABILITY_SYNC stop_source {
|
||||
class stop_source {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI stop_source() : __state_(new __stop_state()) { __state_->__increment_stop_source_counter(); }
|
||||
|
||||
|
||||
@ -100,7 +100,7 @@ public:
|
||||
return ((__curent_state & __stop_requested_bit) != 0) || ((__curent_state >> __stop_source_counter_shift) != 0);
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool __request_stop() noexcept {
|
||||
_LIBCPP_HIDE_FROM_ABI bool __request_stop() noexcept {
|
||||
auto __cb_list_lock = __try_lock_for_request_stop();
|
||||
if (!__cb_list_lock.__owns_lock()) {
|
||||
return false;
|
||||
@ -137,7 +137,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool __add_callback(__stop_callback_base* __cb) noexcept {
|
||||
_LIBCPP_HIDE_FROM_ABI bool __add_callback(__stop_callback_base* __cb) noexcept {
|
||||
// If it is already stop_requested. Do not try to request it again.
|
||||
const auto __give_up_trying_to_lock_condition = [__cb](__state_t __state) {
|
||||
if ((__state & __stop_requested_bit) != 0) {
|
||||
@ -164,7 +164,7 @@ public:
|
||||
}
|
||||
|
||||
// called by the destructor of stop_callback
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void __remove_callback(__stop_callback_base* __cb) noexcept {
|
||||
_LIBCPP_HIDE_FROM_ABI void __remove_callback(__stop_callback_base* __cb) noexcept {
|
||||
__callback_list_lock __cb_list_lock(__state_);
|
||||
|
||||
// under below condition, the request_stop call just popped __cb from the list and could execute it now
|
||||
@ -192,7 +192,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI __callback_list_lock __try_lock_for_request_stop() noexcept {
|
||||
_LIBCPP_HIDE_FROM_ABI __callback_list_lock __try_lock_for_request_stop() noexcept {
|
||||
// If it is already stop_requested, do not try to request stop or lock the list again.
|
||||
const auto __lock_fail_condition = [](__state_t __state) { return (__state & __stop_requested_bit) != 0; };
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20 && _LIBCPP_HAS_THREADS
|
||||
|
||||
class _LIBCPP_AVAILABILITY_SYNC stop_token {
|
||||
class stop_token {
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI stop_token() noexcept = default;
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ _LIBCPP_PUSH_MACROS
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
class _LIBCPP_AVAILABILITY_SYNC jthread {
|
||||
class jthread {
|
||||
public:
|
||||
// types
|
||||
using id = thread::id;
|
||||
|
||||
@ -34,7 +34,7 @@ static _LIBCPP_CONSTEXPR const int __libcpp_polling_count = 64;
|
||||
// - __max_elapsed is the maximum duration to try polling for. If the maximum duration is exceeded,
|
||||
// the polling loop will return false to report a timeout.
|
||||
template <class _Poll, class _Backoff>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool __libcpp_thread_poll_with_backoff(
|
||||
_LIBCPP_HIDE_FROM_ABI bool __libcpp_thread_poll_with_backoff(
|
||||
_Poll&& __poll, _Backoff&& __backoff, chrono::nanoseconds __max_elapsed = chrono::nanoseconds::zero()) {
|
||||
auto const __start = chrono::high_resolution_clock::now();
|
||||
for (int __count = 0;;) {
|
||||
|
||||
@ -97,15 +97,14 @@ using __barrier_phase_t _LIBCPP_NODEBUG = uint8_t;
|
||||
|
||||
class __barrier_algorithm_base;
|
||||
|
||||
[[__gnu__::__returns_nonnull__, __gnu__::__malloc__]] _LIBCPP_AVAILABILITY_SYNC
|
||||
_LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base*
|
||||
__construct_barrier_algorithm_base(ptrdiff_t& __expected);
|
||||
[[__gnu__::__returns_nonnull__, __gnu__::__malloc__]]
|
||||
_LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base* __construct_barrier_algorithm_base(ptrdiff_t& __expected);
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI bool
|
||||
_LIBCPP_EXPORTED_FROM_ABI bool
|
||||
__arrive_barrier_algorithm_base([[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier,
|
||||
__barrier_phase_t __old_phase) noexcept;
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __destroy_barrier_algorithm_base(
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __destroy_barrier_algorithm_base(
|
||||
[[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier) noexcept;
|
||||
|
||||
template <class _CompletionF>
|
||||
@ -121,14 +120,13 @@ public:
|
||||
|
||||
static _LIBCPP_HIDE_FROM_ABI constexpr ptrdiff_t max() noexcept { return numeric_limits<ptrdiff_t>::max(); }
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI
|
||||
__barrier_base(ptrdiff_t __expected, _CompletionF __completion = _CompletionF())
|
||||
_LIBCPP_HIDE_FROM_ABI __barrier_base(ptrdiff_t __expected, _CompletionF __completion = _CompletionF())
|
||||
: __expected_(__expected),
|
||||
__base_(std::__construct_barrier_algorithm_base(this->__expected_), &__destroy_barrier_algorithm_base),
|
||||
__expected_adjustment_(0),
|
||||
__completion_(std::move(__completion)),
|
||||
__phase_(0) {}
|
||||
[[nodiscard]] _LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI arrival_token arrive(ptrdiff_t __update) {
|
||||
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI arrival_token arrive(ptrdiff_t __update) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(
|
||||
__update <= __expected_, "update is greater than the expected count for the current barrier phase");
|
||||
|
||||
@ -143,11 +141,11 @@ public:
|
||||
}
|
||||
return __old_phase;
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void wait(arrival_token&& __old_phase) const {
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(arrival_token&& __old_phase) const {
|
||||
auto const __test_fn = [this, __old_phase]() -> bool { return __phase_.load(memory_order_acquire) != __old_phase; };
|
||||
std::__libcpp_thread_poll_with_backoff(__test_fn, __libcpp_timed_backoff_policy());
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void arrive_and_drop() {
|
||||
_LIBCPP_HIDE_FROM_ABI void arrive_and_drop() {
|
||||
__expected_adjustment_.fetch_sub(1, memory_order_relaxed);
|
||||
(void)arrive(1);
|
||||
}
|
||||
@ -162,7 +160,6 @@ public:
|
||||
|
||||
static _LIBCPP_HIDE_FROM_ABI constexpr ptrdiff_t max() noexcept { return __barrier_base<_CompletionF>::max(); }
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC
|
||||
_LIBCPP_HIDE_FROM_ABI explicit barrier(ptrdiff_t __count, _CompletionF __completion = _CompletionF())
|
||||
: __b_(__count, std::move(__completion)) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(
|
||||
@ -177,15 +174,13 @@ public:
|
||||
barrier(barrier const&) = delete;
|
||||
barrier& operator=(barrier const&) = delete;
|
||||
|
||||
[[nodiscard]] _LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI arrival_token arrive(ptrdiff_t __update = 1) {
|
||||
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI arrival_token arrive(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(__update > 0, "barrier:arrive must be called with a value greater than 0");
|
||||
return __b_.arrive(__update);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void wait(arrival_token&& __phase) const {
|
||||
__b_.wait(std::move(__phase));
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void arrive_and_wait() { wait(arrive()); }
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void arrive_and_drop() { __b_.arrive_and_drop(); }
|
||||
_LIBCPP_HIDE_FROM_ABI void wait(arrival_token&& __phase) const { __b_.wait(std::move(__phase)); }
|
||||
_LIBCPP_HIDE_FROM_ABI void arrive_and_wait() { wait(arrive()); }
|
||||
_LIBCPP_HIDE_FROM_ABI void arrive_and_drop() { __b_.arrive_and_drop(); }
|
||||
};
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
@ -206,14 +206,14 @@ public:
|
||||
# if _LIBCPP_STD_VER >= 20
|
||||
|
||||
template <class _Lock, class _Predicate>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool wait(_Lock& __lock, stop_token __stoken, _Predicate __pred);
|
||||
_LIBCPP_HIDE_FROM_ABI bool wait(_Lock& __lock, stop_token __stoken, _Predicate __pred);
|
||||
|
||||
template <class _Lock, class _Clock, class _Duration, class _Predicate>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool wait_until(
|
||||
_LIBCPP_HIDE_FROM_ABI bool wait_until(
|
||||
_Lock& __lock, stop_token __stoken, const chrono::time_point<_Clock, _Duration>& __abs_time, _Predicate __pred);
|
||||
|
||||
template <class _Lock, class _Rep, class _Period, class _Predicate>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool
|
||||
_LIBCPP_HIDE_FROM_ABI bool
|
||||
wait_for(_Lock& __lock, stop_token __stoken, const chrono::duration<_Rep, _Period>& __rel_time, _Predicate __pred);
|
||||
|
||||
# endif // _LIBCPP_STD_VER >= 20
|
||||
|
||||
@ -262,8 +262,7 @@ public:
|
||||
_LIBCPP_HIDE_FROM_ABI basic_filebuf* open(const string& __s, ios_base::openmode __mode);
|
||||
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_HIDE_FROM_ABI basic_filebuf*
|
||||
open(const filesystem::path& __p, ios_base::openmode __mode) {
|
||||
_LIBCPP_HIDE_FROM_ABI basic_filebuf* open(const filesystem::path& __p, ios_base::openmode __mode) {
|
||||
return open(__p.c_str(), __mode);
|
||||
}
|
||||
# endif
|
||||
@ -1157,8 +1156,7 @@ public:
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
template <class _Tp, class = enable_if_t<is_same_v<_Tp, filesystem::path>>>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_ifstream(const _Tp& __p, ios_base::openmode __mode = ios_base::in)
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_ifstream(const _Tp& __p, ios_base::openmode __mode = ios_base::in)
|
||||
: basic_ifstream(__p.c_str(), __mode) {}
|
||||
# endif // _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_HIDE_FROM_ABI basic_ifstream(basic_ifstream&& __rhs);
|
||||
@ -1176,8 +1174,7 @@ public:
|
||||
# endif
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::in);
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_HIDE_FROM_ABI void
|
||||
open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in) {
|
||||
_LIBCPP_HIDE_FROM_ABI void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in) {
|
||||
return open(__p.c_str(), __mode);
|
||||
}
|
||||
# endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1314,8 +1311,7 @@ public:
|
||||
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
template <class _Tp, class = enable_if_t<is_same_v<_Tp, filesystem::path>>>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_ofstream(const _Tp& __p, ios_base::openmode __mode = ios_base::out)
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_ofstream(const _Tp& __p, ios_base::openmode __mode = ios_base::out)
|
||||
: basic_ofstream(__p.c_str(), __mode) {}
|
||||
# endif // _LIBCPP_STD_VER >= 17
|
||||
|
||||
@ -1335,8 +1331,7 @@ public:
|
||||
void open(const string& __s, ios_base::openmode __mode = ios_base::out);
|
||||
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_HIDE_FROM_ABI void
|
||||
open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out) {
|
||||
_LIBCPP_HIDE_FROM_ABI void open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::out) {
|
||||
return open(__p.c_str(), __mode);
|
||||
}
|
||||
# endif // _LIBCPP_STD_VER >= 17
|
||||
@ -1476,8 +1471,7 @@ public:
|
||||
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
template <class _Tp, class = enable_if_t<is_same_v<_Tp, filesystem::path>>>
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_HIDE_FROM_ABI explicit basic_fstream(
|
||||
const _Tp& __p, ios_base::openmode __mode = ios_base::in | ios_base::out)
|
||||
_LIBCPP_HIDE_FROM_ABI explicit basic_fstream(const _Tp& __p, ios_base::openmode __mode = ios_base::in | ios_base::out)
|
||||
: basic_fstream(__p.c_str(), __mode) {}
|
||||
# endif // _LIBCPP_STD_VER >= 17
|
||||
|
||||
@ -1499,7 +1493,7 @@ public:
|
||||
_LIBCPP_HIDE_FROM_ABI void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);
|
||||
|
||||
# if _LIBCPP_STD_VER >= 17
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_HIDE_FROM_ABI void
|
||||
_LIBCPP_HIDE_FROM_ABI void
|
||||
open(const filesystem::path& __p, ios_base::openmode __mode = ios_base::in | ios_base::out) {
|
||||
return open(__p.c_str(), __mode);
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ public:
|
||||
latch(const latch&) = delete;
|
||||
latch& operator=(const latch&) = delete;
|
||||
|
||||
inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void count_down(ptrdiff_t __update = 1) {
|
||||
inline _LIBCPP_HIDE_FROM_ABI void count_down(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(__update >= 0, "latch::count_down called with a negative value");
|
||||
auto const __old = __a_.fetch_sub(__update, memory_order_release);
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(
|
||||
@ -101,12 +101,12 @@ public:
|
||||
auto __value = __a_.load(memory_order_acquire);
|
||||
return try_wait_impl(__value);
|
||||
}
|
||||
inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void wait() const {
|
||||
inline _LIBCPP_HIDE_FROM_ABI void wait() const {
|
||||
std::__atomic_wait_unless(__a_, memory_order_acquire, [this](ptrdiff_t& __value) -> bool {
|
||||
return try_wait_impl(__value);
|
||||
});
|
||||
}
|
||||
inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void arrive_and_wait(ptrdiff_t __update = 1) {
|
||||
inline _LIBCPP_HIDE_FROM_ABI void arrive_and_wait(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(__update >= 0, "latch::arrive_and_wait called with a negative value");
|
||||
// other preconditions on __update are checked in count_down()
|
||||
|
||||
|
||||
@ -90,7 +90,7 @@ class __atomic_semaphore_base {
|
||||
|
||||
public:
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr explicit __atomic_semaphore_base(ptrdiff_t __count) : __a_(__count) {}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void release(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_HIDE_FROM_ABI void release(ptrdiff_t __update = 1) {
|
||||
auto __old = __a_.fetch_add(__update, memory_order_release);
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(
|
||||
__update <= _LIBCPP_SEMAPHORE_MAX - __old, "update is greater than the expected value");
|
||||
@ -98,26 +98,25 @@ public:
|
||||
__a_.notify_all();
|
||||
}
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void acquire() {
|
||||
_LIBCPP_HIDE_FROM_ABI void acquire() {
|
||||
std::__atomic_wait_unless(__a_, memory_order_relaxed, [this](ptrdiff_t& __old) {
|
||||
return __try_acquire_impl(__old);
|
||||
});
|
||||
}
|
||||
template <class _Rep, class _Period>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool
|
||||
try_acquire_for(chrono::duration<_Rep, _Period> const& __rel_time) {
|
||||
_LIBCPP_HIDE_FROM_ABI bool try_acquire_for(chrono::duration<_Rep, _Period> const& __rel_time) {
|
||||
if (__rel_time == chrono::duration<_Rep, _Period>::zero())
|
||||
return try_acquire();
|
||||
auto const __poll_fn = [this]() { return try_acquire(); };
|
||||
return std::__libcpp_thread_poll_with_backoff(__poll_fn, __libcpp_timed_backoff_policy(), __rel_time);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool try_acquire() {
|
||||
_LIBCPP_HIDE_FROM_ABI bool try_acquire() {
|
||||
auto __old = __a_.load(memory_order_relaxed);
|
||||
return __try_acquire_impl(__old);
|
||||
}
|
||||
|
||||
private:
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool __try_acquire_impl(ptrdiff_t& __old) {
|
||||
_LIBCPP_HIDE_FROM_ABI bool __try_acquire_impl(ptrdiff_t& __old) {
|
||||
while (true) {
|
||||
if (__old == 0)
|
||||
return false;
|
||||
@ -151,20 +150,18 @@ public:
|
||||
counting_semaphore(const counting_semaphore&) = delete;
|
||||
counting_semaphore& operator=(const counting_semaphore&) = delete;
|
||||
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void release(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_HIDE_FROM_ABI void release(ptrdiff_t __update = 1) {
|
||||
_LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(__update >= 0, "counting_semaphore:release called with a negative value");
|
||||
__semaphore_.release(__update);
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI void acquire() { __semaphore_.acquire(); }
|
||||
_LIBCPP_HIDE_FROM_ABI void acquire() { __semaphore_.acquire(); }
|
||||
template <class _Rep, class _Period>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool
|
||||
try_acquire_for(chrono::duration<_Rep, _Period> const& __rel_time) {
|
||||
_LIBCPP_HIDE_FROM_ABI bool try_acquire_for(chrono::duration<_Rep, _Period> const& __rel_time) {
|
||||
return __semaphore_.try_acquire_for(chrono::duration_cast<chrono::nanoseconds>(__rel_time));
|
||||
}
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool try_acquire() { return __semaphore_.try_acquire(); }
|
||||
_LIBCPP_HIDE_FROM_ABI bool try_acquire() { return __semaphore_.try_acquire(); }
|
||||
template <class _Clock, class _Duration>
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_HIDE_FROM_ABI bool
|
||||
try_acquire_until(chrono::time_point<_Clock, _Duration> const& __abs_time) {
|
||||
_LIBCPP_HIDE_FROM_ABI bool try_acquire_until(chrono::time_point<_Clock, _Duration> const& __abs_time) {
|
||||
auto const __current = _Clock::now();
|
||||
if (__current >= __abs_time)
|
||||
return try_acquire();
|
||||
|
||||
@ -335,7 +335,7 @@ __cpp_lib_void_t 201411L <type_traits>
|
||||
# define __cpp_lib_clamp 201603L
|
||||
# define __cpp_lib_enable_shared_from_this 201603L
|
||||
// # define __cpp_lib_execution 201603L
|
||||
# if _LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY
|
||||
# if _LIBCPP_HAS_FILESYSTEM
|
||||
# define __cpp_lib_filesystem 201703L
|
||||
# endif
|
||||
# define __cpp_lib_gcd_lcm 201606L
|
||||
@ -393,10 +393,8 @@ __cpp_lib_void_t 201411L <type_traits>
|
||||
# define __cpp_lib_atomic_ref 201806L
|
||||
// # define __cpp_lib_atomic_shared_ptr 201711L
|
||||
# define __cpp_lib_atomic_value_initialization 201911L
|
||||
# if _LIBCPP_AVAILABILITY_HAS_SYNC
|
||||
# define __cpp_lib_atomic_wait 201907L
|
||||
# endif
|
||||
# if _LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC
|
||||
# define __cpp_lib_atomic_wait 201907L
|
||||
# if _LIBCPP_HAS_THREADS
|
||||
# define __cpp_lib_barrier 201907L
|
||||
# endif
|
||||
# define __cpp_lib_bind_front 201907L
|
||||
@ -441,10 +439,10 @@ __cpp_lib_void_t 201411L <type_traits>
|
||||
// # define __cpp_lib_is_layout_compatible 201907L
|
||||
# define __cpp_lib_is_nothrow_convertible 201806L
|
||||
// # define __cpp_lib_is_pointer_interconvertible 201907L
|
||||
# if _LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC
|
||||
# if _LIBCPP_HAS_THREADS
|
||||
# define __cpp_lib_jthread 201911L
|
||||
# endif
|
||||
# if _LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC
|
||||
# if _LIBCPP_HAS_THREADS
|
||||
# define __cpp_lib_latch 201907L
|
||||
# endif
|
||||
# define __cpp_lib_list_remove_return_type 201806L
|
||||
@ -457,7 +455,7 @@ __cpp_lib_void_t 201411L <type_traits>
|
||||
# endif
|
||||
# define __cpp_lib_ranges 202110L
|
||||
# define __cpp_lib_remove_cvref 201711L
|
||||
# if _LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC
|
||||
# if _LIBCPP_HAS_THREADS
|
||||
# define __cpp_lib_semaphore 201907L
|
||||
# endif
|
||||
# undef __cpp_lib_shared_ptr_arrays
|
||||
|
||||
@ -13,8 +13,6 @@
|
||||
// the test is a no-op (and would XPASS) on some targets.
|
||||
// UNSUPPORTED: using-built-library-before-llvm-19
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// This is a regression test for https://llvm.org/PR85107, which describes how we were using UL_COMPARE_AND_WAIT instead
|
||||
// of UL_COMPARE_AND_WAIT64 in the implementation of atomic::wait, leading to potential infinite hangs.
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// check that <filesystem> functions are marked [[nodiscard]]
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// ADDITIONAL_COMPILE_FLAGS: -I %{libcxx-dir}/src
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -8,9 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
|
||||
// This test uses iterator types from std::filesystem
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// template<class I>
|
||||
// concept __iterator_traits_detail::__cpp17_bidirectional_iterator;
|
||||
|
||||
|
||||
@ -8,9 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
|
||||
// This test uses iterator types from std::filesystem
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// template<class I>
|
||||
// concept __iterator_traits_detail::__cpp17_forward_iterator;
|
||||
|
||||
|
||||
@ -8,9 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
|
||||
// This test uses iterator types from std::filesystem
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// template<class I>
|
||||
// concept __iterator_traits_detail::__cpp17_input_iterator;
|
||||
|
||||
|
||||
@ -8,9 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
|
||||
// This test uses iterator types from std::filesystem
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// template<class I>
|
||||
// concept __iterator_traits_detail::__cpp17_iterator;
|
||||
|
||||
|
||||
@ -8,9 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
|
||||
// This test uses iterator types from std::filesystem
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// template<class I>
|
||||
// concept __iterator_traits_detail::__cpp17_random_access_iterator;
|
||||
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11
|
||||
// REQUIRES: availability-synchronization_library-missing
|
||||
|
||||
// Test the availability markup on the C++20 Synchronization Library
|
||||
// additions to <atomic>.
|
||||
|
||||
#include <atomic>
|
||||
|
||||
void f() {
|
||||
{
|
||||
std::atomic<int> i(3);
|
||||
std::memory_order m = std::memory_order_relaxed;
|
||||
|
||||
i.wait(4); // expected-error {{is unavailable}}
|
||||
i.wait(4, m); // expected-error {{is unavailable}}
|
||||
i.notify_one(); // expected-error {{is unavailable}}
|
||||
i.notify_all(); // expected-error {{is unavailable}}
|
||||
|
||||
std::atomic_wait(&i, 4); // expected-error {{is unavailable}}
|
||||
std::atomic_wait_explicit(&i, 4, m); // expected-error {{is unavailable}}
|
||||
std::atomic_notify_one(&i); // expected-error {{is unavailable}}
|
||||
std::atomic_notify_all(&i); // expected-error {{is unavailable}}
|
||||
}
|
||||
|
||||
{
|
||||
std::atomic<int> volatile i(3);
|
||||
std::memory_order m = std::memory_order_relaxed;
|
||||
|
||||
i.wait(4); // expected-error {{is unavailable}}
|
||||
i.wait(4, m); // expected-error {{is unavailable}}
|
||||
i.notify_one(); // expected-error {{is unavailable}}
|
||||
i.notify_all(); // expected-error {{is unavailable}}
|
||||
|
||||
std::atomic_wait(&i, 4); // expected-error {{is unavailable}}
|
||||
std::atomic_wait_explicit(&i, 4, m); // expected-error {{is unavailable}}
|
||||
std::atomic_notify_one(&i); // expected-error {{is unavailable}}
|
||||
std::atomic_notify_all(&i); // expected-error {{is unavailable}}
|
||||
}
|
||||
|
||||
{
|
||||
std::atomic_flag flag;
|
||||
bool b = false;
|
||||
std::memory_order m = std::memory_order_relaxed;
|
||||
flag.wait(b); // expected-error {{is unavailable}}
|
||||
flag.wait(b, m); // expected-error {{is unavailable}}
|
||||
flag.notify_one(); // expected-error {{is unavailable}}
|
||||
flag.notify_all(); // expected-error {{is unavailable}}
|
||||
|
||||
std::atomic_flag_wait(&flag, b); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_wait_explicit(&flag, b, m); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_notify_one(&flag); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_notify_all(&flag); // expected-error {{is unavailable}}
|
||||
}
|
||||
|
||||
{
|
||||
std::atomic_flag volatile flag;
|
||||
bool b = false;
|
||||
std::memory_order m = std::memory_order_relaxed;
|
||||
flag.wait(b); // expected-error {{is unavailable}}
|
||||
flag.wait(b, m); // expected-error {{is unavailable}}
|
||||
flag.notify_one(); // expected-error {{is unavailable}}
|
||||
flag.notify_all(); // expected-error {{is unavailable}}
|
||||
|
||||
std::atomic_flag_wait(&flag, b); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_wait_explicit(&flag, b, m); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_notify_one(&flag); // expected-error {{is unavailable}}
|
||||
std::atomic_flag_notify_all(&flag); // expected-error {{is unavailable}}
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11
|
||||
// REQUIRES: availability-synchronization_library-missing
|
||||
|
||||
// Test the availability markup on std::barrier.
|
||||
|
||||
#include <barrier>
|
||||
#include <utility>
|
||||
|
||||
struct CompletionF {
|
||||
void operator()() { }
|
||||
};
|
||||
|
||||
void f() {
|
||||
// Availability markup on std::barrier<>
|
||||
{
|
||||
std::barrier<> b(10); // expected-error {{is unavailable}}
|
||||
auto token = b.arrive(); // expected-error {{is unavailable}}
|
||||
(void)b.arrive(10); // expected-error {{is unavailable}}
|
||||
b.wait(std::move(token)); // expected-error {{is unavailable}}
|
||||
b.arrive_and_wait(); // expected-error {{is unavailable}}
|
||||
b.arrive_and_drop(); // expected-error {{is unavailable}}
|
||||
}
|
||||
|
||||
// Availability markup on std::barrier<CompletionF> with non-default CompletionF
|
||||
{
|
||||
std::barrier<CompletionF> b(10); // expected-error {{is unavailable}}
|
||||
auto token = b.arrive(); // expected-error {{is unavailable}}
|
||||
(void)b.arrive(10); // expected-error {{is unavailable}}
|
||||
b.wait(std::move(token)); // expected-error {{is unavailable}}
|
||||
b.arrive_and_wait(); // expected-error {{is unavailable}}
|
||||
b.arrive_and_drop(); // expected-error {{is unavailable}}
|
||||
}
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11
|
||||
// REQUIRES: availability-synchronization_library-missing
|
||||
|
||||
// Test the availability markup on std::latch.
|
||||
|
||||
#include <latch>
|
||||
|
||||
void f() {
|
||||
std::latch latch(10);
|
||||
latch.count_down(); // expected-error {{is unavailable}}
|
||||
latch.count_down(3); // expected-error {{is unavailable}}
|
||||
latch.wait(); // expected-error {{is unavailable}}
|
||||
latch.arrive_and_wait(); // expected-error {{is unavailable}}
|
||||
latch.arrive_and_wait(3); // expected-error {{is unavailable}}
|
||||
}
|
||||
@ -1,48 +0,0 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11
|
||||
// REQUIRES: availability-synchronization_library-missing
|
||||
|
||||
// Test the availability markup on std::counting_semaphore and std::binary_semaphore.
|
||||
|
||||
#include <chrono>
|
||||
#include <semaphore>
|
||||
|
||||
void f() {
|
||||
{
|
||||
// Tests for std::counting_semaphore with non-default template argument
|
||||
std::counting_semaphore<20> sem(10);
|
||||
sem.release(); // expected-error {{is unavailable}}
|
||||
sem.release(5); // expected-error {{is unavailable}}
|
||||
sem.acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_for(std::chrono::milliseconds{3}); // expected-error 1-2 {{is unavailable}}
|
||||
sem.try_acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_until(std::chrono::steady_clock::now()); // expected-error 1-2 {{is unavailable}}
|
||||
}
|
||||
{
|
||||
// Tests for std::counting_semaphore with default template argument
|
||||
std::counting_semaphore<> sem(10);
|
||||
sem.release(); // expected-error {{is unavailable}}
|
||||
sem.release(5); // expected-error {{is unavailable}}
|
||||
sem.acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_for(std::chrono::milliseconds{3}); // expected-error 1-2 {{is unavailable}}
|
||||
sem.try_acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_until(std::chrono::steady_clock::now()); // expected-error 1-2 {{is unavailable}}
|
||||
}
|
||||
{
|
||||
// Tests for std::binary_semaphore
|
||||
std::binary_semaphore sem(10);
|
||||
sem.release(); // expected-error {{is unavailable}}
|
||||
sem.release(5); // expected-error {{is unavailable}}
|
||||
sem.acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_for(std::chrono::milliseconds{3}); // expected-error 1-2 {{is unavailable}}
|
||||
sem.try_acquire(); // expected-error {{is unavailable}}
|
||||
sem.try_acquire_until(std::chrono::steady_clock::now()); // expected-error 1-2 {{is unavailable}}
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: no-threads
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// ADDITIONAL_COMPILE_FLAGS: -Wno-private-header
|
||||
|
||||
#include <__stop_token/atomic_unique_lock.h>
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
template <class T>
|
||||
struct optional {
|
||||
T val_;
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE T value() const { return val_; }
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE T value() const { return val_; }
|
||||
};
|
||||
|
||||
using PMF = int (optional<int>::*)() const;
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-threads
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-threads
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-threads
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// UNSUPPORTED: no-threads
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// UNSUPPORTED: no-threads
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
// XFAIL: !has-64-bit-atomics
|
||||
|
||||
// void wait(T old, memory_order order = memory_order::seq_cst) const volatile noexcept;
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// Tests the basic features and makes sure they work with a hijacking operator&.
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// Tests the basic features and makes sure they work with a hijacking operator&.
|
||||
|
||||
@ -10,8 +10,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// template<class T>
|
||||
|
||||
@ -10,8 +10,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// template<class T>
|
||||
|
||||
@ -10,8 +10,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// template<class T>
|
||||
|
||||
@ -10,8 +10,6 @@
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// XFAIL: !has-1024-bit-atomics
|
||||
|
||||
// XFAIL: availability-synchronization_library-missing
|
||||
|
||||
// <atomic>
|
||||
|
||||
// template<class T>
|
||||
|
||||
@ -6,8 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// XFAIL: availability-filesystem-missing
|
||||
|
||||
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
// Make sure the various containers' iterators are not broken by the use of `std::rel_ops`.
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <fstream>
|
||||
|
||||
// basic_filebuf<charT,traits>* open(const filesystem::path& p, ios_base::openmode mode);
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <fstream>
|
||||
|
||||
// plate <class charT, class traits = char_traits<charT> >
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <fstream>
|
||||
|
||||
// plate <class charT, class traits = char_traits<charT> >
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// FILE_DEPENDENCIES: test.dat
|
||||
|
||||
// <fstream>
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// FILE_DEPENDENCIES: test.dat
|
||||
|
||||
// <fstream>
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <fstream>
|
||||
|
||||
// plate <class charT, class traits = char_traits<charT> >
|
||||
|
||||
@ -8,8 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <fstream>
|
||||
|
||||
// plate <class charT, class traits = char_traits<charT> >
|
||||
|
||||
@ -1,5 +1,2 @@
|
||||
if "availability-filesystem-missing" in config.available_features:
|
||||
config.unsupported = True
|
||||
|
||||
if "no-filesystem" in config.available_features:
|
||||
config.unsupported = True
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
// REQUIRES: can-create-symlinks
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// directory_iterator, recursive_directory_iterator
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// directory_iterator
|
||||
|
||||
@ -41,4 +40,3 @@ static_assert(!std::ranges::view<const fs::directory_iterator&>);
|
||||
static_assert(!std::ranges::sized_range<const fs::directory_iterator&>);
|
||||
static_assert(std::ranges::borrowed_range<const fs::directory_iterator&>);
|
||||
static_assert(std::ranges::viewable_range<const fs::directory_iterator&>);
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: no-filesystem
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// <filesystem>
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
// UNSUPPORTED: no-localization
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
// <filesystem>
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -13,7 +13,6 @@
|
||||
// bool empty() const noexcept;
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14, c++17
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
#include <filesystem>
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// These tests require locale for non-char paths
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
// UNSUPPORTED: availability-filesystem-missing
|
||||
|
||||
// <filesystem>
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user