https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94507
Bug ID: 94507
Summary: internal compiler error: tree check: expected
template_decl, have error_mark in tsubst_lambda_expr
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mpolacek at gcc dot gnu.org
Target Milestone: ---
struct S { };
template<typename T, typename U>
auto foo(T, U)
{
[] <> () { foo (S{}, S{}); };
}
$ ./cc1plus -quiet -std=c++20 z.C
z.C: In function ‘auto foo(T, U)’:
z.C:6:7: error: expected identifier before ‘>’ token
6 | [] <> () { foo (S{}, S{}); };
| ^
z.C: In instantiation of ‘auto foo(T, U) [with T = S; U = S]’:
z.C:6:27: required from here
z.C:6:3: note: invalid template non-type parameter
6 | [] <> () { foo (S{}, S{}); };
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
z.C:6:3: internal compiler error: tree check: expected template_decl, have
error_mark in tsubst_lambda_expr, at cp/pt.c:18880
0x19afd31 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
/home/mpolacek/src/gcc/gcc/tree.c:9727
0x912e6b tree_check(tree_node*, char const*, int, char const*, tree_code)
/home/mpolacek/src/gcc/gcc/tree.h:3279
0xbe40a1 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.c:18880
0xbeb2fb tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:20321
0xbe2d59 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:18614
0xbdb83f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:17727
0xbdb5d1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:17697
0xbde18e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:18015
0xc01c32 instantiate_decl(tree_node*, bool, bool)
/home/mpolacek/src/gcc/gcc/cp/pt.c:25539
0xc025eb instantiate_pending_templates(int)
/home/mpolacek/src/gcc/gcc/cp/pt.c:25655
0xa66864 c_parse_final_cleanups()
/home/mpolacek/src/gcc/gcc/cp/decl2.c:4874
0xd45bae c_common_parse_file()
/home/mpolacek/src/gcc/gcc/c-family/c-opts.c:1212
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.