https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70909
--- Comment #21 from Nathan Sidwell <nathan at gcc dot gnu.org> --- Why doesn't a mark/walk/unmark idiom when walking a potentially circular data structure work here? I.e. add a mutable counter to demangle_component. Inc/dec at start/end of d_print_comp? IIUC if it gets to >1 there's a problem.