https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81932

--- Comment #25 from Paul Smith <psmith at gnu dot org> ---
> (1) Find the mangled name of the vtable of tv.
> (2) Demangle the name, to be 'vtable for TreeVector<Pod, 2u>::Tree'.
> (3) Skip 'vtable for ' and get 'TreeVector<Pod, 2u>::Tree'.
> (4) Lookup this symbol.

Right, and this is my concern: how many different types of symbol modifications
are we going to expect GDB to attempt?  Massaging this type to all its
different equivalent types and then attempting to look them up seems pretty
inefficient.  I'm not familiar at all with the implementation but I'm not sure
I see why we can't just ensure that the symbol values provided match
identically to the de-mangled names, so we always know that we can demangle the
name then look up the symbol.

I also filed a bug against GDB (mentioned above) which is similar: in that case
the demangled name contained the default value for a defaulted template
argument, but the actual symbol provided didn't contain that default: again the
lookup didn't match.  How can GDB know that this argument is the default and it
should try removing that argument and looking up the symbol without it?

Reply via email to