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

            Bug ID: 108794
           Summary: ICE in determine_visibility, at cp/decl2.cc:2839
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Affects versions down to at least r5 :


$ cat z1.cc
template <typename T> T g (T x)
{
  struct B b;
  struct B { struct A a; };
}
void f (int *x)
{
  g (x[1]);
}


$ gcc-13-20230212 -c z1.cc
z1.cc: In instantiation of 'struct g<int>(int)::B':
z1.cc:3:12:   required from 'T g(T) [with T = int]'
z1.cc:8:5:   required from here
z1.cc:4:23: internal compiler error: Segmentation fault
    4 |   struct B { struct A a; };
      |                       ^
0xeb71af crash_signal
        ../../gcc/toplev.cc:314
0x84432d determine_visibility(tree_node*)
        ../../gcc/cp/decl2.cc:2839
0x8bf921 pushtag(tree_node*, tree_node*, TAG_how)
        ../../gcc/cp/name-lookup.cc:8007
0x93a8a8 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
        ../../gcc/cp/pt.cc:10090
0x93af76 tsubst_aggr_type_1
        ../../gcc/cp/pt.cc:13940
0x930b8d tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:15915
0x938336 tsubst_decl
        ../../gcc/cp/pt.cc:14949
0x931317 tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:15825
0x944cf5 instantiate_class_template(tree_node*)
        ../../gcc/cp/pt.cc:12278
0x97cd53 complete_type(tree_node*)
        ../../gcc/cp/typeck.cc:138
0x9387e5 tsubst_decl
        ../../gcc/cp/pt.cc:15237
0x931317 tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:15825
0x92a171 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:18857
0x927cce tsubst_expr(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:18730
0x928678 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:19110
0x92b970 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/cp/pt.cc:26707
0x92b970 instantiate_body
        ../../gcc/cp/pt.cc:26707
0x92c9df instantiate_decl(tree_node*, bool, bool)
        ../../gcc/cp/pt.cc:26997
0x9461db instantiate_pending_templates(int)
        ../../gcc/cp/pt.cc:27075
0x848f6a c_parse_final_cleanups()
        ../../gcc/cp/decl2.cc:4953

Reply via email to