[LLD][ELF] - Fix bug when reporting memory intersections.

rangeToString() takes addres and length,
previously it was called incorrectly.

llvm-svn: 338956
This commit is contained in:
George Rimar
2018-08-04 10:34:52 +00:00
parent 721d95713a
commit 434341be5b
2 changed files with 3 additions and 3 deletions

View File

@@ -2050,7 +2050,7 @@ template <class ELFT> void Writer<ELFT>::assignFileOffsets() {
continue;
if ((Sec->Offset > FileSize) || (Sec->Offset + Sec->Size > FileSize))
error("unable to place section " + Sec->Name + " at file offset " +
rangeToString(Sec->Offset, Sec->Offset + Sec->Size) +
rangeToString(Sec->Offset, Sec->Size) +
"; check your linker script for overflows");
}
}

View File

@@ -7,7 +7,7 @@ PHDRS {
ph_text PT_LOAD FILEHDR PHDRS FLAGS (0x1 | 0x4);
}
SECTIONS {
SECTIONS {
. = 0xffffffff20000000;
.text : { *(.text*) } : ph_text
.test 0x1000 : { BYTE(0) }
@@ -18,5 +18,5 @@ SECTIONS {
## with VA 0xffffffff20000000. That might be technically correct, but most probably
## is a result of a broken script file and causes file offset calculation overflow.
## It seems we do not have to support it, so we don't and we report an error in this case.
# ERR: error: unable to place section .text at file offset [0xFFFFFFFF20000000, 0xFFFFFFFE40000000]; check your linker script for overflows
# ERR: error: unable to place section .text at file offset [0xFFFFFFFF20000000, 0xFFFFFFFF20000000]; check your linker script for overflows
# ERR-NOT: unable to place section .bss