[ELF] - Check we able to report function symbols that encloses a location in error...
authorGeorge Rimar <grimar@accesssoftek.com>
Tue, 17 Jul 2018 09:37:53 +0000 (09:37 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Tue, 17 Jul 2018 09:37:53 +0000 (09:37 +0000)
InputSectionBase::getLocation() have the following block of the code which
is uncovered by our test cases:
https://github.com/llvm-mirror/lld/blob/master/ELF/InputSection.cpp#L238

Patch adds a test to trigger this branch.

llvm-svn: 337256

lld/test/ELF/x86-64-reloc-error2.s [new file with mode: 0644]

diff --git a/lld/test/ELF/x86-64-reloc-error2.s b/lld/test/ELF/x86-64-reloc-error2.s
new file mode 100644 (file)
index 0000000..d49b675
--- /dev/null
@@ -0,0 +1,14 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s
+
+## Check we are able to find a function symbol that encloses
+## a given location when reporting error messages.
+# CHECK: {{.*}}.o:(function func): relocation R_X86_64_32S out of range: -281474974609408 is not in [-2147483648, 2147483647]
+
+.section .text.func, "ax", %progbits
+.globl func
+.type func,@function
+.size func, 0x10
+func:
+ movq func - 0x1000000000000, %rdx