[llvm-commits] [llvm] r167634 - /llvm/trunk/utils/TableGen/CodeEmitterGen.cpp
Evandro Menezes
emenezes at codeaurora.org
Fri Nov 9 12:29:38 PST 2012
Author: emenezes
Date: Fri Nov 9 14:29:37 2012
New Revision: 167634
URL: http://llvm.org/viewvc/llvm-project?rev=167634&view=rev
Log:
Fix issue with invalid flat operand number
Avoid iterating over list of operands beyond the number of operands in it.
Modified:
llvm/trunk/utils/TableGen/CodeEmitterGen.cpp
Modified: llvm/trunk/utils/TableGen/CodeEmitterGen.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeEmitterGen.cpp?rev=167634&r1=167633&r2=167634&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/CodeEmitterGen.cpp (original)
+++ llvm/trunk/utils/TableGen/CodeEmitterGen.cpp Fri Nov 9 14:29:37 2012
@@ -134,10 +134,15 @@
assert(!CGI.Operands.isFlatOperandNotEmitted(OpIdx) &&
"Explicitly used operand also marked as not emitted!");
} else {
+ unsigned NumberOps = CGI.Operands.size();
/// If this operand is not supposed to be emitted by the
/// generated emitter, skip it.
- while (CGI.Operands.isFlatOperandNotEmitted(NumberedOp))
+ while (NumberedOp < NumberOps &&
+ CGI.Operands.isFlatOperandNotEmitted(NumberedOp))
++NumberedOp;
+ // If this operand has not been found, ignore it.
+ if (NumberedOp >= NumberOps)
+ return;
OpIdx = NumberedOp++;
}
More information about the llvm-commits
mailing list