summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2019-08-07 22:05:33 +0000
committerDavid Blaikie <dblaikie@gmail.com>2019-08-07 22:05:33 +0000
commit77ddf6af2b20105bffaabe93a7ecff40dc0707ee (patch)
treecc2748473663967d5af6b394d0f553765890aa5d
parent72c940417aa56bbdc08d6f731b22dfa85d32b630 (diff)
downloadbcm5719-llvm-77ddf6af2b20105bffaabe93a7ecff40dc0707ee.tar.gz
bcm5719-llvm-77ddf6af2b20105bffaabe93a7ecff40dc0707ee.zip
Add a test demonstrating DWARF parse failures are not causing lld to exit non-zero
This bug was/is masking other issues - committing this to demonstrate the problem/track fixing it. llvm-svn: 368220
-rw-r--r--lld/test/ELF/gdb-index-parse-fail.s30
1 files changed, 30 insertions, 0 deletions
diff --git a/lld/test/ELF/gdb-index-parse-fail.s b/lld/test/ELF/gdb-index-parse-fail.s
new file mode 100644
index 00000000000..2f4c00795b7
--- /dev/null
+++ b/lld/test/ELF/gdb-index-parse-fail.s
@@ -0,0 +1,30 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t1.o
+# RUN: ld.lld --gdb-index %t1.o -o %t 2>&1 | FileCheck %s
+
+# FIXME: ld.lld should return non-zero (add a "NOT" to start once this bug is fixed)
+
+# CHECK: error: invalid contribution to string offsets table
+
+.section .debug_abbrev,"",@progbits
+ .byte 1 # Abbreviation Code
+ .byte 17 # DW_TAG_compile_unit
+ .byte 0 # DW_CHILDREN_no
+ .byte 114 # DW_AT_str_offsets_base
+ .byte 23 # DW_FORM_sec_offset
+ .byte 0 # EOM(1)
+ .byte 0 # EOM(2)
+ .byte 0 # EOM(3)
+
+.section .debug_info,"",@progbits
+ .long .Lunit_end0-.Lunit_begin0 # Length of Unit
+.Lunit_begin0:
+ .short 5 # DWARF version number
+ .byte 1 # DWARF Unit Type
+ .byte 8 # Address Size (in bytes)
+ .long .debug_abbrev # Offset Into Abbrev. Section
+
+ .byte 1 # Abbrev [1] 0xc:0x43 DW_TAG_compile_unit
+ .long 0 # DW_AT_str_offsets_base
+.Lunit_end0:
+
OpenPOWER on IntegriCloud