summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Target.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index 6584f639977..81a56d6a194 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -755,12 +755,12 @@ void AArch64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd,
or32le(Loc, (SA & 0xFFF) << 10);
break;
case R_AARCH64_PREL16:
- if (!isInt<16>(SA))
+ if (!isInt<16>(SA - P))
error("Relocation R_AARCH64_PREL16 out of range");
write16le(Loc, SA - P);
break;
case R_AARCH64_PREL32:
- if (!isInt<32>(SA))
+ if (!isInt<32>(SA - P))
error("Relocation R_AARCH64_PREL32 out of range");
write32le(Loc, SA - P);
break;
OpenPOWER on IntegriCloud