diff --git a/llvm/include/llvm/Target/TargetLoweringObjectFile.h b/llvm/include/llvm/Target/TargetLoweringObjectFile.h --- a/llvm/include/llvm/Target/TargetLoweringObjectFile.h +++ b/llvm/include/llvm/Target/TargetLoweringObjectFile.h @@ -42,7 +42,7 @@ class TargetMachine; class DSOLocalEquivalent; -class TargetLoweringObjectFile : public MCObjectFileInfo { +class TargetLoweringObjectFile : public virtual MCObjectFileInfo { /// Name-mangler for global names. Mangler *Mang = nullptr; diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCObjectFileInfo.h b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCObjectFileInfo.h --- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCObjectFileInfo.h +++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCObjectFileInfo.h @@ -17,7 +17,7 @@ namespace llvm { -class RISCVMCObjectFileInfo : public MCObjectFileInfo { +class RISCVMCObjectFileInfo : public virtual MCObjectFileInfo { public: unsigned getTextSectionAlignment() const override; }; diff --git a/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h b/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h --- a/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h +++ b/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h @@ -9,12 +9,14 @@ #ifndef LLVM_LIB_TARGET_RISCV_RISCVTARGETOBJECTFILE_H #define LLVM_LIB_TARGET_RISCV_RISCVTARGETOBJECTFILE_H +#include "MCTargetDesc/RISCVMCObjectFileInfo.h" #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" namespace llvm { /// This implementation is used for RISCV ELF targets. -class RISCVELFTargetObjectFile : public TargetLoweringObjectFileELF { +class RISCVELFTargetObjectFile : public RISCVMCObjectFileInfo, + public TargetLoweringObjectFileELF { MCSection *SmallDataSection; MCSection *SmallBSSSection; unsigned SSThreshold = 8; diff --git a/llvm/test/MC/RISCV/unnecessary-code-align.ll b/llvm/test/MC/RISCV/unnecessary-code-align.ll --- a/llvm/test/MC/RISCV/unnecessary-code-align.ll +++ b/llvm/test/MC/RISCV/unnecessary-code-align.ll @@ -2,9 +2,9 @@ ; RUN: | llvm-readobj -r - | FileCheck %s ; CHECK: Relocations [ -; CHECK: Section (3) .rela.text { -; CHECK: 0x0 R_RISCV_ALIGN - 0x2 -; CHECK: } +; CHECK-NOT: Section (3) .rela.text { +; CHECK-NOT: 0x0 R_RISCV_ALIGN - 0x2 +; CHECK-NOT: } ; CHECK: ] define i32 @test() #0 { entry: