summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-symbolizer/Inputs
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2019-01-24 01:19:17 +0000
committerDavid Blaikie <dblaikie@gmail.com>2019-01-24 01:19:17 +0000
commit79c3d8b127bec1ec916d0c01f86863711bb036d7 (patch)
tree9cc69ad89ba17800946249703b7f2f450ac68398 /llvm/test/tools/llvm-symbolizer/Inputs
parentcea84ab93aeb079a358ab1c8aeba6d9140ef8b47 (diff)
downloadbcm5719-llvm-79c3d8b127bec1ec916d0c01f86863711bb036d7.tar.gz
bcm5719-llvm-79c3d8b127bec1ec916d0c01f86863711bb036d7.zip
llvm-symbolizer: Extract individual test cases now that it's easier to use directly (without a piped input file)
Pulling out the split-dwarf tests by way of example of how I think llvm-symbolizer should be tested going forward. Open to debate/discussion, though. llvm-svn: 352004
Diffstat (limited to 'llvm/test/tools/llvm-symbolizer/Inputs')
-rwxr-xr-xllvm/test/tools/llvm-symbolizer/Inputs/dwo-testbin0 -> 9579 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.cc17
-rwxr-xr-xllvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.elf-x86_64bin0 -> 8693 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.cpp10
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.dwobin0 -> 1056 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.obin0 -> 3352 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.cpp22
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.obin0 -> 4380 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o.dwpbin0 -> 1576 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.cpp15
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.dwobin0 -> 1104 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.obin0 -> 3656 bytes
-rwxr-xr-xllvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-testbin0 -> 9576 bytes
-rwxr-xr-xllvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test-nogmltbin0 -> 9496 bytes
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cc20
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cpp13
-rw-r--r--llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.dwobin0 -> 1064 bytes
17 files changed, 97 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/dwo-test b/llvm/test/tools/llvm-symbolizer/Inputs/dwo-test
new file mode 100755
index 00000000000..c28c3d277a7
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/dwo-test
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.cc b/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.cc
new file mode 100644
index 00000000000..a585bf9c008
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.cc
@@ -0,0 +1,17 @@
+static inline int inlined_f() {
+ volatile int x = 2;
+ return x;
+}
+
+int main() {
+ return inlined_f();
+}
+
+// Build instructions:
+// $ mkdir /tmp/dbginfo
+// $ cp fission-ranges.cc /tmp/dbginfo/
+// $ cd /tmp/dbginfo
+// $ gcc -gsplit-dwarf -O2 -fPIC fission-ranges.cc -c -o obj2.o
+// $ clang -gsplit-dwarf -O2 -fsanitize=address -fPIC -Dmain=foo fission-ranges.cc -c -o obj1.o
+// $ gcc obj1.o obj2.o -shared -o <output>
+// $ objcopy --remove-section=.debug_aranges <output>
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.elf-x86_64 b/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.elf-x86_64
new file mode 100755
index 00000000000..3d2fd79dd74
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/fission-ranges.elf-x86_64
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.cpp b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.cpp
new file mode 100644
index 00000000000..e5255e847e8
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.cpp
@@ -0,0 +1,10 @@
+void f1();
+__attribute__((always_inline)) void f2() {
+ f1();
+}
+void f3() {
+ f2();
+}
+
+// $ clang++ split-dwarf-addr-object-relocation.cpp -gsplit-dwarf -c Xclang \
+// -fdebug-compilation-dir -Xclang .
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.dwo b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.dwo
new file mode 100644
index 00000000000..814b80246ce
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.dwo
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.o b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.o
new file mode 100644
index 00000000000..b77c31b9579
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-addr-object-relocation.o
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.cpp b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.cpp
new file mode 100644
index 00000000000..629d8b6aa8f
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.cpp
@@ -0,0 +1,22 @@
+void f1() {}
+__attribute__((always_inline)) inline void f2() {
+ f1();
+}
+// throw a gap in the address range to force use of DW_AT_ranges, ranges_base,
+// range contribution in the .dwo file, etc.
+__attribute__((nodebug)) void gap() {
+}
+int main() {
+ f2();
+}
+
+// To produce split-dwarf-dwp.o{,dwp}, Create another file that has ranges, so
+// the ranges_base of the CU for split-dwarf-dwp.cpp is non-zero.
+//
+// $ cat > other.cpp
+// void other1() {}
+// __attribute__((nodebug)) void other2() {}
+// void other3() {}
+// $ clang++ other.cpp split-dwarf-dwp.cpp -gsplit-dwarf -c -Xclang -fdebug-compilation-dir -Xclang . -fno-split-dwarf-inlining
+// $ llvm-dwp other.dwo split-dwarf-dwp.dwo -o test/DebugInfo/Inputs/split-dwarf-dwp.o.dwp
+// $ ld -r other.o split-dwarf-dwp.o -o test/DebugInfo/Inputs/split-dwarf-dwp.o
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o
new file mode 100644
index 00000000000..4df6455ce8b
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o.dwp b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o.dwp
new file mode 100644
index 00000000000..17018f01b03
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-dwp.o.dwp
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.cpp b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.cpp
new file mode 100644
index 00000000000..85276ca4b2c
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.cpp
@@ -0,0 +1,15 @@
+void f1();
+__attribute__((always_inline)) inline void f2() {
+ f1();
+}
+void f3() {
+ f2();
+}
+
+// $ cat > other.cpp
+// extern int i;
+// int i;
+// $ clang++ other.cpp split-dwarf-multiple-cu.cpp -g -c -Xclang \
+// -fdebug-compilation-dir -Xclang . -emit-llvm -S
+// $ llvm-link other.ll split-dwarf-multiple-cu.ll -o split-dwarf-multiple-cu.bc
+// $ clang++ -gsplit-dwarf split-dwarf-multiple-cu.bc -c
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.dwo b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.dwo
new file mode 100644
index 00000000000..8aca4cb1a5a
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.dwo
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.o b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.o
new file mode 100644
index 00000000000..4cb64b54a7d
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-multiple-cu.o
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test
new file mode 100755
index 00000000000..a7024cce4b9
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test-nogmlt b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test-nogmlt
new file mode 100755
index 00000000000..6f7627eb607
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test-nogmlt
Binary files differ
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cc b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cc
new file mode 100644
index 00000000000..b41423dd815
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cc
@@ -0,0 +1,20 @@
+void f1() {
+}
+
+inline __attribute__((always_inline)) void f2() {
+ f1();
+}
+
+int main() {
+ f2();
+}
+
+// Build instructions:
+// 1) clang++ -### -gsplit-dwarf split-dwarf-test.cc -o split-dwarf-test
+// 2) Replace the value "-fdebug-compilation-dir" flag to "Output"
+// (this is the temp directory used by lit).
+// 3) Manually run clang-cc1, objcopy and ld invocations.
+// 4) Copy the binary and .dwo file to the Inputs directory. Make sure the
+// .dwo file will be available for symbolizer (use test RUN-lines to copy
+// the .dwo file to a directory
+// <execution_directory>/<directory_provided_in_fdebug_compilation_dir>.
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cpp b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cpp
new file mode 100644
index 00000000000..8c85330d89c
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.cpp
@@ -0,0 +1,13 @@
+void f1() {}
+__attribute__((always_inline)) inline void f2() {
+ f1();
+}
+int main() {
+ f2();
+}
+
+// $ clang++ split-dwarf-test.cpp -gsplit-dwarf -Xclang \
+// -fdebug-compilation-dir -Xclang . -o split-dwarf-test
+// $ clang++ split-dwarf-test.cpp -gsplit-dwarf -Xclang \
+// -fdebug-compilation-dir -Xclang . -fno-split-dwarf-inlining \
+// -o split-dwarf-test-nogmlt
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.dwo b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.dwo
new file mode 100644
index 00000000000..f123d732301
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/split-dwarf-test.dwo
Binary files differ
OpenPOWER on IntegriCloud