https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69481
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |trippels at gcc dot gnu.org
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Here's the reduced testcase from PR77629:
markus@x4 tmp % cat out.ii
template <bool> struct A;
template <bool _Cond> using enable_if_t = typename A<_Cond>::type;
template <typename, int, typename, typename> struct B;
template <int> struct C;
template <typename> struct D;
template <typename Scalar_, int Size_, typename Derived>
struct B<Scalar_, Size_, Derived, enable_if_t<C<Size_>::peel>> {
using Base = D<Scalar_>;
// typedef D<Scalar_> Base; // OK
using typename Base::Scalar;
Scalar a;
};
markus@x4 tmp % g++ -c out.ii
out.ii:11:3: internal compiler error: same canonical type node for different
types B<Scalar_, Size_, Derived, typename A<C<Size_>::peel>::type>::Base and D<
<template-parameter-1-1> >
Scalar a;
^~~~~~
0x79d2e4 comptypes(tree_node*, tree_node*, int)
../../gcc/gcc/cp/typeck.c:1437
0x6d769d resolve_typename_type(tree_node*, bool)
../../gcc/gcc/cp/pt.c:23721
0x79b874 structural_comptypes
../../gcc/gcc/cp/typeck.c:1204
0x778352 cp_parser_constructor_declarator_p
../../gcc/gcc/cp/parser.c:25376
0x778352 cp_parser_decl_specifier_seq
../../gcc/gcc/cp/parser.c:12874
0x787b59 cp_parser_member_declaration
../../gcc/gcc/cp/parser.c:22479
0x761230 cp_parser_member_specification_opt
../../gcc/gcc/cp/parser.c:22331
0x761230 cp_parser_class_specifier_1
../../gcc/gcc/cp/parser.c:21496
0x763a29 cp_parser_class_specifier
../../gcc/gcc/cp/parser.c:21745
0x763a29 cp_parser_type_specifier
../../gcc/gcc/cp/parser.c:15971
0x777fc8 cp_parser_decl_specifier_seq
../../gcc/gcc/cp/parser.c:12889
0x786863 cp_parser_single_declaration
../../gcc/gcc/cp/parser.c:25975
0x786c13 cp_parser_template_declaration_after_parameters
../../gcc/gcc/cp/parser.c:25667
0x787623 cp_parser_explicit_template_declaration
../../gcc/gcc/cp/parser.c:25902
0x787623 cp_parser_template_declaration_after_export
../../gcc/gcc/cp/parser.c:25920
0x78e5d9 cp_parser_declaration
../../gcc/gcc/cp/parser.c:12209
0x78ce20 cp_parser_declaration_seq_opt
../../gcc/gcc/cp/parser.c:12139
0x78d192 cp_parser_translation_unit
../../gcc/gcc/cp/parser.c:4356
0x78d192 c_parse_file()
../../gcc/gcc/cp/parser.c:37714
0x8fa672 c_common_parse_file()
../../gcc/gcc/c-family/c-opts.c:1073