https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70182
--- Comment #2 from Taewook Oh <twoh at fb dot com> --- Here is a link to the preprocessed text: http://paste.ubuntu.com/15346235/ As I wrote in the description, it seems pretty clear that demangler applies an incorrect rule to demangle expression. For "srT_oncl", if demangler applies the correct rule <expression> ::= sr <type> <base-unresolved-name>, then "T_" can be processed by rule <template-param> ::= T_ and "oncl" can be processed by <base-unresolved-name> ::= on <operator-name> <operator-name> ::= cl # (). GCC generates a slightly different name (_ZNSt17_Function_handlerIFSt4pairImjEjEZN5folly12addBenchmarkIUljE_EENSt9enable_ifIXeqsrN5boost14function_types14function_arityIDTadsrT_clEEE5valueLi2EEvE4typeEPKcSG_OSA_EUljE_E9_M_invokeERKSt9_Any_dataj) but still cannot be demangled by c++filt.