[lld] r282663 - Read addend from the correct location.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 28 18:20:40 PDT 2016


Author: rafael
Date: Wed Sep 28 20:20:40 2016
New Revision: 282663

URL: http://llvm.org/viewvc/llvm-project?rev=282663&view=rev
Log:
Read addend from the correct location.

Added:
    lld/trunk/test/ELF/gc-sections-implicit-addend.s
Modified:
    lld/trunk/ELF/MarkLive.cpp

Modified: lld/trunk/ELF/MarkLive.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/MarkLive.cpp?rev=282663&r1=282662&r2=282663&view=diff
==============================================================================
--- lld/trunk/ELF/MarkLive.cpp (original)
+++ lld/trunk/ELF/MarkLive.cpp Wed Sep 28 20:20:40 2016
@@ -54,7 +54,7 @@ struct ResolvedReloc {
 template <class ELFT>
 static typename ELFT::uint getAddend(InputSectionBase<ELFT> &Sec,
                                      const typename ELFT::Rel &Rel) {
-  return Target->getImplicitAddend(Sec.Data.begin(),
+  return Target->getImplicitAddend(Sec.Data.begin() + Rel.r_offset,
                                    Rel.getType(Config->Mips64EL));
 }
 

Added: lld/trunk/test/ELF/gc-sections-implicit-addend.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gc-sections-implicit-addend.s?rev=282663&view=auto
==============================================================================
--- lld/trunk/test/ELF/gc-sections-implicit-addend.s (added)
+++ lld/trunk/test/ELF/gc-sections-implicit-addend.s Wed Sep 28 20:20:40 2016
@@ -0,0 +1,26 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -filetype=obj -triple=i386-unknown-linux %s -o %t.o
+# RUN: ld.lld %t.o -o %t --gc-sections
+# RUN: llvm-readobj -s %t | FileCheck %s
+# RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s
+
+# CHECK:      Name: .foo
+# CHECK-NEXT: Type: SHT_PROGBITS
+# CHECK-NEXT: Flags [
+# CHECK-NEXT:   SHF_ALLOC
+# CHECK-NEXT:   SHF_MERGE
+# CHECK-NEXT:   SHF_STRINGS
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address: 0x100B4
+
+# 0x100B4 == 65716
+# DISASM: leal    65716, %eax
+
+        .section        .foo,"aMS", at progbits,1
+        .byte 0
+
+        .text
+        .global _start
+_start:
+        leal    .foo, %eax




More information about the llvm-commits mailing list