[Lldb-commits] [PATCH] D62756: Be consistent when adding names and mangled names to the index

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 11 10:35:26 PDT 2019

clayborg added a comment.

In D62756#1526996 <https://reviews.llvm.org/D62756#1526996>, @labath wrote:

> Being consistent definitely sounds like a good idea. Since this does change behavior somewhat, I'm wondering whether it would make sense to add a test here. The thing that's not clear to me is whether this change in behavior is only theoretical, or if it can also happen in a real-world scenario. We can always hand-construct an DIE which will have a linkage name, but no "normal" name, but I don't see how would this ever happen in practice. How did you initially discover this inconsistency?

I added asserts in the else clause if code like:

  if (name) {
  } else {
    assert(mangled_str == nullptr);

And I got the assert. So this is a real issue.

>> We might think about adding a feature where if there is a mangled name and no simple name, chop up the demangled name like we do in the ObjectFile plug-ins when we see mangled names so we extract the basename out and then could use this as the simple name. This might help expressions find things correctly by basename
> My worry about that is two-fold:
> - it adds a demangling step (a pretty expensive operation) to something that is already the biggest bottleneck in loading DWARF
> - this isn't something that we would do when using accelerator tables, so this will result in inconsistent behavior in these two cases To understand the tradeoffs here, it would be good to understand under what circumstances can this situation occur...

Fine not doing this yet.

I will post a new diff with a simpler solution that maintains performance to address Adrian's question of using StringRef.



More information about the lldb-commits mailing list