AbcGenRegisterInfo.inc: In static member function 'static const llvm::AbcFrameLowering* llvm::AbcGenRegisterInfo::getFrameLowering(const llvm::MachineFunction&)':
AbcGenRegisterInfo.inc:322:43: error: invalid static_cast from type 'const llvm::TargetFrameLowering*' to type 'const llvm::AbcFrameLowering*'
MF.getSubtarget().getFrameLowering());
^
は私AbcRegisterInfo.td
(私はhereからそれをコピーした)であります
class AbcSubTarget : public AbcGenSubtargetInfo {
AbcFrameLowering *frameLowering;
// more fields and methods
const AbcFrameLowering *getFrameLowering() const override {
return frameLowering;
}
};
:
class AbcReg<string n> : Register<n> {
let namespace = "Abc";
}
def DUMMY_REG : AbcReg<"R0">;
def RegI64 : RegisterClass<"Abc", [i64], 64, (add DUMMY_REG)>;
私もAbcSubtarget::getFrameLowering()
メソッドをオーバーライドエラーメッセージは変更されませんでした。
私はLLVMをビルドするたびに再生成されるため、AbcGenRegisterInfo.inc
を編集できません。私はTableGenファイルに何が間違っているのか分かりません。
私はまた、コンパイルする前に、私のビルドディレクトリからAbcGenRegisterInfo.inc
ファイルを削除しようとしたが、それは効果がなかったです。
おかげさまで、2番目の助言が助けられました - 「AbcFrameLowering.h」が適切な場所に含まれていませんでした。私はそれを含め、... 8つの新しいエラーがあったが、 'static_cast'エラーはなかった:D – KolesnichenkoDS