summaryrefslogtreecommitdiff
path: root/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp')
-rw-r--r--llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
index 378554adc803..a0bf378f3c76 100644
--- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
+++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
@@ -48,7 +48,6 @@ RISCVELFObjectWriter::~RISCVELFObjectWriter() = default;
unsigned RISCVELFObjectWriter::getRelocType(const MCFixup &Fixup,
const MCValue &Target,
bool IsPCRel) const {
- const MCExpr *Expr = Fixup.getValue();
unsigned Kind = Fixup.getTargetKind();
auto Spec = RISCVMCExpr::Specifier(Target.getSpecifier());
switch (Spec) {
@@ -119,14 +118,11 @@ unsigned RISCVELFObjectWriter::getRelocType(const MCFixup &Fixup,
reportError(Fixup.getLoc(), "2-byte data relocations not supported");
return ELF::R_RISCV_NONE;
case FK_Data_4:
- if (Expr->getKind() == MCExpr::Target) {
- auto Spec = cast<RISCVMCExpr>(Expr)->getSpecifier();
- switch (Spec) {
- case ELF::R_RISCV_32_PCREL:
- case ELF::R_RISCV_GOT32_PCREL:
- case ELF::R_RISCV_PLT32:
- return Spec;
- }
+ switch (Spec) {
+ case ELF::R_RISCV_32_PCREL:
+ case ELF::R_RISCV_GOT32_PCREL:
+ case ELF::R_RISCV_PLT32:
+ return Spec;
}
return ELF::R_RISCV_32;
case FK_Data_8: