metadata operand as an actual operand, leading to an assert. Error
out in this case.
rdar://
11007633
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153234
91177308-0d34-0410-b5e6-
96231b3b80d8
OpNo += InlineAsm::getNumOperandRegisters(OpFlags) + 1;
}
- if (OpNo >= MI->getNumOperands()) {
+ // We may have a location metadata attached to the end of the
+ // instruction, and at no point should see metadata at any
+ // other point while processing. It's an error if so.
+ if (OpNo >= MI->getNumOperands() ||
+ MI->getOperand(OpNo).isMetadata()) {
Error = true;
} else {
unsigned OpFlags = MI->getOperand(OpNo).getImm();