[ELF] - One more test case for .eh_frame_hdr.
authorGeorge Rimar <grimar@accesssoftek.com>
Thu, 19 Jul 2018 14:27:19 +0000 (14:27 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Thu, 19 Jul 2018 14:27:19 +0000 (14:27 +0000)
This is to test the following error message:
https://github.com/llvm-mirror/lld/blob/master/ELF/SyntheticSections.cpp#L544

Which occurs when LLD meets unsupported address encoding when scans
.eh_frame to build .eh_frame_hdr section.

llvm-svn: 337458

lld/test/ELF/eh-frame-value-format9.s [new file with mode: 0644]

diff --git a/lld/test/ELF/eh-frame-value-format9.s b/lld/test/ELF/eh-frame-value-format9.s
new file mode 100644 (file)
index 0000000..1b9ce69
--- /dev/null
@@ -0,0 +1,28 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: not ld.lld --eh-frame-hdr %t.o -o %t 2>&1 | FileCheck %s
+# CHECK: error: unknown FDE size encoding
+
+.section .eh_frame, "ax"
+  .long 12   # Size
+  .long 0x00 # ID
+  .byte 0x01 # Version.
+  
+  .byte 0x52 # Augmentation string: 'R','\0'
+  .byte 0x00
+  
+# Code and data alignment factors.
+  .byte 0x01 # LEB128
+  .byte 0x01 # LEB128
+
+# Return address register.
+  .byte 0x01 # LEB128
+
+  .byte 0xFE # 'R' value: invalid <0xFE>
+
+  .byte 0xFF
+
+  .long 12  # Size
+  .long 0x14 # ID
+  .quad .eh_frame