https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70909
--- Comment #15 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Thanks for the testcase. Marcel's patch fixes the segfault, but doesn't demangle the symbol. markus@x4 libiberty % ./a.out _ZSt7forwardIR17predicate_matcherIZ11any_matcherIiEDavEUlOT_E_13typed_matcherIiEEES3_RNSt16remove_referenceIS2_E4typeE typed name template qualified name name 'std' name 'forward' template argument list reference template name 'predicate_matcher' template argument list local name typed name template name 'any_matcher' template argument list builtin type int function type name 'auto' argument list lambda 0 argument list rvalue reference template parameter 0 template argument list template name 'typed_matcher' template argument list builtin type int function type rvalue reference template parameter 0 argument list reference qualified name template qualified name standard substitution std name 'remove_reference' template argument list template parameter 0 name 'type' Failed: _ZSt7forwardIR17predicate_matcherIZ11any_matcherIiEDavEUlOT_E_13typed_matcherIiEEES3_RNSt16remove_referenceIS2_E4typeE libc++abi demangler gives: int&& std::forward<predicate_matcher<auto any_matcher<int>()::'lambda'(int&&), typed_matcher<int> >&>(std::remove_reference<int>::type&)