https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92012
Bug ID: 92012 Summary: internal compiler error while using range v3 Product: gcc Version: 9.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: voivoid at mail dot ru Target Milestone: --- Created attachment 47004 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47004&action=edit preprocessed source Hi! There is an internal compiler error while trying to compile the attached preprocessed file. gcc (GCC) 9.2.0 Linux 5.3.4-arch1-1-ARCH #1 SMP PREEMPT Sat Oct 5 13:44:11 UTC 2019 x86_64 GNU/Linux compile with: g++ -fconcepts -std=c++17 ./testcase.ii output: ./testcase.ii: In substitution of 'template<class R> static constexpr ranges::_size_::fn::non_member_size_t<R> ranges::_size_::fn::impl_(R&&, long int) requires integral<decltype(+ranges::_size_::size((declval<R>)()))> and !(disable_sized_range<typename std::remove_cv<typename std::remove_reference::type>::uncvref_t>) [with R = const ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >&]': ./testcase.ii:98976:42: required by substitution of 'template<class R> constexpr decltype (ranges::_size_::fn::impl_((R&&)(r), 0)) ranges::_size_::fn::operator()(R&&) const [with R = const ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >&]' ./testcase.ii:99269:101: required by substitution of 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&) [with _Container = ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>]' ./testcase.ii:98941:53: required by substitution of 'template<class R> using non_member_size_t = decltype (+ ranges::_size_::size(declval<R>())) [with R = const ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>&]' ./testcase.ii:98959:35: required by substitution of 'template<class R> static constexpr ranges::_size_::fn::non_member_size_t<R> ranges::_size_::fn::impl_(R&&, long int) requires integral<decltype(+ranges::_size_::size((declval<R>)()))> and !(disable_sized_range<typename std::remove_cv<typename std::remove_reference::type>::uncvref_t>) [with R = const ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>&]' ./testcase.ii:98976:42: required by substitution of 'template<class R> constexpr decltype (ranges::_size_::fn::impl_((R&&)(r), 0)) ranges::_size_::fn::operator()(R&&) const [with R = const ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>&]' ./testcase.ii:99158:47: [ skipping 15 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ./testcase.ii:98941:53: required by substitution of 'template<class R> using non_member_size_t = decltype (+ ranges::_size_::size(declval<R>())) [with R = ranges::transform_view<ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>, std::__cxx11::basic_string<char> std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::*>&]' ./testcase.ii:98959:35: required by substitution of 'template<class R> static constexpr ranges::_size_::fn::non_member_size_t<R> ranges::_size_::fn::impl_(R&&, long int) requires integral<decltype(+ranges::_size_::size((declval<R>)()))> and !(disable_sized_range<typename std::remove_cv<typename std::remove_reference::type>::uncvref_t>) [with R = ranges::transform_view<ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>, std::__cxx11::basic_string<char> std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::*>&]' ./testcase.ii:98976:42: required by substitution of 'template<class R> constexpr decltype (ranges::_size_::fn::impl_((R&&)(r), 0)) ranges::_size_::fn::operator()(R&&) const [with R = ranges::transform_view<ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>, std::__cxx11::basic_string<char> std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::*>&]' ./testcase.ii:99269:101: required from 'ranges::detail::to_container::fn<MetaFn>::container_t<Rng> ranges::detail::to_container::fn<MetaFn>::operator()(Rng&&) const requires input_range<Rng> and convertible_to_cont_cont<Rng, typename Pred::invoke> [with Rng = ranges::transform_view<ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>, std::__cxx11::basic_string<char> std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::*>; ToContainer = ranges::detail::from_range<std::vector>; ranges::detail::to_container::fn<MetaFn>::container_t<Rng> = std::vector<std::__cxx11::basic_string<char> >]' ./testcase.ii:103467:46: required from 'constexpr auto ranges::detail::to_container_closure_base_ns::operator|(Rng&&, ranges::detail::to_container::closure<MetaFn, Fn>) [with Rng = ranges::transform_view<ranges::transform_view<ranges::ref_view<const std::unordered_map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int, boost::hash<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, {anonymous}::NeighboursMapCmp> >, ranges::detail::get_first>, std::__cxx11::basic_string<char> std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::*>; MetaFn = ranges::detail::from_range<std::vector>; Fn = ranges::detail::to_container::fn<ranges::detail::from_range<std::vector> >]' ./testcase.ii:115455:106: required from here ./testcase.ii:98976:42: internal compiler error: Segmentation fault 98976 | -> decltype(fn::impl_((R &&) r, 0)) | ~~~~~~~~~^~~~~~~~~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://bugs.archlinux.org/> for instructions.