diff --git a/llvm/include/llvm/Object/RelocVisitor.h b/llvm/include/llvm/Object/RelocVisitor.h index 3510d293d73d..3a0a62d9283b 100644 --- a/llvm/include/llvm/Object/RelocVisitor.h +++ b/llvm/include/llvm/Object/RelocVisitor.h @@ -155,6 +155,8 @@ private: switch (RelocType) { case llvm::ELF::R_AMDGPU_ABS32: return visitELF_AMDGPU_ABS32(R, Value); + case llvm::ELF::R_AMDGPU_ABS64: + return visitELF_AMDGPU_ABS64(R, Value); default: HasError = true; return RelocToApply(); @@ -450,6 +452,11 @@ private: return RelocToApply(Value + Addend, 4); } + RelocToApply visitELF_AMDGPU_ABS64(RelocationRef R, uint64_t Value) { + int64_t Addend = getELFAddend(R); + return RelocToApply(Value + Addend, 8); + } + /// I386 COFF RelocToApply visitCOFF_I386_SECREL(RelocationRef R, uint64_t Value) { return RelocToApply(static_cast(Value), /*Width=*/4);