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

            Bug ID: 96732
           Summary: ice in pop_nested_class
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For this C++ source code:

template <typename> struct a;
template <typename> struct b;
template <typename c> class d {
  struct {
    template <bool, typename e> using f = typename e ::g;
    template <typename e> f<b<typename a<typename c::h>::i>::j, e> k();
  };
};

sometime between 20200818 and 20200819, it fails to compile:

/home/dcb/gcc/results.20200818/bin/gcc
/home/dcb/gcc/results.20200819/bin/gcc
bug637.cc: In substitution of ‘template<class c> template<bool <anonymous>,
clas
s e> using f = typename e::g [with bool <anonymous> = b<typename a<typename
c::h
>::i>::j; e = e; c = c]’:
bug637.cc:6:66:   required from here
bug637.cc:6:66: internal compiler error: Segmentation fault
    6 |     template <typename e> f<b<typename a<typename c::h>::i>::j, e> k();
      |                                                                  ^
0xf14119 crash_signal(int)
        ../../trunk.git/gcc/toplev.c:327
0x66009b tree_class_check(tree_node*, tree_code_class, char const*, int, char
co
nst*)
        ../../trunk.git/gcc/tree.h:3417
0x66009b pop_nested_class()
        ../../trunk.git/gcc/cp/class.c:8138
0x8633b2 instantiate_template_1(tree_node*, tree_node*, int)
        ../../trunk.git/gcc/cp/pt.c:20826

Reply via email to