[Bug 250702] c++filt crashes on a symbol representing a C++ lambda function

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Nov 2 11:19:20 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250702

--- Comment #14 from Dimitry Andric <dim at FreeBSD.org> ---
(In reply to Yuri Victorovich from comment #13)
Yes, the elftoolchain demangler misses a few more modern features, and its
development does not seem very active. (Not necessarily for the other parts of
elftoolchain such as libelf, btw.)

That said, with the fixes I've proposed for upstream, only the lambda examples
don't demangle correctly, but the rest does. E.g. I now get:

_ZZ5func1vENK3$_0clEv ->
func1()::$_0::operator()() const

_ZZN7WebCore19SVGAnimatedProperty20LookupOrCreateHelperINS_32SVGAnimatedStaticPropertyTearOffIbEEbLb1EE21lookupOrCreateWrapperEPNS_10SVGElementEPKNS_15SVGPropertyInfoERbE19__PRETTY_FUNCTION__
->
WebCore::SVGAnimatedProperty::LookupOrCreateHelper<WebCore::SVGAnimatedStaticPropertyTearOff<bool>,
bool, true>::lookupOrCreateWrapper(WebCore::SVGElement*,
WebCore::SVGPropertyInfo const*, bool&)::__PRETTY_FUNCTION__

_ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_
->
std::__1::__bit_iterator<bool, false, 0>
std::__1::__copy_unaligned<std::__1::vector<bool, std::__1::allocator<bool> >,
false>(std::__1::__bit_iterator<bool, std::__1::allocator<bool>, 0>,
std::__1::__bit_iterator<bool, std::__1::allocator<bool>, 0>,
std::__1::__bit_iterator<bool, false, 0>)

_ZZN10half_float6detail15half2float_implEjfNSt3__117integral_constantIbLb1EEEE14exponent_table
->
half_float::detail::half2float_impl(unsigned int, float,
std::__1::integral_constant<bool, true>)::exponent_table


So the remaining one is:

_ZZN9libunwind17LocalAddressSpace18findUnwindSectionsEjRNS_18UnwindInfoSectionsEENUlP12dl_phdr_infojPvE_8__invokeES4_jS5_

That said, it might be more future-proof if we import libcxxabi from the llvm
project into contrib, and start building that, at least for its demangler
support. At some point it might even replace libcxxrt, or serve as a drop-in
replacement.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-toolchain mailing list