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

Reply via email to