Closed DarthGandalf closed 1 year ago
I'm trying to package 0.12.0 in gentoo linux, and this fails during unit test with gcc 11:
[194/757] /usr/bin/x86_64-pc-linux-gnu-g++ -I/mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include -O2 -pipe -march=znver2 -ggdb3 -frecord-gcc-switches -O3 -DNDEBUG -std=c++14 -Wall -Wextra -fdiagnostics-show-template-tree -ftemplate-backtrace-limit =0 -fomit-frame-pointer -Ofast -fstrict-aliasing -ffast-math -fsized-deallocation -DRANGES_CXX_ALIGNED_NEW=0 -fconcepts -MD -MT CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o -MF CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o.d -o C MakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o -c /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0_build/headers/range/v3/utility.cpp FAILED: CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o /usr/bin/x86_64-pc-linux-gnu-g++ -I/mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include -O2 -pipe -march=znver2 -ggdb3 -frecord-gcc-switches -O3 -DNDEBUG -std=c++14 -Wall -Wextra -fdiagnostics-show-template-tree -ftemplate-backtrace-limit=0 -fomit- frame-pointer -Ofast -fstrict-aliasing -ffast-math -fsized-deallocation -DRANGES_CXX_ALIGNED_NEW=0 -fconcepts -MD -MT CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o -MF CMakeFiles/test.range.v3.headers.dir/headers/range/v3/utility.cpp.o.d -o CMakeFiles/ test.range.v3.headers.dir/headers/range/v3/utility.cpp.o -c /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0_build/headers/range/v3/utility.cpp In file included from /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/range/v3/utility/any.hpp:23, from /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/range/v3/utility.hpp:17, from /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0_build/headers/range/v3/utility.cpp:1: /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/swap.hpp: In substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_delete<ranges::any::int erface>&; T = std::default_delete<ranges::any::interface>]’: /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/swap.hpp:179:22: required by substitution of ‘template<class T, class U> decltype (concepts::adl_swap_detail::swap(declval<T>(), declval<U>())) concepts::adl_swap_detail::try_adl_swap_(i nt) [with T = std::default_delete<ranges::any::interface>&; U = std::default_delete<ranges::any::interface>&]’ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/swap.hpp:186:14: required from ‘constexpr const bool concepts::adl_swap_detail::is_adl_swappable_v<std::default_delete<ranges::any::interface>&>’ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/swap.hpp:205:18: required by substitution of ‘template<class T> constexpr meta::if_c<((! is_adl_swappable_v<T&>) && is_movable_v<T>)> concepts::adl_swap_detail::swap_fn::operator()(T&, T &) const [with T = std::default_delete<ranges::any::interface>]’ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:984:9: required by substitution of ‘template<class TRef, class T> requires (copyable<T>) && !(same_as<T, ranges::any>) ranges::any::any(TRef&&) [with TRef = std::default_de lete<ranges::any::interface>&; T = std::default_delete<ranges::any::interface>]’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/type_traits:2700:31: required by substitution of ‘template<class _Tp, class> static std::true_type std::__swappable_details::__do_is_swappable_impl::__test(int) [with _Tp = std::default_delete<ranges::any::interface> ; <template-parameter-1-2> = <missing>]’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/type_traits:2724:35: required from ‘struct std::__is_swappable_impl<std::default_delete<ranges::any::interface> >’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/type_traits:2735:12: required from ‘struct std::__is_swappable<std::default_delete<ranges::any::interface> >’ /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/unique_ptr.h:463:37: required from ‘void std::unique_ptr<_Tp, _Dp>::swap(std::unique_ptr<_Tp, _Dp>&) [with _Tp = ranges::any::interface; _Dp = std::default_delete<ranges::any::interface>]’ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/range/v3/utility/any.hpp:161:22: required from here /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:984:9: required for the satisfaction of ‘swappable_requires_<T>’ [with T = std::default_delete<ranges::any::interface>] /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:992:21: required for the satisfaction of ‘swappable<T>’ [with T = std::default_delete<ranges::any::interface>] /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:1194:21: required for the satisfaction of ‘movable<T>’ [with T = std::default_delete<ranges::any::interface>] /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:1209:21: required for the satisfaction of ‘copyable<T>’ [with T = std::default_delete<ranges::any::interface>] /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:984:9: in requirements with ‘T& t’, ‘T& u’ [with T = std::default_delete<ranges::any::interface>] /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:471:5: error: satisfaction of atomic constraint ‘requires(T& t, T& u) {(concepts::<unnamed>::swap)(t, u);} [with T = S]’ depends on itself 471 | requires(__VA_ARGS__) CPP_REQUIRES_AUX_ | ^ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:66:30: note: in expansion of macro ‘CPP_REQUIRES_requires’ 66 | #define CPP_PP_CAT_(X, ...) X ## __VA_ARGS__ | ^ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:67:30: note: in expansion of macro ‘CPP_PP_CAT_’ 67 | #define CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__) | ^~~~~~~~~~~ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:464:9: note: in expansion of macro ‘CPP_PP_CAT’ 464 | CPP_PP_CAT(CPP_REQUIRES_, REQS) | ^~~~~~~~~~ /mnt/portagetmp/portage/dev-cpp/range-v3-0.12.0/work/range-v3-0.12.0/include/concepts/concepts.hpp:984:9: note: in expansion of macro ‘CPP_requires’ 984 | CPP_requires(swappable_, | ^~~~~~~~~~~~
build.log
Is this still true after #1715 and #1716?
Thanks, I saw these PRs, but didn't consider them to be relevant from their description
I'm trying to package 0.12.0 in gentoo linux, and this fails during unit test with gcc 11:
build.log