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

Reply via email to