[PATCH] D93925: [ELF] Drop '>>> defined in ' for locations of linker synthesized symbols
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 30 09:16:47 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGb0d6bebe90dd: [ELF] Drop '>>> defined in ' for locations of linker synthesized symbols (authored by MaskRay).
Changed prior to commit:
https://reviews.llvm.org/D93925?vs=314030&id=314126#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D93925/new/
https://reviews.llvm.org/D93925
Files:
lld/ELF/Relocations.cpp
lld/test/ELF/x86-64-gotpc-err.s
Index: lld/test/ELF/x86-64-gotpc-err.s
===================================================================
--- lld/test/ELF/x86-64-gotpc-err.s
+++ lld/test/ELF/x86-64-gotpc-err.s
@@ -3,23 +3,24 @@
# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a.s -o %t/a.o
# RUN: not ld.lld -T %t/lds %t/a.o -o /dev/null 2>&1 | FileCheck %s
-# CHECK: error: {{.*}}:(.text+0x2): relocation R_X86_64_GOTPCRELX out of range: 2147483655 is not in [-2147483648, 2147483647]; references data
-# CHECK: error: {{.*}}:(.text+0x9): relocation R_X86_64_REX_GOTPCRELX out of range: 2147483648 is not in [-2147483648, 2147483647]; references data
+## Test diagnostics for GOTPCRELX overflows. In addition, test that there is no
+## `>>> defined in` for linker synthesized __stop_* symbols (there is no
+## associated file or linker script line number).
+
+# CHECK: error: {{.*}}:(.text+0x2): relocation R_X86_64_GOTPCRELX out of range: 2147483655 is not in [-2147483648, 2147483647]; references __stop_data
+# CHECK-NEXT: error: {{.*}}:(.text+0x9): relocation R_X86_64_REX_GOTPCRELX out of range: 2147483648 is not in [-2147483648, 2147483647]; references __stop_data
# CHECK-NOT: error:
#--- a.s
- movl data at GOTPCREL(%rip), %eax # out of range
- movq data at GOTPCREL(%rip), %rax # out of range
- movq data at GOTPCREL(%rip), %rax # in range
+ movl __stop_data at GOTPCREL(%rip), %eax # out of range
+ movq __stop_data at GOTPCREL(%rip), %rax # out of range
+ movq __stop_data at GOTPCREL(%rip), %rax # in range
-.data
+.section data,"aw", at progbits
.space 13
-.globl data
-data:
- .long 0
#--- lds
SECTIONS {
.text 0x200000 : { *(.text) }
- .data 0x80200000 : { *(.data) }
+ data 0x80200000 : { *(data) }
}
Index: lld/ELF/Relocations.cpp
===================================================================
--- lld/ELF/Relocations.cpp
+++ lld/ELF/Relocations.cpp
@@ -74,12 +74,12 @@
}
static std::string getDefinedLocation(const Symbol &sym) {
- std::string msg = "\n>>> defined in ";
+ const char msg[] = "\n>>> defined in ";
if (sym.file)
- msg += toString(sym.file);
- else if (Optional<std::string> loc = getLinkerScriptLocation(sym))
- msg += *loc;
- return msg;
+ return msg + toString(sym.file);
+ if (Optional<std::string> loc = getLinkerScriptLocation(sym))
+ return msg + *loc;
+ return "";
}
// Construct a message in the following format.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93925.314126.patch
Type: text/x-patch
Size: 2385 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201230/83515fe6/attachment.bin>
More information about the llvm-commits
mailing list