https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70909
--- Comment #42 from Mark Wielaard <mark at gcc dot gnu.org> --- (In reply to Markus Trippelsdorf from comment #41) > (In reply to Mark Wielaard from comment #40) > > But I still haven't figured out why we need to allow 2 levels of recursion > > for some of the cases. See the XXX in the patch. I don't feel I can propose > > this unless we figure out why the level needs to be 2 (and not 3 or...) > > > > If we figure that out we should add the explanation to the comment. Then we > > can propose it on gcc-patches. > > Well, then just use one level of recursion in the patch. And increase the > level > in a possible follow-up patch later on. This will fix most stack overflows. > If we fail to demangle some weird symbols at first, so be it. That would break demangling of symbols from e.g. bug 68700 _ZN8futurizeI13frozen_schemaE5applyIRZN7seastar7shardedIN7service13storage_proxyEE9invoke_onIZZNS6_22init_messaging_serviceEvENKUljN5utils4UUIDEE8_clEjSA_EUlOT_E_6futureIJS0_EEEET0_jSD_EUlvE_JEEESG_SD_DpOT0_ or bug #70517 _ZSt4moveIRZN11tconcurrent6futureIvE4thenIZ5awaitIS2_EDaOT_EUlRKS6_E_EENS1_INSt5decayIDTclfp_defpTEEE4typeEEES7_EUlvE_EONSt16remove_referenceIS6_E4typeES7_ I just haven't had time to analyze why. If someone could trace through these and see why some components have to be printed up to 3 times (or more?) that would be helpful.