summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2013-06-19 21:37:13 +0000
committerDavid Blaikie <dblaikie@gmail.com>2013-06-19 21:37:13 +0000
commit3df7d2f70bb316ebeec8a8c862b3da5386fbb145 (patch)
treeefdb44c6da2587da53aee3079c914e688692fc13 /test
parentba54bca472a15d0657e1b88776f7069042b60b4e (diff)
downloadllvm-3df7d2f70bb316ebeec8a8c862b3da5386fbb145.tar.gz
llvm-3df7d2f70bb316ebeec8a8c862b3da5386fbb145.tar.bz2
llvm-3df7d2f70bb316ebeec8a8c862b3da5386fbb145.tar.xz
llvm-dwarfdump: Add support for dumping the .debug_loc section
This is a basic implementation - we still don't have any support (that I know of) for dumping DWARF expressions in a meaningful way, so the location information itself is just printed as a sequence of bytes as we do elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184361 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp13
-rw-r--r--test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.obin0 -> 2604 bytes
-rw-r--r--test/DebugInfo/dwarfdump-debug-loc-simple.test26
3 files changed, 39 insertions, 0 deletions
diff --git a/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp b/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp
new file mode 100644
index 0000000000..04a0b20cc2
--- /dev/null
+++ b/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp
@@ -0,0 +1,13 @@
+// clang -c -g -o dwarfdump-test-loc-list-32bit.elf.o -m32 dwarfdump-test-loc-list-32bit.elf.cpp
+
+namespace pr14763 {
+struct foo {
+ foo(const foo&);
+};
+
+foo func(bool b, foo f, foo g) {
+ if (b)
+ return f;
+ return g;
+}
+}
diff --git a/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.o b/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.o
new file mode 100644
index 0000000000..25d10b9809
--- /dev/null
+++ b/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.o
Binary files differ
diff --git a/test/DebugInfo/dwarfdump-debug-loc-simple.test b/test/DebugInfo/dwarfdump-debug-loc-simple.test
new file mode 100644
index 0000000000..f38be6dc8f
--- /dev/null
+++ b/test/DebugInfo/dwarfdump-debug-loc-simple.test
@@ -0,0 +1,26 @@
+RUN: llvm-dwarfdump %p/Inputs/dwarfdump-test-loc-list-32bit.elf.o | FileCheck %s
+Note: the input file was generated from Inputs/dwarfdump-test-loc-list-32bit.elf.cpp
+
+CHECK: .debug_info
+CHECK: DW_AT_name{{.*}}"f"
+CHECK: DW_AT_location{{.*}}([[F_LOC:0x[0-9a-f]*]])
+CHECK: DW_AT_name{{.*}}"g"
+CHECK: DW_AT_location{{.*}}([[G_LOC:0x[0-9a-f]*]])
+CHECK: .debug_loc contents:
+CHECK-NEXT: [[F_LOC]]: Begining address offset: 0x0000000000000000
+CHECK-NEXT: Ending address offset: 0x0000000000000023
+this is actually the wrong location due to PR14763, but that doesn't matter for
+the purposes of testing dwarfdump
+CHECK-NEXT: Location description: 51
+CHECK-NEXT: {{^$}}
+CHECK-NEXT: Begining address offset: 0x0000000000000023
+CHECK-NEXT: Ending address offset: 0x000000000000005d
+CHECK-NEXT: Location description: 75 70
+CHECK-NEXT: {{^$}}
+CHECK-NEXT: [[G_LOC]]: Begining address offset: 0x0000000000000000
+CHECK-NEXT: Ending address offset: 0x0000000000000020
+CHECK-NEXT: Location description: 50
+CHECK-NEXT: {{^$}}
+CHECK-NEXT: Begining address offset: 0x0000000000000020
+CHECK-NEXT: Ending address offset: 0x000000000000005d
+CHECK-NEXT: Location description: 75 74