https://bugs.kde.org/show_bug.cgi?id=445916

Mark Wielaard <m...@klomp.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|REPORTED                    |RESOLVED

--- Comment #5 from Mark Wielaard <m...@klomp.org> ---
Added to gcc/libiberty as:

commit d3b2ead595467166c849950ecd3710501a5094d9
Author: Mark Wielaard <m...@klomp.org>
Date:   Thu Dec 2 18:00:39 2021 +0100

    libiberty rust-demangle, ignore .suffix

    Rust symbols can have a .suffix because of compiler transformations.
    These can be ignored in the demangled name. Which is what this patch
    implements. By stopping at the first dot for v0 symbols and searching
    backwards to the ending 'E' for legacy symbols.

    An alternative implementation could be to follow what C++ does and
    represent these as [clone .suffix] tagged onto the demangled name.
    But this seems somewhat confusing since it results in a demangled
    name that cannot be mangled again. And it would mean trying to
    decode compiler internal naming.

    https://bugs.kde.org/show_bug.cgi?id=445916
    https://github.com/rust-lang/rust/issues/60705

    libiberty/Changelog

            * rust-demangle.c (rust_demangle_callback): Ignore everything
            after '.' char in sym for v0. For legacy symbols search
            backwards to find the last 'E' before any '.'.
            * testsuite/rust-demangle-expected: Add new .suffix testcases.


Merged into valgrind as:

commit e0b62fe05559003b731b4d786f3b71e9a66fb94d (origin/master, origin/HEAD)
Author: Mark Wielaard <m...@klomp.org>
Date:   Thu Feb 17 18:35:38 2022 +0100

    Update libiberty demangler

    Update the libiberty demangler using the auxprogs/update-demangler
    script to gcc git commit d3b2ead595467166c849950ecd3710501a5094d9.

    This update includes:

    - libiberty rust-demangle, ignore .suffix
    - libiberty: Fix infinite recursion in rust demangler
    - Update copyright years
    - libiberty: support digits in cpp mangled clone names
    - d-demangle: properly skip anonymous symbols
    - d-demangle: remove parenthesis where it is not needed

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to