diff options
| author | Jaroslav Sevcik <jarin@google.com> | 2021-08-04 11:51:16 +0200 |
|---|---|---|
| committer | Raphael Isemann <teemperor@gmail.com> | 2021-08-04 12:50:13 +0200 |
| commit | f968bd77bbcf142afdb74750e53485b044de3e5f (patch) | |
| tree | 3589d770d3e9a3d2bcc10134c82b74def5dfcd84 /lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp | |
| parent | 7f163931b9421c61fe1859fd8b2d97e7f5a39c73 (diff) | |
Reland "[lldb/DWARF] Only match mangled name in full-name function lookup (with accelerators)"
Summary:
In the spirit of https://reviews.llvm.org/D70846, we only return functions with
matching mangled name from Apple/DebugNamesDWARFIndex::GetFunction if
eFunctionNameTypeFull is requested.
This speeds up lookup in the presence of large amount of class methods of the
same name (a typical examples would be constructors of templates with many
instantiations or overloaded operators).
Reviewers: labath, teemperor
Reviewed By: labath, teemperor
Subscribers: aprantl, arphaman, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D73191
Diffstat (limited to 'lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp')
| -rw-r--r-- | lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp b/lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp index 0adf7b733408..c4fdee113eab 100644 --- a/lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp +++ b/lldb/test/Shell/SymbolFile/DWARF/x86/find-basic-function.cpp @@ -10,6 +10,10 @@ // RUN: FileCheck --check-prefix=FULL %s // RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ // RUN: FileCheck --check-prefix=FULL-MANGLED %s +// RUN: lldb-test symbols --name=_ZN3bar3baz3fooEv --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-NAMESPACE %s +// RUN: lldb-test symbols --name=_ZN4sbar3fooEi --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-METHOD %s // RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ // RUN: FileCheck --check-prefix=CONTEXT %s // RUN: lldb-test symbols --name=not_there --find=function %t | \ @@ -21,9 +25,13 @@ // RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ // RUN: FileCheck --check-prefix=METHOD %s // RUN: lldb-test symbols --name=foo --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL-INDEXED %s +// RUN: FileCheck --check-prefix=FULL %s // RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ // RUN: FileCheck --check-prefix=FULL-MANGLED %s +// RUN: lldb-test symbols --name=_ZN3bar3baz3fooEv --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-NAMESPACE %s +// RUN: lldb-test symbols --name=_ZN4sbar3fooEi --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-METHOD %s // RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ // RUN: FileCheck --check-prefix=CONTEXT %s // RUN: lldb-test symbols --name=not_there --find=function %t | \ @@ -37,9 +45,13 @@ // RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ // RUN: FileCheck --check-prefix=METHOD %s // RUN: lldb-test symbols --name=foo --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL-INDEXED %s +// RUN: FileCheck --check-prefix=FULL %s // RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ // RUN: FileCheck --check-prefix=FULL-MANGLED %s +// RUN: lldb-test symbols --name=_ZN3bar3baz3fooEv --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-NAMESPACE %s +// RUN: lldb-test symbols --name=_ZN4sbar3fooEi --find=function --function-flags=full %t | \ +// RUN: FileCheck --check-prefix=FULL-MANGLED-METHOD %s // RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ // RUN: FileCheck --check-prefix=CONTEXT %s // RUN: lldb-test symbols --name=not_there --find=function %t | \ @@ -58,20 +70,17 @@ // METHOD-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" // METHOD-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" -// FULL-INDEXED: Found 7 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: // FULL-MANGLED: Found 1 functions: // FULL-MANGLED-DAG: name = "foo(int)", mangled = "_Z3fooi" +// FULL-MANGLED-NAMESPACE: Found 1 functions: +// FULL-MANGLED-NAMESPACE-DAG: name = "bar::baz::foo()", mangled = "_ZN3bar3baz3fooEv" + +// FULL-MANGLED-METHOD: Found 1 functions: +// FULL-MANGLED-METHOD-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" + // CONTEXT: Found 1 functions: // CONTEXT-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" |
