@@ -64,7 +64,7 @@ enum { __block_size = sizeof(uint64_t) * 8 };
6464
6565//  Ensures that __c(*__x, *__y) is true by swapping *__x and *__y if necessary.
6666template  <class  _Compare , class  _RandomAccessIterator >
67- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
67+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
6868__cond_swap (_RandomAccessIterator __x, _RandomAccessIterator __y, _Compare __c) {
6969  //  Note: this function behaves correctly even with proxy iterators (because it relies on `value_type`).
7070  using  value_type = typename  iterator_traits<_RandomAccessIterator>::value_type;
@@ -78,7 +78,7 @@ __cond_swap(_RandomAccessIterator __x, _RandomAccessIterator __y, _Compare __c)
7878//  Ensures that *__x, *__y and *__z are ordered according to the comparator __c,
7979//  under the assumption that *__y and *__z are already ordered.
8080template  <class  _Compare , class  _RandomAccessIterator >
81- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
81+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
8282__partially_sorted_swap (_RandomAccessIterator __x, _RandomAccessIterator __y, _RandomAccessIterator __z, _Compare __c) {
8383  //  Note: this function behaves correctly even with proxy iterators (because it relies on `value_type`).
8484  using  value_type = typename  iterator_traits<_RandomAccessIterator>::value_type;
@@ -97,7 +97,7 @@ template <class,
9797          class  _Compare ,
9898          class  _RandomAccessIterator ,
9999          __enable_if_t <__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
100- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
100+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
101101__sort3 (_RandomAccessIterator __x1, _RandomAccessIterator __x2, _RandomAccessIterator __x3, _Compare __c) {
102102  bool  __swapped1 = std::__cond_swap<_Compare>(__x2, __x3, __c);
103103  bool  __swapped2 = std::__partially_sorted_swap<_Compare>(__x1, __x2, __x3, __c);
@@ -108,7 +108,7 @@ template <class _AlgPolicy,
108108          class  _Compare ,
109109          class  _RandomAccessIterator ,
110110          __enable_if_t <!__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
111- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
111+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX14 bool 
112112__sort3 (_RandomAccessIterator __x, _RandomAccessIterator __y, _RandomAccessIterator __z, _Compare __c) {
113113  using  _Ops = _IterOps<_AlgPolicy>;
114114
@@ -140,7 +140,7 @@ template <class,
140140          class  _Compare ,
141141          class  _RandomAccessIterator ,
142142          __enable_if_t <__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
143- inline  _LIBCPP_HIDE_FROM_ABI  void 
143+ inline  void 
144144__sort4 (_RandomAccessIterator __x1,
145145        _RandomAccessIterator __x2,
146146        _RandomAccessIterator __x3,
@@ -157,7 +157,7 @@ template <class _AlgPolicy,
157157          class  _Compare ,
158158          class  _RandomAccessIterator ,
159159          __enable_if_t <!__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
160- inline  _LIBCPP_HIDE_FROM_ABI  void 
160+ inline  void 
161161__sort4 (_RandomAccessIterator __x1,
162162        _RandomAccessIterator __x2,
163163        _RandomAccessIterator __x3,
@@ -182,7 +182,7 @@ template <class _AlgPolicy,
182182          class  _Compare ,
183183          class  _RandomAccessIterator ,
184184          __enable_if_t <__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
185- inline  _LIBCPP_HIDE_FROM_ABI  void 
185+ inline  void 
186186__sort5 (_RandomAccessIterator __x1,
187187        _RandomAccessIterator __x2,
188188        _RandomAccessIterator __x3,
@@ -201,7 +201,7 @@ template <class _AlgPolicy,
201201          class  _Compare ,
202202          class  _RandomAccessIterator ,
203203          __enable_if_t <!__use_branchless_sort<_Compare, _RandomAccessIterator>, int > = 0 >
204- inline  _LIBCPP_HIDE_FROM_ABI  void 
204+ inline  void 
205205__sort5 (_RandomAccessIterator __x1,
206206        _RandomAccessIterator __x2,
207207        _RandomAccessIterator __x3,
@@ -227,7 +227,7 @@ __sort5(_RandomAccessIterator __x1,
227227
228228//  Assumes size > 0
229229template  <class  _AlgPolicy , class  _Compare , class  _BidirectionalIterator >
230- _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX14 void 
230+ _LIBCPP_CONSTEXPR_SINCE_CXX14 void 
231231__selection_sort (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) {
232232  _BidirectionalIterator __lm1 = __last;
233233  for  (--__lm1; __first != __lm1; ++__first) {
@@ -240,7 +240,7 @@ __selection_sort(_BidirectionalIterator __first, _BidirectionalIterator __last,
240240//  Sort the iterator range [__first, __last) using the comparator __comp using
241241//  the insertion sort algorithm.
242242template  <class  _AlgPolicy , class  _Compare , class  _BidirectionalIterator >
243- _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX26 void 
243+ _LIBCPP_CONSTEXPR_SINCE_CXX26 void 
244244__insertion_sort (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) {
245245  using  _Ops = _IterOps<_AlgPolicy>;
246246
@@ -270,8 +270,7 @@ __insertion_sort(_BidirectionalIterator __first, _BidirectionalIterator __last,
270270//  Assumes that there is an element in the position (__first - 1) and that each
271271//  element in the input range is greater or equal to the element at __first - 1.
272272template  <class  _AlgPolicy , class  _Compare , class  _RandomAccessIterator >
273- _LIBCPP_HIDE_FROM_ABI void 
274- __insertion_sort_unguarded (_RandomAccessIterator const  __first, _RandomAccessIterator __last, _Compare __comp) {
273+ void  __insertion_sort_unguarded (_RandomAccessIterator const  __first, _RandomAccessIterator __last, _Compare __comp) {
275274  using  _Ops = _IterOps<_AlgPolicy>;
276275  typedef  typename  iterator_traits<_RandomAccessIterator>::difference_type difference_type;
277276  typedef  typename  iterator_traits<_RandomAccessIterator>::value_type value_type;
@@ -298,8 +297,7 @@ __insertion_sort_unguarded(_RandomAccessIterator const __first, _RandomAccessIte
298297}
299298
300299template  <class  _AlgPolicy , class  _Comp , class  _RandomAccessIterator >
301- _LIBCPP_HIDE_FROM_ABI bool 
302- __insertion_sort_incomplete (_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp __comp) {
300+ bool  __insertion_sort_incomplete (_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp __comp) {
303301  using  _Ops = _IterOps<_AlgPolicy>;
304302
305303  typedef  typename  iterator_traits<_RandomAccessIterator>::difference_type difference_type;
@@ -352,7 +350,7 @@ __insertion_sort_incomplete(_RandomAccessIterator __first, _RandomAccessIterator
352350}
353351
354352template  <class  _AlgPolicy , class  _RandomAccessIterator >
355- inline  _LIBCPP_HIDE_FROM_ABI  void  __swap_bitmap_pos (
353+ inline  void  __swap_bitmap_pos (
356354    _RandomAccessIterator __first, _RandomAccessIterator __last, uint64_t & __left_bitset, uint64_t & __right_bitset) {
357355  using  _Ops = _IterOps<_AlgPolicy>;
358356  typedef  typename  std::iterator_traits<_RandomAccessIterator>::difference_type difference_type;
@@ -370,7 +368,7 @@ inline _LIBCPP_HIDE_FROM_ABI void __swap_bitmap_pos(
370368template  <class  _Compare ,
371369          class  _RandomAccessIterator ,
372370          class  _ValueType  = typename  iterator_traits<_RandomAccessIterator>::value_type>
373- inline  _LIBCPP_HIDE_FROM_ABI  void 
371+ inline  void 
374372__populate_left_bitset (_RandomAccessIterator __first, _Compare __comp, _ValueType& __pivot, uint64_t & __left_bitset) {
375373  //  Possible vectorization. With a proper "-march" flag, the following loop
376374  //  will be compiled into a set of SIMD instructions.
@@ -386,7 +384,7 @@ __populate_left_bitset(_RandomAccessIterator __first, _Compare __comp, _ValueTyp
386384template  <class  _Compare ,
387385          class  _RandomAccessIterator ,
388386          class  _ValueType  = typename  iterator_traits<_RandomAccessIterator>::value_type>
389- inline  _LIBCPP_HIDE_FROM_ABI  void 
387+ inline  void 
390388__populate_right_bitset (_RandomAccessIterator __lm1, _Compare __comp, _ValueType& __pivot, uint64_t & __right_bitset) {
391389  //  Possible vectorization. With a proper "-march" flag, the following loop
392390  //  will be compiled into a set of SIMD instructions.
@@ -403,7 +401,7 @@ template <class _AlgPolicy,
403401          class  _Compare ,
404402          class  _RandomAccessIterator ,
405403          class  _ValueType  = typename  iterator_traits<_RandomAccessIterator>::value_type>
406- inline  _LIBCPP_HIDE_FROM_ABI  void  __bitset_partition_partial_blocks (
404+ inline  void  __bitset_partition_partial_blocks (
407405    _RandomAccessIterator& __first,
408406    _RandomAccessIterator& __lm1,
409407    _Compare __comp,
@@ -450,7 +448,7 @@ inline _LIBCPP_HIDE_FROM_ABI void __bitset_partition_partial_blocks(
450448}
451449
452450template  <class  _AlgPolicy , class  _RandomAccessIterator >
453- inline  _LIBCPP_HIDE_FROM_ABI  void  __swap_bitmap_pos_within (
451+ inline  void  __swap_bitmap_pos_within (
454452    _RandomAccessIterator& __first, _RandomAccessIterator& __lm1, uint64_t & __left_bitset, uint64_t & __right_bitset) {
455453  using  _Ops = _IterOps<_AlgPolicy>;
456454  typedef  typename  std::iterator_traits<_RandomAccessIterator>::difference_type difference_type;
@@ -491,7 +489,7 @@ inline _LIBCPP_HIDE_FROM_ABI void __swap_bitmap_pos_within(
491489//  __bitset_partition uses bitsets for storing outcomes of the comparisons
492490//  between the pivot and other elements.
493491template  <class  _AlgPolicy , class  _RandomAccessIterator , class  _Compare >
494- _LIBCPP_HIDE_FROM_ABI  std::pair<_RandomAccessIterator, bool >
492+ std::pair<_RandomAccessIterator, bool >
495493__bitset_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) {
496494  using  _Ops = _IterOps<_AlgPolicy>;
497495  typedef  typename  std::iterator_traits<_RandomAccessIterator>::value_type value_type;
@@ -583,7 +581,7 @@ __bitset_partition(_RandomAccessIterator __first, _RandomAccessIterator __last,
583581//  the provided range is already sorted, false otherwise.  We assume that the
584582//  length of the range is at least three elements.
585583template  <class  _AlgPolicy , class  _RandomAccessIterator , class  _Compare >
586- _LIBCPP_HIDE_FROM_ABI  std::pair<_RandomAccessIterator, bool >
584+ std::pair<_RandomAccessIterator, bool >
587585__partition_with_equals_on_right (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) {
588586  using  _Ops = _IterOps<_AlgPolicy>;
589587  typedef  typename  iterator_traits<_RandomAccessIterator>::difference_type difference_type;
@@ -651,7 +649,7 @@ __partition_with_equals_on_right(_RandomAccessIterator __first, _RandomAccessIte
651649//  Similar to the above function.  Elements equivalent to the pivot are put to
652650//  the left of the pivot.  Returns the iterator to the pivot element.
653651template  <class  _AlgPolicy , class  _RandomAccessIterator , class  _Compare >
654- _LIBCPP_HIDE_FROM_ABI  _RandomAccessIterator
652+ _RandomAccessIterator
655653__partition_with_equals_on_left (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) {
656654  using  _Ops = _IterOps<_AlgPolicy>;
657655  typedef  typename  iterator_traits<_RandomAccessIterator>::difference_type difference_type;
@@ -828,6 +826,7 @@ void __introsort(_RandomAccessIterator __first,
828826  }
829827}
830828
829+ _LIBCPP_BEGIN_EXPLICIT_ABI_ANNOTATIONS
831830template  <class  _Comp , class  _RandomAccessIterator >
832831void  __sort (_RandomAccessIterator, _RandomAccessIterator, _Comp);
833832
@@ -856,9 +855,10 @@ extern template _LIBCPP_EXPORTED_FROM_ABI void __sort<__less<float>&, float*>(fl
856855extern  template  _LIBCPP_EXPORTED_FROM_ABI void  __sort<__less<double >&, double *>(double *, double *, __less<double >&);
857856extern  template  _LIBCPP_EXPORTED_FROM_ABI void 
858857__sort<__less<long  double >&, long  double *>(long  double *, long  double *, __less<long  double >&);
858+ _LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS
859859
860860template  <class  _AlgPolicy , class  _RandomAccessIterator , class  _Comp >
861- _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
861+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
862862__sort_dispatch (_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp& __comp) {
863863  typedef  typename  iterator_traits<_RandomAccessIterator>::difference_type difference_type;
864864  difference_type __depth_limit = 2  * std::__bit_log2 (std::__to_unsigned_like (__last - __first));
@@ -895,35 +895,35 @@ using __sort_is_specialized_in_library _LIBCPP_NODEBUG = __is_any_of<
895895    long  double >;
896896
897897template  <class  _AlgPolicy , class  _Type , __enable_if_t <__sort_is_specialized_in_library<_Type>::value, int > = 0 >
898- _LIBCPP_HIDE_FROM_ABI  void  __sort_dispatch (_Type* __first, _Type* __last, __less<>&) {
898+ void  __sort_dispatch (_Type* __first, _Type* __last, __less<>&) {
899899  __less<_Type> __comp;
900900  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
901901}
902902
903903template  <class  _AlgPolicy , class  _Type , __enable_if_t <__sort_is_specialized_in_library<_Type>::value, int > = 0 >
904- _LIBCPP_HIDE_FROM_ABI  void  __sort_dispatch (_Type* __first, _Type* __last, less<_Type>&) {
904+ void  __sort_dispatch (_Type* __first, _Type* __last, less<_Type>&) {
905905  __less<_Type> __comp;
906906  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
907907}
908908
909909#if  _LIBCPP_STD_VER >= 14
910910template  <class  _AlgPolicy , class  _Type , __enable_if_t <__sort_is_specialized_in_library<_Type>::value, int > = 0 >
911- _LIBCPP_HIDE_FROM_ABI  void  __sort_dispatch (_Type* __first, _Type* __last, less<>&) {
911+ void  __sort_dispatch (_Type* __first, _Type* __last, less<>&) {
912912  __less<_Type> __comp;
913913  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
914914}
915915#endif 
916916
917917#if  _LIBCPP_STD_VER >= 20
918918template  <class  _AlgPolicy , class  _Type , __enable_if_t <__sort_is_specialized_in_library<_Type>::value, int > = 0 >
919- _LIBCPP_HIDE_FROM_ABI  void  __sort_dispatch (_Type* __first, _Type* __last, ranges::less&) {
919+ void  __sort_dispatch (_Type* __first, _Type* __last, ranges::less&) {
920920  __less<_Type> __comp;
921921  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
922922}
923923#endif 
924924
925925template  <class  _AlgPolicy , class  _RandomAccessIterator , class  _Comp >
926- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
926+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
927927__sort_impl (_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp& __comp) {
928928  std::__debug_randomize_range<_AlgPolicy>(__first, __last);
929929
@@ -937,14 +937,13 @@ __sort_impl(_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp&
937937}
938938
939939template  <class  _RandomAccessIterator , class  _Comp >
940- inline  _LIBCPP_HIDE_FROM_ABI  _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
940+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
941941sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp __comp) {
942942  std::__sort_impl<_ClassicAlgPolicy>(std::move (__first), std::move (__last), __comp);
943943}
944944
945945template  <class  _RandomAccessIterator >
946- inline  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void 
947- sort (_RandomAccessIterator __first, _RandomAccessIterator __last) {
946+ inline  _LIBCPP_CONSTEXPR_SINCE_CXX20 void  sort (_RandomAccessIterator __first, _RandomAccessIterator __last) {
948947  std::sort (__first, __last, __less<>());
949948}
950949
0 commit comments