[lld] r320147 - Print the bad value and required alignment for unaligned relocations

Alexander Richardson via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 8 06:53:14 PST 2017


Author: arichardson
Date: Fri Dec  8 06:53:14 2017
New Revision: 320147

URL: http://llvm.org/viewvc/llvm-project?rev=320147&view=rev
Log:
Print the bad value and required alignment for unaligned relocations

Reviewers: ruiu, grimar

Reviewed By: ruiu

Subscribers: emaste, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D40963

Modified:
    lld/trunk/ELF/Target.h
    lld/trunk/test/ELF/aarch64-lo12-alignment.s
    lld/trunk/test/ELF/aarch64-load-alignment.s
    lld/trunk/test/ELF/mips-align-err.s

Modified: lld/trunk/ELF/Target.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.h?rev=320147&r1=320146&r2=320147&view=diff
==============================================================================
--- lld/trunk/ELF/Target.h (original)
+++ lld/trunk/ELF/Target.h Fri Dec  8 06:53:14 2017
@@ -169,7 +169,8 @@ template <unsigned N>
 static void checkAlignment(uint8_t *Loc, uint64_t V, RelType Type) {
   if ((V & (N - 1)) != 0)
     error(getErrorLocation(Loc) + "improper alignment for relocation " +
-          lld::toString(Type));
+          lld::toString(Type) + ": 0x" + llvm::utohexstr(V) +
+          " is not aligned to " + Twine(N) + " bytes");
 }
 } // namespace elf
 } // namespace lld

Modified: lld/trunk/test/ELF/aarch64-lo12-alignment.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-lo12-alignment.s?rev=320147&r1=320146&r2=320147&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-lo12-alignment.s (original)
+++ lld/trunk/test/ELF/aarch64-lo12-alignment.s Fri Dec  8 06:53:14 2017
@@ -39,7 +39,7 @@ foo4:
 foo8:
  .space 8
 
-// CHECK: improper alignment for relocation R_AARCH64_LDST16_ABS_LO12_NC
-// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST32_ABS_LO12_NC
-// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST64_ABS_LO12_NC
-// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST128_ABS_LO12_NC
+// CHECK: improper alignment for relocation R_AARCH64_LDST16_ABS_LO12_NC: 0x30001 is not aligned to 2 bytes
+// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST32_ABS_LO12_NC: 0x30002 is not aligned to 4 bytes
+// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST64_ABS_LO12_NC: 0x30004 is not aligned to 8 bytes
+// CHECK-NEXT: improper alignment for relocation R_AARCH64_LDST128_ABS_LO12_NC: 0x30008 is not aligned to 16 bytes

Modified: lld/trunk/test/ELF/aarch64-load-alignment.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-load-alignment.s?rev=320147&r1=320146&r2=320147&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-load-alignment.s (original)
+++ lld/trunk/test/ELF/aarch64-load-alignment.s Fri Dec  8 06:53:14 2017
@@ -3,7 +3,7 @@
 # RUN: llvm-mc -filetype=obj -triple=aarch64-linux-none %s -o %t.o
 # RUN: not ld.lld -shared %t.o -o %t 2>&1 | FileCheck %s
 
-# CHECK: improper alignment for relocation R_AARCH64_LD_PREL_LO19
+# CHECK: improper alignment for relocation R_AARCH64_LD_PREL_LO19: 0x10005 is not aligned to 4 bytes
 
   ldr x8, patatino
   .data

Modified: lld/trunk/test/ELF/mips-align-err.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-align-err.s?rev=320147&r1=320146&r2=320147&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-align-err.s (original)
+++ lld/trunk/test/ELF/mips-align-err.s Fri Dec  8 06:53:14 2017
@@ -4,7 +4,7 @@
 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
 # RUN:         -mcpu=mips32r6 %S/Inputs/mips-align-err.s -o %t2.o
 # RUN: not ld.lld %t.o %t2.o -o %t.exe 2>&1 | FileCheck %s
-# CHECK: {{.*}}:(.text+0x1): improper alignment for relocation R_MIPS_PC16
+# CHECK: {{.*}}:(.text+0x1): improper alignment for relocation R_MIPS_PC16: 0xB is not aligned to 4 bytes
 
         .globl  __start
 __start:




More information about the llvm-commits mailing list