https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70909

--- Comment #34 from Mark Wielaard <mark at gcc dot gnu.org> ---
(In reply to Mark Wielaard from comment #26)
> Created attachment 40233 [details]
> d_print_comp with 1 level of recursion protection
> 
> This is the variant that allows 1 level of recursion (with an xxx ??? to why
> 1 level).

I figured out why it should be d_printing > 1.
For function types we print the DEMANGLE_COMPONENT_FUNCTION_TYPE twice with
different options depending on whether or not we want the return type printed
or not.

If we apply Nathan's lambda patch then we need d_printing > 2.
With that we get two more symbols demangled.

- PR70517
_ZSt4moveIRZN11tconcurrent6futureIvE4thenIZ5awaitIS2_EDaOT_EUlRKS6_E_EENS1_INSt5decayIDTclfp_defpTEEE4typeEEES7_EUlvE_EONSt16remove_referenceIS6_E4typeES7_

- PR68700
_ZN8futurizeI13frozen_schemaE5applyIRZN7seastar7shardedIN7service13storage_proxyEE9invoke_onIZZNS6_22init_messaging_serviceEvENKUljN5utils4UUIDEE8_clEjSA_EUlOT_E_6futureIJS0_EEEET0_jSD_EUlvE_JEEESG_SD_DpOT0_

So that leaves us with only two unexplained symbols that don't demangle PR61460
and PR67738.

I haven't figured out yet why with the lambda patch applied we need to allow 2
levels of recursion.

Reply via email to