summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools
diff options
context:
space:
mode:
authorFrederic Riss <friss@apple.com>2017-02-09 19:41:55 +0000
committerFrederic Riss <friss@apple.com>2017-02-09 19:41:55 +0000
commit1488766bdfc4115d17a29a7e45054b6ca776a075 (patch)
treef5134079279242a006a6c8fe112fd75dee4a06fa /llvm/test/tools
parent74bda4d591022e52f095755b41687c155f716bcc (diff)
downloadbcm5719-llvm-1488766bdfc4115d17a29a7e45054b6ca776a075.tar.gz
bcm5719-llvm-1488766bdfc4115d17a29a7e45054b6ca776a075.zip
[dsymutil] Fix handling of empty CUs in LTO links.
r288399 introduced the DIEUnit class, and in the process broke the corner case where dsymutil generates an empty CU during an LTO link. This restores the logic and adds a test for the corner case. llvm-svn: 294618
Diffstat (limited to 'llvm/test/tools')
-rw-r--r--llvm/test/tools/dsymutil/X86/generate-empty-CU.test33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/tools/dsymutil/X86/generate-empty-CU.test b/llvm/test/tools/dsymutil/X86/generate-empty-CU.test
new file mode 100644
index 00000000000..233611460b6
--- /dev/null
+++ b/llvm/test/tools/dsymutil/X86/generate-empty-CU.test
@@ -0,0 +1,33 @@
+# RUN: llvm-dsymutil -f -o - -oso-prepend-path=%p/.. -y %s | llvm-dwarfdump - | FileCheck %s
+
+# This test on links the Dwarf for an LTO binary and on purpose doesn't retain
+# any symbol in the second CU out of 3. This is the only case where dsymutil
+# will generate an empty CU and it requires special handling.
+
+---
+triple: 'x86_64-apple-darwin'
+objects:
+ - filename: /Inputs/basic-lto.macho.x86_64.o
+ timestamp: 1417654896
+ symbols:
+ - { sym: _main, objAddr: 0x0000000000000000, binAddr: 0x0000000100000F40, size: 0x00000010 }
+ - { sym: _bar, objAddr: 0x0000000000000050, binAddr: 0x0000000100000F90, size: 0x00000024 }
+...
+
+.debug_info contents:
+CHECK: Compile Unit: length = 0x0000007d version = 0x0002 abbr_offset = 0x0000 addr_size = 0x08 (next unit at 0x00000081)
+
+CHECK: DW_TAG_compile_unit
+CHECK: DW_AT_name {{.*}} "basic1.c"
+CHECK: DW_TAG_subprogram
+ DW_AT_name {{.*}} "main"
+
+CHECK: Compile Unit: length = 0x00000007 version = 0x0002 abbr_offset = 0x0000 addr_size = 0x08 (next unit at 0x0000008c)
+
+CHECK: Compile Unit: length = 0x00000089 version = 0x0002 abbr_offset = 0x0000 addr_size = 0x08 (next unit at 0x00000119)
+
+CHECK: DW_TAG_compile_unit
+CHECK: DW_AT_name {{.*}} "basic3.c"
+
+CHECK: DW_TAG_subprogram [7] *
+CHECK: DW_AT_name {{.*}} = "bar"
OpenPOWER on IntegriCloud