diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp @@ -39,8 +39,8 @@ if (!SymbolFileDWARF::DIEInDeclContext(&parent_decl_ctx, die)) return; - // In case of a full match, we just insert everything we find. - if (name_type_mask & eFunctionNameTypeFull) { + // In case of a full match, we insert all non-methods we find. + if (name_type_mask & eFunctionNameTypeFull && !die.IsMethod()) { dies.push_back(die); return; } diff --git a/lldb/test/Shell/SymbolFile/DWARF/find-basic-function.cpp b/lldb/test/Shell/SymbolFile/DWARF/find-basic-function.cpp --- a/lldb/test/Shell/SymbolFile/DWARF/find-basic-function.cpp +++ b/lldb/test/Shell/SymbolFile/DWARF/find-basic-function.cpp @@ -58,14 +58,11 @@ // METHOD-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" // METHOD-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" -// FULL-INDEXED: Found 7 functions: +// FULL-INDEXED: Found 4 functions: // FULL-INDEXED-DAG: name = "foo()", mangled = "_Z3foov" // FULL-INDEXED-DAG: name = "foo(int)", mangled = "_Z3fooi" // FULL-INDEXED-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" // FULL-INDEXED-DAG: name = "bar::baz::foo()", mangled = "_ZN3bar3baz3fooEv" -// FULL-INDEXED-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" -// FULL-INDEXED-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" -// FULL-INDEXED-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" // FULL: Found 0 functions: