jarin marked an inline comment as done.
jarin added inline comments.

================
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:
> 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.


Repository:
  rG LLVM Github Monorepo

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