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

Reply via email to