gcc/libiberty/testsuite
Mark Wielaard d3b2ead595 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.
2022-02-17 18:06:24 +01:00
..
d-demangle-expected
demangle-expected
demangler-fuzzer.c
Makefile.in
rust-demangle-expected libiberty rust-demangle, ignore .suffix 2022-02-17 18:06:24 +01:00
test-demangle.c
test-expandargv.c
test-pexecute.c
test-strtol.c