https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70517
Mark Wielaard <mark at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mark at gcc dot gnu.org Depends on| |78252 --- Comment #4 from Mark Wielaard <mark at gcc dot gnu.org> --- This related to Bug 78252 - C++ demangler crashes with infinite recursion with lambda (auto) With the patch proposed for that bug there is no crash anymore and the symbols demangle. _ZSt4moveIRZN11tconcurrent6futureIvE4thenIZ5awaitIS2_EDaOT_EUlRKS6_E_EENS1_INSt5decayIDTclfp_defpTEEE4typeEEES7_EUlvE_EONSt16remove_referenceIS6_E4typeES7_ demangles to: std::remove_reference<tconcurrent::future<std::decay<decltype ({parm#1}(*this))>::type> tconcurrent::future<void>::then<auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}>(auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}&& const)::{lambda()#1}&>::type&& std::move<tconcurrent::future<std::decay<decltype ({parm#1}(*this))>::type> tconcurrent::future<void>::then<auto await<tconcurrent::future<void> >(tconcurrent::future<std::decay<decltype ({parm#1}(*this))>::type> tconcurrent::future<void>::then<auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}>(auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}&& const)::{lambda()#1}&)::{lambda(auto&& const&)#1}>(tconcurrent::future<std::decay<decltype ({parm#1}(*this))>::type> tconcurrent::future<void>::then<auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}>(auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}&& const)::{lambda()#1}& const)::{lambda()#1}&>(tconcurrent::future<std::decay<decltype ({parm#1}(*this))>::type> tconcurrent::future<void>::then<auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}>(auto await<tconcurrent::future<void> >(tconcurrent::future<void>&&)::{lambda(auto&& const&)#1}&& const)::{lambda()#1}& const) _Z4moveIRZ5awaitIRiEDaOT_EUlRKS3_E_ES4_S4_ demangles to: auto await<int&>(int&)::{lambda(auto&& const&)#1}& const move<auto await<int&>(auto await<int&>(int&)::{lambda(auto&& const&)#1}&)::{lambda(auto&& const&)#1}&>(auto await<int&>(int&)::{lambda(auto&& const&)#1}& const) _Z4moveIRZ5awaitIRiEDaOT_EUlRKS2_E_ES3_S3_ demangles to: auto await<int&>(int&)::{lambda(auto const&)#1}& move<auto await<int&>(auto await<int&>(int&)::{lambda(auto const&)#1}&)::{lambda(auto const&)#1}&>(auto await<int&>(int&)::{lambda(auto const&)#1}&) Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78252 [Bug 78252] C++ demangler crashes with infinite recursion with lambda (auto)