https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124397
Bug ID: 124397
Summary: internal compiler error: error reporting routines
re-entered with lambda-expr
Product: gcc
Version: 16.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: ---
```
template <class T>
auto f(T) -> decltype([]() { T::invalid; } ());
template<typename T>
void f(T, ...);
void d() {
f(0);
}
```
crashes:
ice3.C: In substitution of ‘template<class T> decltype (<lambda>()) f(T) [with
T = int]’:
ice3.C:7:4: required from here
7 | f(0);
| ~^~~
ice3.C:2:33: error: ‘invalid’ is not a member of ‘int’
2 | auto f(T) -> decltype([]() { T::invalid; } ());
| ^~~~~~~
ice3.C: In function ‘void d()’:
ice3.C:7:4: error: call of overloaded ‘f(int)’ is ambiguous
7 | f(0);
| ~^~~
• there are 2 candidates
internal compiler error: error reporting routines re-entered.
0x3198fd3 error_at(unsigned long, char const*, ...)
/home/mpolacek/src/gcc/gcc/diagnostic-global-context.cc:655
0x5e2dc8 qualified_name_lookup_error(tree_node*, tree_node*, tree_node*,
unsigned long)
/home/mpolacek/src/gcc/gcc/cp/error.cc:5094
0x7ff26c tsubst_qualified_id
/home/mpolacek/src/gcc/gcc/cp/pt.cc:18182
0x815cbb tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:21615
0x810dd9 tsubst_stmt
/home/mpolacek/src/gcc/gcc/cp/pt.cc:20665
0x80703f tsubst_stmt
/home/mpolacek/src/gcc/gcc/cp/pt.cc:19456
0x80a8b3 tsubst_stmt
/home/mpolacek/src/gcc/gcc/cp/pt.cc:19859
0x812ce9 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:21060
0x81f32f tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:23062
0x818567 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:22039
0x7fd54a tsubst(tree_node*, tree_node*, int, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/pt.cc:17718
0x5cc06d dump_template_bindings
/home/mpolacek/src/gcc/gcc/cp/error.cc:625
0x5d34f5 dump_substitution
/home/mpolacek/src/gcc/gcc/cp/error.cc:1894
0x5d544c dump_function_decl
/home/mpolacek/src/gcc/gcc/cp/error.cc:2074
0x5d21e5 dump_decl
/home/mpolacek/src/gcc/gcc/cp/error.cc:1615
0x5dd914 decl_to_string
/home/mpolacek/src/gcc/gcc/cp/error.cc:3569
0x5e214f cp_printer
/home/mpolacek/src/gcc/gcc/cp/error.cc:4893