@@ -97,19 +97,21 @@ using __barrier_phase_t _LIBCPP_NODEBUG = uint8_t;
9797
9898class __barrier_algorithm_base ;
9999
100- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base*
101- __construct_barrier_algorithm_base (ptrdiff_t & __expected);
100+ [[__gnu__::__returns_nonnull__, __gnu__::__malloc__]] _LIBCPP_AVAILABILITY_SYNC
101+ _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base*
102+ __construct_barrier_algorithm_base (ptrdiff_t & __expected);
102103
103104_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI bool
104- __arrive_barrier_algorithm_base (__barrier_algorithm_base* __barrier, __barrier_phase_t __old_phase) noexcept ;
105+ __arrive_barrier_algorithm_base ([[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier,
106+ __barrier_phase_t __old_phase) noexcept ;
105107
106- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
107- __destroy_barrier_algorithm_base ( __barrier_algorithm_base* __barrier) noexcept ;
108+ _LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __destroy_barrier_algorithm_base (
109+ [[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier) noexcept ;
108110
109111template <class _CompletionF >
110112class __barrier_base {
111113 ptrdiff_t __expected_;
112- unique_ptr<__barrier_algorithm_base, void (*)(__barrier_algorithm_base*)> __base_;
114+ unique_ptr<__barrier_algorithm_base, void (*)(_LIBCPP_NOESCAPE __barrier_algorithm_base*)> __base_;
113115 atomic<ptrdiff_t > __expected_adjustment_;
114116 _CompletionF __completion_;
115117 atomic<__barrier_phase_t > __phase_;
0 commit comments