aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-06-13 21:47:27 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-06-13 21:47:27 +0000
commit50c997e26aef7a8532c64064003eaf649d237cc9 (patch)
tree8adb38e9acfa8673cce095612a2a32a5572254ee
parent8b92d0cae10b1abf660788e7d8e493d71ac1e477 (diff)
getOperandNum(): error if specified operand number is out of range.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28775 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index 277d41e985..34bcd360bf 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -121,6 +121,13 @@ TreePatternNode *SDTypeConstraint::getOperandNum(unsigned OpNo,
assert(NumResults <= 1 &&
"We only work with nodes with zero or one result so far!");
+ if (OpNo >= (NumResults + N->getNumChildren())) {
+ std::cerr << "Invalid operand number " << OpNo << " ";
+ N->dump();
+ std::cerr << '\n';
+ exit(1);
+ }
+
if (OpNo < NumResults)
return N; // FIXME: need value #
else