I missed a dereference of `Matched` that preceeded the new check. Thanks to
Justin Bogner for spotting it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316480
91177308-0d34-0410-b5e6-
96231b3b80d8
/// True if the instruction can be built solely by mutating the opcode.
bool canMutate(RuleMatcher &Rule) const {
+ if (!Matched)
+ return false;
+
if (OperandRenderers.size() != Matched->getNumOperands())
return false;
for (const auto &Renderer : enumerate(OperandRenderers)) {
if (const auto *Copy = dyn_cast<CopyRenderer>(&*Renderer.value())) {
const OperandMatcher &OM = Rule.getOperandMatcher(Copy->getSymbolicName());
- if ((Matched != nullptr && Matched != &OM.getInstructionMatcher()) ||
+ if (Matched != &OM.getInstructionMatcher() ||
OM.getOperandIndex() != Renderer.index())
return false;
} else