diff --git a/libcxx/include/functional b/libcxx/include/functional --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -3029,17 +3029,12 @@ {return _Op::__call(_VSTD::get<_Idxs>(_VSTD::move(__bound_))..., _VSTD::forward<_Args>(__args)...);} - template>::type, - class = _EnableIf>> - constexpr __perfect_forward_impl(__perfect_forward_impl const& __other) - : __bound_(__other.__bound_) {} + constexpr __perfect_forward_impl(__perfect_forward_impl const&) = default; + constexpr __perfect_forward_impl(__perfect_forward_impl &&) = default; - template>::type, - class = _EnableIf>> - constexpr __perfect_forward_impl(__perfect_forward_impl && __other) - : __bound_(_VSTD::move(__other.__bound_)) {} - - template + template, _BoundArgs&&...>::value + >> explicit constexpr __perfect_forward_impl(_BoundArgs&&... __bound) : __bound_(_VSTD::forward<_BoundArgs>(__bound)...) { } }; diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -286,6 +286,18 @@ - exit_status: -1 # Agent was lost limit: 2 + # TODO: When this is ready, this should become the default and we can remove this job. + - label: "With PSTL support" + command: "libcxx/utils/ci/run-buildbot with-pstl" + artifact_paths: + - "**/test-results.xml" + agents: + queue: "libcxx-builders" + retry: + automatic: + - exit_status: -1 # Agent was lost + limit: 2 + - label: "Benchmarks" command: "libcxx/utils/ci/run-buildbot benchmarks" artifact_paths: diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -89,7 +89,7 @@ function generate-cmake() { generate-cmake-base \ -S "${MONOREPO_ROOT}/llvm" \ - -DLLVM_ENABLE_PROJECTS="libcxx;libunwind;libcxxabi" \ + -DLLVM_ENABLE_PROJECTS="libcxx;libunwind;libcxxabi;pstl" \ -DLIBCXX_CXX_ABI=libcxxabi \ "${@}" } @@ -347,6 +347,14 @@ generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-localization.cmake" check-cxx-cxxabi ;; +with-pstl) + export CC=clang + export CXX=clang++ + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx20.cmake" \ + -DLIBCXX_ENABLE_PARALLEL_ALGORITHMS=ON + check-cxx-cxxabi +;; x86_64-apple-system) export CC=clang export CXX=clang++