diff options
Diffstat (limited to 'libcxx/include/barrier')
| -rw-r--r-- | libcxx/include/barrier | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libcxx/include/barrier b/libcxx/include/barrier index 00e196963f11..fb40757a73fb 100644 --- a/libcxx/include/barrier +++ b/libcxx/include/barrier @@ -97,19 +97,21 @@ using __barrier_phase_t _LIBCPP_NODEBUG = uint8_t; class __barrier_algorithm_base; -_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base* -__construct_barrier_algorithm_base(ptrdiff_t& __expected); +[[__gnu__::__returns_nonnull__, __gnu__::__malloc__]] _LIBCPP_AVAILABILITY_SYNC + _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base* + __construct_barrier_algorithm_base(ptrdiff_t& __expected); _LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI bool -__arrive_barrier_algorithm_base(__barrier_algorithm_base* __barrier, __barrier_phase_t __old_phase) noexcept; +__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(__barrier_algorithm_base* __barrier) noexcept; +_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __destroy_barrier_algorithm_base( + [[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier) noexcept; template <class _CompletionF> class __barrier_base { ptrdiff_t __expected_; - unique_ptr<__barrier_algorithm_base, void (*)(__barrier_algorithm_base*)> __base_; + unique_ptr<__barrier_algorithm_base, void (*)(_LIBCPP_NOESCAPE __barrier_algorithm_base*)> __base_; atomic<ptrdiff_t> __expected_adjustment_; _CompletionF __completion_; atomic<__barrier_phase_t> __phase_; |
