diff --git a/llvm/utils/TableGen/Common/CodeGenInstAlias.cpp b/llvm/utils/TableGen/Common/CodeGenInstAlias.cpp index 6c1a3e9977c28..2de27986fa04a 100644 --- a/llvm/utils/TableGen/Common/CodeGenInstAlias.cpp +++ b/llvm/utils/TableGen/Common/CodeGenInstAlias.cpp @@ -55,9 +55,10 @@ static Expected matchSimpleOperand(const Init *Arg, // Match 'RegClass:$name' or 'RegOp:$name'. if (const Record *ArgRC = T.getInitValueAsRegClassLike(Arg)) { if (ArgRC->isSubClassOf("RegisterClass")) { - if (!T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC))) + if (!OpRC->isSubClassOf("RegisterClass") || + !T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC))) return createStringError( - "argument register class" + ArgRC->getName() + + "argument register class " + ArgRC->getName() + " is not a subclass of operand register class " + OpRC->getName()); if (!ArgName)