Author: hans Date: Fri Aug 17 00:08:25 2018 New Revision: 339986 URL: http://llvm.org/viewvc/llvm-project?rev=339986&view=rev Log: Merging r339904: ------------------------------------------------------------------------ r339904 | maskray | 2018-08-16 19:22:02 +0200 (Thu, 16 Aug 2018) | 11 lines
[ELF] mergeSections: remove non-alive MergeInputSection Summary: This makes it conform to what the comment says. Otherwise when getErrPlace() is called afterwards, cast<InputSection>(D) will cause incompatible cast as MergeInputSection is not a subclass of InputSection. Reviewers: ruiu, grimar, espindola, pcc Reviewed By: grimar Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D50742 ------------------------------------------------------------------------ Modified: lld/branches/release_70/ (props changed) lld/branches/release_70/ELF/SyntheticSections.cpp lld/branches/release_70/test/ELF/x86-64-reloc-error2.s Propchange: lld/branches/release_70/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Aug 17 00:08:25 2018 @@ -1 +1 @@ -/lld/trunk:338679,338684,338697,338699,339049,339058,339075 +/lld/trunk:338679,338684,338697,338699,339049,339058,339075,339904 Modified: lld/branches/release_70/ELF/SyntheticSections.cpp URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/ELF/SyntheticSections.cpp?rev=339986&r1=339985&r2=339986&view=diff ============================================================================== --- lld/branches/release_70/ELF/SyntheticSections.cpp (original) +++ lld/branches/release_70/ELF/SyntheticSections.cpp Fri Aug 17 00:08:25 2018 @@ -2929,8 +2929,10 @@ void elf::mergeSections() { // We do not want to handle sections that are not alive, so just remove // them instead of trying to merge. - if (!MS->Live) + if (!MS->Live) { + S = nullptr; continue; + } StringRef OutsecName = getOutputSectionName(MS); uint32_t Alignment = std::max<uint32_t>(MS->Alignment, MS->Entsize); Modified: lld/branches/release_70/test/ELF/x86-64-reloc-error2.s URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/test/ELF/x86-64-reloc-error2.s?rev=339986&r1=339985&r2=339986&view=diff ============================================================================== --- lld/branches/release_70/test/ELF/x86-64-reloc-error2.s (original) +++ lld/branches/release_70/test/ELF/x86-64-reloc-error2.s Fri Aug 17 00:08:25 2018 @@ -1,14 +1,18 @@ # 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 +# RUN: not ld.lld --entry=func --gc-sections %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] +# This mergeable section will be garbage collected. We had a crash issue in that case. Test it. +.section .rodata.str1,"aMS",@progbits,1 +.asciz "a" + .section .text.func, "ax", %progbits .globl func .type func,@function -.size func, 0x10 func: - movq func - 0x1000000000000, %rdx + movq $func - 0x1000000000000, %rdx +.size func, .-func _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits