https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115716

            Bug ID: 115716
           Summary: internal compiler error: tree check: accessed elt 2 of
                    'tree_vec' with 1 elts in tsubst, at cp/pt.cc:16364
           Product: gcc
           Version: 4.4.7
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rush102333 at gmail dot com
  Target Milestone: ---

The following code causes ICE on x86-64 gcc since version 4.4.7:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
template <typename T>
struct x
{
    template <typename U>
    struct y
    {
        typedef T result2;
    };

};

template<>
template<typename U,typename>
struct x<int>::y
{
    typedef double result2;
};

int main()
{
    x<int>::y<int>::result2 xxx2;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Please check  https://godbolt.org/z/xfdsMhcvq  for more information.


Compiler Output:


<source>: In instantiation of 'struct x<int>::y<int>':
<source>:21:19:   required from here
   21 |     x<int>::y<int>::result2 xxx2;
      |                   ^~
<source>:15:1: internal compiler error: tree check: accessed elt 2 of
'tree_vec' with 1 elts in tsubst, at cp/pt.cc:16364
   15 | {
      | ^
0x26db045 diagnostic_context::diagnostic_impl(rich_location*,
diagnostic_metadata const*, int, char const*, __va_list_tag (*) [1],
diagnostic_t)
        ???:0
0x26e8bf2 internal_error(char const*, ...)
        ???:0
0x97fea5 tree_vec_elt_check_failed(int, int, char const*, int, char const*)
        ???:0
0xcbc3a9 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
        ???:0
0xcd4655 instantiate_class_template(tree_node*)
        ???:0
0xc7421a c_parse_file()
        ???:0
0xdcaa89 c_common_parse_file()
        ???:0
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to