labath accepted this revision. labath added inline comments. This revision is now accepted and ready to land.
================ Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp:45 if (name_type_mask & eFunctionNameTypeFull) { - dies.push_back(die); - return; + if (!die.IsMethod() || die.GetMangledName(false) == name) { + dies.push_back(die); ---------------- jarin wrote: > jarin wrote: > > labath wrote: > > > I don't believe the `IsMethod` check is really needed here -- the mangled > > > name check should handle everything. > > > > > > In fact, looking at the implementation of > > > `DWARFDebugInfoEntry::GetMangledName`, I don't think you even need the > > > extra `substitute_name_allowed=false` part. The default value should do > > > exactly what we need. If the DIE has a linkage (mangled) name it will > > > return it and we will use that for comparison. For an `extern "C"` > > > function it will return the regular name, and we will compare that > > > instead (this check is somewhat redundant because if the name doesn't > > > match, the function should not be in the index in the first place, but I > > > don't think it hurts to check either). > > > > > > Am I missing something? > > I want to avoid returning methods to [[ > > https://github.com/llvm/llvm-project/blob/808142876c10b52e7ee57cdc6dcf0acc5c97c1b7/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp#L1258 > > | ClangExpressionDeclMap::LookupFunction ]], so that > > ClangExpressionDeclMap::LookupFunction does not do the expensive [[ > > https://github.com/llvm/llvm-project/blob/808142876c10b52e7ee57cdc6dcf0acc5c97c1b7/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp#L1298 > > | DeclContext parsing ]] just to find out the function [[ > > https://github.com/llvm/llvm-project/blob/808142876c10b52e7ee57cdc6dcf0acc5c97c1b7/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp#L1304 > > | is a method ]] and must be thrown away. > > > > The motivation is pretty much the same as for > > https://reviews.llvm.org/D70846. > > > > Does it make sense? > I think I see what you are saying - in the test case below, FULL should be > consistent with FULL-INDEXED. Let me remove the IsMethod check and merge the > FULL and FULL-INDEXED test cases below. Yes, that's exactly what I meant. :) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73191/new/ https://reviews.llvm.org/D73191 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits