https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86212
Bug ID: 86212 Summary: ICE in tsubst_copy, at cp/pt.c:15935 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: h2+bugs at fsfe dot org Target Milestone: --- Created attachment 44293 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44293&action=edit rename to .gz and gunzip % uname -a FreeBSD <SNIP> 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017 r...@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 % g++9 --version g++9 (FreeBSD Ports Collection) 9.0.0 20180603 (experimental) Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE The ICE does not occur on GCC7 and GCC8. I have attached intermediate files. This is the build error log: /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_adaptor.hpp: In instantiation of 'constexpr ranges::v3::adaptor_cursor<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >::adaptor<true> >::adaptor_cursor(Args&& ...) [with Args = {__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >::adaptor<true>}; typename meta::v1::detail::_if_<meta::v1::list<std::is_same<std::integer_sequence<bool, std::is_constructible<Ts, Args>::type::value ...>, std::integer_sequence<bool, (std::is_constructible<Ts, Args>::type::value) || true ...> >, int>, std::integral_constant<bool, true> >::type <anonymous> = 0][inherited from ranges::v3::compressed_tuple_detail::compressed_tuple_<meta::v1::list<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >::adaptor<true> >, std::integer_sequence<long unsigned int, 0, 1> >]': /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_adaptor.hpp:405:50: required from 'static constexpr ranges::v3::adaptor_cursor_t<D> ranges::v3::view_adaptor<Derived, BaseRng, C>::begin_cursor_(D&) [with D = const ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >; Derived = ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >; BaseRng = ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >; ranges::v3::cardinality Cardinality = (ranges::v3::cardinality)-1; ranges::v3::adaptor_cursor_t<D> = ranges::v3::adaptor_cursor<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >::adaptor<true> >; typename std::decay<decltype (ranges::v3::range_access::begin_adaptor(declval<D&>(), 42))>::type = ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >::adaptor<true>; typename std::decay<decltype (declval<typename std::decay<decltype (ranges::v3::range_access::begin_adaptor(declval<D&>(), 42))>::type>().begin(declval<D&>()))>::type = __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >]' /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_adaptor.hpp:423:193: required by substitution of 'template<class D, int _concept_requires_421, typename std::enable_if<((_concept_requires_421 == 43) || (typename ranges::v3::concepts::Same::same<C, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > > >::type() && ranges::v3::concepts::models<ranges::v3::concepts::Range, const ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > > >())), int>::type <anonymous> > constexpr decltype (ranges::v3::view_adaptor<ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >, ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, (ranges::v3::cardinality)-1>::begin_cursor_<D>(declval<const D&>())) ranges::v3::view_adaptor<ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >, ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, (ranges::v3::cardinality)-1>::begin_cursor<D, _concept_requires_421, <enumerator> >() const [with D = ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >; int _concept_requires_421 = 42; typename std::enable_if<((_concept_requires_421 == 43) || (typename ranges::v3::concepts::Same::same<C, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > > >::type() && ranges::v3::concepts::models<ranges::v3::concepts::Range, const ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > > >())), int>::type <anonymous> = 0]' /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/range_access.hpp:175:35: required by substitution of 'template<class Rng> static constexpr decltype (static_cast<const Rng&>(rng).begin_cursor()) ranges::v3::range_access::begin_cursor(Rng&, int) [with Rng = const ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >]' /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_facade.hpp:35:68: required by substitution of 'template<class Derived> using facade_iterator_t = ranges::v3::_basic_iterator_::basic_iterator<typename std::decay<decltype (ranges::v3::range_access::begin_cursor(declval<Derived&>(), 42))>::type> [with Derived = const ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >]' /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_facade.hpp:91:48: required by substitution of 'template<class D, int _concept_requires_90, typename std::enable_if<((_concept_requires_113 == 43) || typename ranges::v3::concepts::Same::same<C, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > > >::type()), int>::type <anonymous> > ranges::v3::detail::facade_iterator_t<const D> ranges::v3::view_facade<ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >, (ranges::v3::cardinality)-1>::begin<D, _concept_requires_90, <enumerator> >() const [with D = ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > >; int _concept_requires_90 = 42; typename std::enable_if<((_concept_requires_113 == 43) || typename ranges::v3::concepts::Same::same<C, ranges::v3::iter_transform_view<ranges::v3::iterator_range<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > > >, ranges::v3::indirected<seqan3::view::<lambda(auto:7)> > > >::type()), int>::type <anonymous> = 0]' /home/mi/h4nn3s/devel/seqan3/test/unit/io/detail/output_iterator_conversion_adaptor_test.cpp:69:50: required from 'auto oiter_conversion_adaptor<T>::get_output() [with T = std::tuple<ranges::v3::back_insert_iterator<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >, seqan3::dna4>]' /home/mi/h4nn3s/devel/seqan3/test/unit/io/detail/output_iterator_conversion_adaptor_test.cpp:104:160: required from 'void oiter_conversion_adaptor_assign_Test<gtest_TypeParam_>::TestBody() [with gtest_TypeParam_ = std::tuple<ranges::v3::back_insert_iterator<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >, seqan3::dna4>]' /home/mi/h4nn3s/devel/seqan3/test/unit/io/detail/output_iterator_conversion_adaptor_test.cpp:97:1: required from here /home/mi/h4nn3s/devel/seqan3/submodules/range-v3/include/range/v3/view_adaptor.hpp:365:27: internal compiler error: in tsubst_copy, at cp/pt.c:15935 using base_t::base_t; ^~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. gmake[2]: *** [io/detail/CMakeFiles/output_iterator_conversion_adaptor_test.dir/build.make:63: io/detail/CMakeFiles/output_iterator_conversion_adaptor_test.dir/output_iterator_conversion_adaptor_test.cpp.o] Fehler 1 gmake[1]: *** [CMakeFiles/Makefile2:1289: io/detail/CMakeFiles/output_iterator_conversion_adaptor_test.dir/all] Fehler 2 gmake: *** [Makefile:95: all] Fehler 2