diff options
-rw-r--r-- | lldb/lit/SymbolFile/DWARF/find-basic-function.cpp | 12 | ||||
-rw-r--r-- | lldb/lit/SymbolFile/DWARF/find-method-local-struct.cpp | 22 |
2 files changed, 30 insertions, 4 deletions
diff --git a/lldb/lit/SymbolFile/DWARF/find-basic-function.cpp b/lldb/lit/SymbolFile/DWARF/find-basic-function.cpp index ec7b03574a0..08f6f7b7de1 100644 --- a/lldb/lit/SymbolFile/DWARF/find-basic-function.cpp +++ b/lldb/lit/SymbolFile/DWARF/find-basic-function.cpp @@ -16,6 +16,10 @@ // RUN: FileCheck --check-prefix=EMPTY %s // // RUN: clang %s -g -c -o %t --target=x86_64-apple-macosx +// RUN: lldb-test symbols --name=foo --find=function --function-flags=base %t | \ +// RUN: FileCheck --check-prefix=BASE %s +// 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 %s // RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ @@ -34,7 +38,7 @@ // METHOD: Found 3 functions: // METHOD-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" // METHOD-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" -// METHOD-DAG: name = "ffbar()::sbar::foo()", mangled = "_ZZ5ffbarvEN4sbar3fooEv" +// METHOD-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" // FULL: Found 7 functions: // FULL-DAG: name = "foo()", mangled = "_Z3foov" @@ -43,7 +47,7 @@ // FULL-DAG: name = "bar::baz::foo()", mangled = "_ZN3bar3baz3fooEv" // FULL-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" // FULL-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" -// FULL-DAG: name = "ffbar()::sbar::foo()", mangled = "_ZZ5ffbarvEN4sbar3fooEv" +// FULL-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" // FULL-MANGLED: Found 1 functions: // FULL-DAG: name = "foo(int)", mangled = "_Z3fooi" @@ -77,10 +81,10 @@ void sbar::foo() {} void sbar::foo(int) {} void ffbar() { - struct sbar { + struct sbaz { void foo() {} }; - sbar a; + sbaz a; a.foo(); } diff --git a/lldb/lit/SymbolFile/DWARF/find-method-local-struct.cpp b/lldb/lit/SymbolFile/DWARF/find-method-local-struct.cpp new file mode 100644 index 00000000000..55bdaa038d6 --- /dev/null +++ b/lldb/lit/SymbolFile/DWARF/find-method-local-struct.cpp @@ -0,0 +1,22 @@ +// llvm.org/pr37537 +// XFAIL: * + +// RUN: clang %s -g -c -o %t --target=x86_64-apple-macosx +// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ +// RUN: FileCheck %s + +// CHECK-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" +// CHECK-DAG: name = "ffbar()::sbar::foo()", mangled = "_ZZ5ffbarvEN4sbar3fooEv" + +struct sbar { + void foo(); +}; +void sbar::foo() {} + +void ffbar() { + struct sbar { + void foo() {} + }; + sbar a; + a.foo(); +} |