aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2021-12-02 18:00:39 +0100
committerMark Wielaard <mark@klomp.org>2022-02-17 18:06:24 +0100
commitd3b2ead595467166c849950ecd3710501a5094d9 (patch)
treed2048ccfc0473ef3ebfc732160330481a5697f93 /gcc
parentdb69f666a728ce800a840115829f6b64bc3174d2 (diff)
downloadgcc-d3b2ead595467166c849950ecd3710501a5094d9.zip
gcc-d3b2ead595467166c849950ecd3710501a5094d9.tar.gz
gcc-d3b2ead595467166c849950ecd3710501a5094d9.tar.bz2
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.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions