https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67261
Bug ID: 67261 Summary: Demangler infinite recursion Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ian at airs dot com CC: gbenson at redhat dot com Target Milestone: --- The demangler goes into an infinite recursion trying to demangle this name: _ZN1C12_GLOBAL__N_11DINS_1EEEEN1F1GIDTadcldtcvT__E1HEEEERKS5_NS_1I1JE I don't have the source code to generate this, but it doesn't matter too much since of course an infinite recursion is always wrong. Anyhow, I believe the correct demangling is F::G<decltype (&((((C::E)()).H)()))> C::(anonymous namespace)::D<C::E>(C::E const&, C::I::J) The demangler appears to be getting confused about which template to use for a template parameter. It somehow manages to pick the same template in which the parameter is defined, which then leads to an infinite loop.