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

--- Comment #3 from Nick Nethercote <n.netherc...@gmail.com> ---
> What about the Java Ada/gnat and D demangling defined in ML_(cplus_demangle)?
> We seem to miss demangling them too because they (probably) don't start with
> _Z or _R and aren't guarded by AUTO_DEMANGLING.
> Has that also always been broken? Did we simple not notice because nobody
> uses valgrind with those languages?

>From a quick look at the code, I think the following is true.
- C++ symbols usually start with "_Z", but "_GLOBAL_" is also possible, which
won't work.
- Java symbols are a subset of C++ symbols, so should be ok, modulo possible
"_GLOBAL_" cases, and possible AUTO_DEMANGLING problems.
- D symbols start with "_D", and so will be broken.
- Ada symbols can start with "_ada_", or with a lower-case letter, and so will
be broken.

I found the AUTO_DEMANGLING stuff a bit confusing, but you are right that the
code for Rust and C++ looks a bit different to the code for Java/Ada/D, in that
respect. I suspect that you are also right about Java/Ada/D demangling being
broken but nobody noticing due to low levels of usage.

Fixing the Java/Ada/D problems is outside the scope of this bug, and I'm not
familiar enough with those languages to fix and test things anyway.
Here's what I'll do: I'll file a new bug pointing out the problems, update my
commit to include a comment in `VG_(demangle)` that points to the bug, and then
push. That way the Rust problems will be fixed, and the Java/Ada/D problems at
least will be documented.

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

Reply via email to