[Bug c++/66371] New: ICE: canonical types differ for identical types
jamrial at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Jun 2 02:50:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66371
Bug ID: 66371
Summary: ICE: canonical types differ for identical types
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: jamrial at gmail dot com
Target Milestone: ---
Created attachment 35674
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35674&action=edit
Preprocessed source as generated by -freport-bug
GCC 6.0.0 svn 223906
In file included from
/home/jamrial/range-v3/include/range/v3/range_interface.hpp:25:0,
from
/home/jamrial/range-v3/include/range/v3/range_facade.hpp:21,
from /home/jamrial/range-v3/include/range/v3/core.hpp:21,
from /home/jamrial/range-v3/test/container_conversion.cpp:17:
/home/jamrial/range-v3/include/range/v3/to_container.hpp: In instantiation of
‘struct ranges::v3::detail::to_container_fn<meta::v1::always<std::vector<int> >
>’:
/home/jamrial/range-v3/include/range/v3/to_container.hpp:143:62: required
from ‘Cont ranges::v3::to_(Rng&&) [with Cont = std::vector<int>; Rng =
ranges::v3::take_exactly_view<ranges::v3::view::ints_fn>&; int
_concept_requires_140 = 42; typename std::enable_if<((_concept_requires_140 ==
43) || (ranges::v3::Range<Cont>() &&
ranges::v3::detail::ConvertibleToContainer<Rng, Cont>())), int>::type
<anonymous> = 0]’
/home/jamrial/range-v3/include/range/v3/range_interface.hpp:240:46: required
from ‘ranges::v3::range_interface<Derived, <anonymous> >::operator Container()
[with Container = std::vector<int>; D =
ranges::v3::take_exactly_view<ranges::v3::view::ints_fn>; Alloc =
std::allocator<int>; int _concept_requires_237 = 42; typename
std::enable_if<((_concept_requires_237 == 43) ||
ranges::v3::detail::ConvertibleToContainer<D, Container>()), int>::type
<anonymous> = 0; Derived =
ranges::v3::take_exactly_view<ranges::v3::view::ints_fn>;
ranges::v3::cardinality Cardinality = (ranges::v3::cardinality)-1]’
/home/jamrial/range-v3/test/container_conversion.cpp:31:52: required from
here
/home/jamrial/range-v3/include/range/v3/to_container.hpp:74:22: internal
compiler error: canonical types differ for identical types
std::enable_if<((_concept_requires_73 == 43) || ((ranges::v3::Range<T>() &&
ranges::v3::detail::ConvertibleToContainer<Rng, Cont,
ranges::v3::range_common_iterator_t<Rng> >()) &&
ranges::v3::detail::to_container_fn<meta::v1::always<std::vector<int> >
>::ReserveConcept<Cont, Rng>())), int> and
std::enable_if<((_concept_requires_73 == 43) || ((ranges::v3::Range<T>() &&
ranges::v3::detail::ConvertibleToContainer<Rng, Cont,
ranges::v3::range_common_iterator_t<Rng> >()) &&
ranges::v3::detail::to_container_fn<meta::v1::quote<std::vector>
>::ReserveConcept<Cont, Rng>())), int>
Cont impl(Rng && rng, std::true_type) const
^
0x738b8e comptypes(tree_node*, tree_node*, int)
/home/jamrial/gcc-svn/gcc/cp/typeck.c:1423
0x737610 structural_comptypes
/home/jamrial/gcc-svn/gcc/cp/typeck.c:1338
0x66e122 reduce_template_parm_level
/home/jamrial/gcc-svn/gcc/cp/pt.c:3704
0x66a120 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/jamrial/gcc-svn/gcc/cp/pt.c:12155
0x670e50 tsubst_copy
/home/jamrial/gcc-svn/gcc/cp/pt.c:13054
0x676056 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/jamrial/gcc-svn/gcc/cp/pt.c:15728
0x65b6b0 tsubst_expr
/home/jamrial/gcc-svn/gcc/cp/pt.c:14393
0x66bf6b tsubst_template_arg
/home/jamrial/gcc-svn/gcc/cp/pt.c:9690
0x666a42 tsubst_template_args
/home/jamrial/gcc-svn/gcc/cp/pt.c:10241
0x666d3a tsubst_template_args
/home/jamrial/gcc-svn/gcc/cp/pt.c:10201
0x660342 tsubst_decl
/home/jamrial/gcc-svn/gcc/cp/pt.c:10624
0x669f4e tsubst(tree_node*, tree_node*, int, tree_node*)
/home/jamrial/gcc-svn/gcc/cp/pt.c:11819
0x68de6b instantiate_class_template_1
/home/jamrial/gcc-svn/gcc/cp/pt.c:9357
0x68de6b instantiate_class_template(tree_node*)
/home/jamrial/gcc-svn/gcc/cp/pt.c:9671
0x7336fb complete_type(tree_node*)
/home/jamrial/gcc-svn/gcc/cp/typeck.c:146
0x7338ef complete_type_or_maybe_complain(tree_node*, tree_node*, int)
/home/jamrial/gcc-svn/gcc/cp/typeck.c:158
0x7339d9 require_complete_type_sfinae(tree_node*, int)
/home/jamrial/gcc-svn/gcc/cp/typeck.c:102
0x5ec059 build_cxx_call(tree_node*, int, tree_node**, int)
/home/jamrial/gcc-svn/gcc/cp/call.c:7652
0x5f1701 build_over_call
/home/jamrial/gcc-svn/gcc/cp/call.c:7567
0x600471 build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, bool, int)
/home/jamrial/gcc-svn/gcc/cp/call.c:4100
New version of the first file reported in pr66067, this time with a different
ICE.
More information about the Gcc-bugs
mailing list