diff options
| author | Pavel Labath <labath@google.com> | 2018-05-21 10:09:22 +0000 |
|---|---|---|
| committer | Pavel Labath <labath@google.com> | 2018-05-21 10:09:22 +0000 |
| commit | becc204633c2f4b67df1a2f8892116777be8c575 (patch) | |
| tree | f2eb74f110c56dbc0439d21ca3c71dcd51d5178d /lldb/lit/SymbolFile | |
| parent | 5aa7cdfd7094b9f26be87153f5c7eb236b98507f (diff) | |
| download | bcm5719-llvm-becc204633c2f4b67df1a2f8892116777be8c575.tar.gz bcm5719-llvm-becc204633c2f4b67df1a2f8892116777be8c575.zip | |
Improve coverage of the apple-tables test
After closer examination, it turns out we mis-classify one of the
methods only if two of the structs have the same name. Since this was
meant to be a basic test, I rename one of the structs in the test so
that we have at least some coverage for the apple tables lookup.
Instead, I create an XFAILed test which specifically targets the
same-name case (and file a bug to track it).
llvm-svn: 332833
Diffstat (limited to 'lldb/lit/SymbolFile')
| -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(); +} |

