]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: use if consteval in stable_sort
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Wed, 5 Mar 2025 13:34:41 +0000 (14:34 +0100)
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Wed, 5 Mar 2025 16:59:18 +0000 (17:59 +0100)
This is a C++ >= 26 codepath for supporting constexpr stable_sort, so we
know that we have if consteval available; it just needs protection with
the feature-testing macro. Also merge the return in the same statement.
Amends r15-7708-gff43f9853d3b10.

libstdc++-v3/ChangeLog:

* include/bits/stl_algo.h (__stable_sort): Use if consteval
instead of is_constant_evaluated.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/include/bits/stl_algo.h

index 41b4d0853b718c80ad83c75196bad8e50a0714f8..c3fea76014cb20e404de6d8360cdd905e36a4d05 100644 (file)
@@ -4987,11 +4987,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
        return;
 
 #if _GLIBCXX_HOSTED
-      if (__is_constant_evaluated())
-       {
-         std::__inplace_stable_sort(__first, __last, __comp);
-         return;
-       }
+# if __glibcxx_constexpr_algorithms >= 202306L // >= C++26
+      if consteval {
+       return std::__inplace_stable_sort(__first, __last, __comp);
+      }
+# endif
 
       typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf;
       // __stable_sort_adaptive sorts the range in two halves,