diff options
| author | Zachary Turner <zturner@google.com> | 2018-12-07 19:34:02 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2018-12-07 19:34:02 +0000 |
| commit | a42bbe3981645c03222161e7d292fdb794f14f56 (patch) | |
| tree | 6f454ff41cc5ba7696a5101b49fd00fcede0e089 /lldb/lit/SymbolFile/NativePDB | |
| parent | 992fc88111578d04b21ed1f9c5ade82a502423d5 (diff) | |
| download | bcm5719-llvm-a42bbe3981645c03222161e7d292fdb794f14f56.tar.gz bcm5719-llvm-a42bbe3981645c03222161e7d292fdb794f14f56.zip | |
[NativePDB] Reconstruct function declarations from debug info.
Previously we would create an lldb::Function object for each function
parsed, but we would not add these to the clang AST. This is a first
step towards getting local variable support working, as we first need an
AST decl so that when we create local variable entries, they have the
proper DeclContext.
Differential Revision: https://reviews.llvm.org/D55384
llvm-svn: 348631
Diffstat (limited to 'lldb/lit/SymbolFile/NativePDB')
| -rw-r--r-- | lldb/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit | 8 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit (renamed from lldb/lit/SymbolFile/NativePDB/Inputs/ast-reconstruction.lldbinit) | 0 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp | 7 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/NativePDB/ast-functions.cpp | 29 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/NativePDB/ast-types.cpp (renamed from lldb/lit/SymbolFile/NativePDB/ast-reconstruction.cpp) | 2 |
5 files changed, 45 insertions, 1 deletions
diff --git a/lldb/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit b/lldb/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit new file mode 100644 index 00000000000..c25d96c531d --- /dev/null +++ b/lldb/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit @@ -0,0 +1,8 @@ + +break set -n main +break set -n static_fn +break set -n varargs_fn + +target modules dump ast + +quit diff --git a/lldb/lit/SymbolFile/NativePDB/Inputs/ast-reconstruction.lldbinit b/lldb/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit index 3c0cf6d3cdf..3c0cf6d3cdf 100644 --- a/lldb/lit/SymbolFile/NativePDB/Inputs/ast-reconstruction.lldbinit +++ b/lldb/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit diff --git a/lldb/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp b/lldb/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp new file mode 100644 index 00000000000..b8154168aff --- /dev/null +++ b/lldb/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp @@ -0,0 +1,7 @@ +// clang-format off +// REQUIRES: msvc + +// RUN: %build --compiler=msvc --nodefaultlib -o %t.exe -- %S/ast-functions.cpp + +// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ +// RUN: %p/Inputs/ast-functions.lldbinit 2>&1 | FileCheck %S/ast-functions.cpp diff --git a/lldb/lit/SymbolFile/NativePDB/ast-functions.cpp b/lldb/lit/SymbolFile/NativePDB/ast-functions.cpp new file mode 100644 index 00000000000..05c80c7298f --- /dev/null +++ b/lldb/lit/SymbolFile/NativePDB/ast-functions.cpp @@ -0,0 +1,29 @@ +// clang-format off +// REQUIRES: lld + +// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s + +// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ +// RUN: %p/Inputs/ast-functions.lldbinit 2>&1 | FileCheck %s + +static int static_fn() { + return 42; +} + +int varargs_fn(int x, int y, ...) { + return x + y; +} + +int main(int argc, char **argv) { + return static_fn() + varargs_fn(argc, argc); +} + +// CHECK: TranslationUnitDecl +// CHECK-NEXT: |-FunctionDecl {{.*}} main 'int (int, char **)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} argc 'int' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} argv 'char **' +// CHECK-NEXT: |-FunctionDecl {{.*}} static_fn 'int ()' static +// CHECK-NEXT: |-FunctionDecl {{.*}} varargs_fn 'int (int, int, ...)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} x 'int' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} y 'int' +// CHECK-NEXT: `-<undeserialized declarations> diff --git a/lldb/lit/SymbolFile/NativePDB/ast-reconstruction.cpp b/lldb/lit/SymbolFile/NativePDB/ast-types.cpp index dae6e6195fa..224c7c26e84 100644 --- a/lldb/lit/SymbolFile/NativePDB/ast-reconstruction.cpp +++ b/lldb/lit/SymbolFile/NativePDB/ast-types.cpp @@ -4,7 +4,7 @@ // Test various interesting cases for AST reconstruction. // RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s // RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/ast-reconstruction.lldbinit 2>&1 | FileCheck %s +// RUN: %p/Inputs/ast-types.lldbinit 2>&1 | FileCheck %s // Test trivial versions of each tag type. class TrivialC {}; |

