https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94971
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |WONTFIX --- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #0) > This fails to compile in C++20 mode: > > #define _GLIBCXX_PARALLEL 1 > #include <algorithm> > > The new std::lexicographical_compare_three_way algo I added is in the wrong > namespace. This is fixed. (In reply to Jonathan Wakely from comment #2) > All the tests for C++20 constexpr algorithms fail, because the > std::__parallel versions are not constexpr: [...] > I think that could be fixed by adding _GLIBCXX20_CONSTEXPR to them and then > at the beginning of each function: > > #if __cpp_lib_is_constant_evaluated > if (std::is_constant_evaluated()) > return _GLIBCXX_STD_A::replace_if(...); > #endif I don't plan to do that. > These fail to compile because the parallel algos don't support move > semantics: > FAIL: 25_algorithms/stable_sort/49559.cc (test for excess errors) > FAIL: 25_algorithms/stable_sort/moveable.cc (test for excess errors) > FAIL: 25_algorithms/stable_sort/moveable2.cc (test for excess errors) > FAIL: 25_algorithms/partial_sort/moveable.cc (test for excess errors) > FAIL: 25_algorithms/nth_element/moveable.cc (test for excess errors) > FAIL: 25_algorithms/for_each/1.cc (test for excess errors) > FAIL: 25_algorithms/for_each/for_each_n.cc (test for excess errors) This has been broken for years. > This fails because the new overload of std::search that takes a searcher > isn't declared in std::__parallel: > > FAIL: 25_algorithms/search/searcher.cc (test for excess errors) > Excess errors: > /home/jwakely/src/gcc/libstdc++-v3/testsuite/25_algorithms/search/searcher. > cc:39: error: no matching function for call to 'search(int [2], int*, > nocopy)' Fixed. > These fail at runtime, because the parallel algos copy instead of moving: > > FAIL: 26_numerics/accumulate/lwg2055.cc execution test > FAIL: 26_numerics/inner_product/lwg2055.cc execution test Not going to be fixed. I'm going to close this as WONTFIX. Parallel Mode should be considered legacy code in maintenance mode only.