[Bug binutils/19801] New: c++filt cannot demangle _ZNSt17_Function_handlerIFSt4pairImjEjEZN5folly12addBenchmarkI3$_0EENSt9enable_ifIXeqsr5boost14function_types14function_arityIDTadsrT_onclEEE5valueLi2
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 ::= sr 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 ::= sr 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
[Bug binutils/19801] c++filt cannot demangle _ZNSt17_Function_handlerIFSt4pairImjEjEZN5folly12addBenchmarkI3$_0EENSt9enable_ifIXeqsr5boost14function_types14function_arityIDTadsrT_onclEEE5valueLi2EEvE4
https://sourceware.org/bugzilla/show_bug.cgi?id=19801 --- Comment #2 from Taewook Oh --- Nick, Thank you for your reply. I'll forward the report to the maintainers. Best, Taewook On 3/10/16, 6:19 AM, "nickc at redhat dot com" wrote: >https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceware.org_bugzil >la_show-5Fbug.cgi-3Fid-3D19801&d=CwIFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=kOsLCgQ >zH7N8ptZ7diJD9g&m=X0O3GiY40h5WTSgIBZhkX1JAAJejZurAxUPw1J4kcNE&s=KbyLrgTjsH >_fcUnB5bWZBw74ojTVVkYtQvyblf-r9pA&e= > >Nick Clifton changed: > > What|Removed |Added >-- >-- > Status|NEW |RESOLVED > CC||nickc at redhat dot com > Resolution|--- |WONTFIX > >--- Comment #1 from Nick Clifton --- >(In reply to Taewook Oh from comment #0) >> The demangler fails when it encounters expression > >Thanks for reporting this problem. Unfortunately the libiberty library >is a >separate project from the binutils, so this is the wrong place to report >this >problem. > >Instead please send the bug report to the libiberty maintainers (see >below) and >maybe also CC the message to the gcc-patc...@gcc.gnu.org mailing list. > >Cheers > Nick > >(From gcc/MAINTAINERS): > >libiberty DJ Delorie >libiberty Ian Lance Taylor > >-- >You are receiving this mail because: >You reported the bug. -- 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
[Bug gold/23321] New: Gold Linker SIGSEGV During DWARF Decoding, because it doesn't support DW_LNS_set_epilogue_begin/end and DW_LNS_set_isa
https://sourceware.org/bugzilla/show_bug.cgi?id=23321 Bug ID: 23321 Summary: Gold Linker SIGSEGV During DWARF Decoding, because it doesn't support DW_LNS_set_epilogue_begin/end and DW_LNS_set_isa Product: binutils Version: 2.30 Status: UNCONFIRMED Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: twoh at fb dot com CC: ian at airs dot com Target Milestone: --- As written in the summary, gold linker crashes with SIGSEGV because dwarf reader doesn't support some opcodes. Below is my temporary patch for 2.26.1 and 2.29.1, and I confirmed that the issue is not addressed in 2.30 as well. It would be nice if someone has a better understanding about the codebase can take a look. Thanks! --- === --- 2.26.1/src/binutils-2.26.1/gold/dwarf_reader.cc +++ 2.26.1/src/binutils-2.26.1/gold/dwarf_reader.cc @@ -1917,6 +1917,20 @@ } break; +case elfcpp::DW_LNS_set_epilogue_begin: +case elfcpp::DW_LNS_set_prologue_end: + // Do nothing. + break; + +case elfcpp::DW_LNS_set_isa: + { +size_t templen; +read_unsigned_LEB_128(start, &templen); +oplen += templen; + } + break; + default: { // Ignore unknown opcode silently Index: 2.29.1/src/binutils-2.29.1/gold/dwarf_reader.cc === --- 2.29.1/src/binutils-2.29.1/gold/dwarf_reader.cc +++ 2.29.1/src/binutils-2.29.1/gold/dwarf_reader.cc @@ -1917,6 +1917,20 @@ } break; +case elfcpp::DW_LNS_set_epilogue_begin: +case elfcpp::DW_LNS_set_prologue_end: + // Do nothing. + break; + +case elfcpp::DW_LNS_set_isa: + { +size_t templen; +read_unsigned_LEB_128(start, &templen); +oplen += templen; + } + break; + default: { // Ignore unknown opcode silently -- 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
[Bug gold/23321] Gold Linker SIGSEGV During DWARF Decoding, because it doesn't support DW_LNS_set_epilogue_begin/end and DW_LNS_set_isa
https://sourceware.org/bugzilla/show_bug.cgi?id=23321 --- Comment #2 from Taewook Oh --- It was clang, close to top of trunk. Maybe std_opcode_lengths has the wrong value: As far as I remember, when it falls back to the default case, the array value for DW_LNS_set_epilogue_end was 1, not 0. It is from internal source so wonder if I can share .o file, but let me try if I can invent one. -- 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