https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77825
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |UNCONFIRMED CC| |jason at gcc dot gnu.org Ever confirmed|1 |0 --- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> --- This is due to the C++17 constexpr lambda change: previously, we would defer instantiation of the lambda operator() until EOF, but now we instantiate it immediately when we call it from y_combinator's operator(). Since we haven't completed instantiating that function yet, it doesn't have a real return type yet, so the mutual recursion leads to an error.