https://sourceware.org/bugzilla/show_bug.cgi?id=19801

            Bug ID: 19801
           Summary: c++filt cannot demangle
                    _ZNSt17_Function_handlerIFSt4pairImjEjEZN5folly12addBe
                    nchmarkI3$_0EENSt9enable_ifIXeqsr5boost14function_type
                    s14function_arityIDTadsrT_onclEEE5valueLi2EEvE4typeEPK
                    cSC_OS7_EUljE_E9_M_invokeERKSt9_Any_dataj
           Product: binutils
           Version: 2.26
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: twoh at fb dot com
  Target Milestone: ---

c++filt cannot demangle
_ZNSt17_Function_handlerIFSt4pairImjEjEZN5folly12addBenchmarkI3$_0EENSt9enable_ifIXeqsr5boost14function_types14function_arityIDTadsrT_onclEEE5valueLi2EEvE4typeEPKcSC_OS7_EUljE_E9_M_invokeERKSt9_Any_dataj

The demangler fails when it encounters expression "srT_onclE". The reason is
that it applies a wrong rule to demangle expression. Comments in line 3095 of
libiberty/cp-demangle.c (2.26 release) says 

<expression> ::= sr <type> <unqualified-name>

is the rule, and this is implemented in line 3110-3124. However, if you see
Itanium C++
ABI(http://mentorembedded.github.io/cxx-abi/abi.html#mangle.expression), the
actual rule is

<expression> ::= sr <type> <base-unresolved-name>

and 'base-unresolved-name' has different rules with 'unqualified-name'.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to