https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118021
Bug ID: 118021
Summary: [15 regression] ICE in parser
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: liuhongt at gcc dot gnu.org
Target Milestone: ---
cat test.i
class a;
class b {
public:
~b();
};
template <typename c, typename e> void d(c, c, e);
class h : b {
int f;
};
template <class g> class autovector {
public:
using i = g;
template <class, class> class j {};
using iterator = j<autovector, i>;
iterator begin();
iterator end();
};
void k(h icmp) {
autovector<a> l;
d(l.begin(), l.end(), [icmp] {});
}
g++ -O2 test.i -S
testcase.i: In function ‘void k(h)’:
testcase.i:21:1: internal compiler error: in cxx_eval_outermost_constant_expr,
at cp/constexpr.cc:8958
21 | }
| ^
0x31a8606 internal_error(char const*, ...)
./master/gcc/diagnostic-global-context.cc:517
0x100d1e2 fancy_abort(char const*, int, char const*)
./master/gcc/diagnostic.cc:1704
0x7adcd7 cxx_eval_outermost_constant_expr
./gcc/cp/constexpr.cc:8958
0x1086cb3 maybe_constant_init_1
./masterr/gcc/cp/constexpr.cc:9484
0x10b239d cp_fold_r
./master/gcc/cp/cp-gimplify.cc:1480
0x1d6597c walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
./master/gcc/tree.cc:11526
0x1d6606d walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
./master/gcc/tree.cc:11642
0x10aa173 cp_fold_function(tree_node*)
./master/gcc/cp/cp-gimplify.cc:1513
0x10f8bc1 finish_function(bool)
./master/gcc/cp/decl.cc:19144
0x1212336 cp_parser_function_definition_after_declarator
./master/gcc/cp/parser.cc:33368
0x121353f cp_parser_function_definition_from_specifiers_and_declarator
./master/gcc/cp/parser.cc:33282
0x121353f cp_parser_init_declarator
./master/gcc/cp/parser.cc:23838
0x1219433 cp_parser_simple_declaration
./master/gcc/cp/parser.cc:16360
0x1224561 cp_parser_declaration
./master/gcc/cp/parser.cc:16033
0x122506a cp_parser_toplevel_declaration
./master/gcc/cp/parser.cc:16054
0x122506a cp_parser_translation_unit
./master/gcc/cp/parser.cc:5353
0x122506a c_parse_file()
./master/gcc/cp/parser.cc:53085
0x1384299 c_common_parse_file()
./master/gcc/c-family/c-opts.cc:1389
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
on x86-64-pc-linux-gnu.