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