summaryrefslogtreecommitdiffstats
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
commit632ee8de558e0da3f6eaed50f9bfc1090cd3b7e8 (patch)
tree77d5b9d11c7185f64b2f44438e3aaa94c1287fba
parente714a5c5497e4d906701eefad3ab22fb3d83e263 (diff)
downloadbcm5719-llvm-632ee8de558e0da3f6eaed50f9bfc1090cd3b7e8.tar.gz
bcm5719-llvm-632ee8de558e0da3f6eaed50f9bfc1090cd3b7e8.zip
getOperandNum(): error if specified operand number is out of range.
llvm-svn: 28775
-rw-r--r--llvm/utils/TableGen/DAGISelEmitter.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/DAGISelEmitter.cpp b/llvm/utils/TableGen/DAGISelEmitter.cpp
index 277d41e9854..34bcd360bf9 100644
--- a/llvm/utils/TableGen/DAGISelEmitter.cpp
+++ b/llvm/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
OpenPOWER on IntegriCloud