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.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62756/new/
https://reviews.llvm.org/D62756
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits