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.