From: David Blaikie Date: Fri, 8 Mar 2013 21:08:23 +0000 (+0000) Subject: Assert to bounds check MDNode::getOperand. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=eda774a6c682bc39610130cf8a183e656230c9ef;p=oota-llvm.git Assert to bounds check MDNode::getOperand. The getOperandPtr utility already bounds checks, but allows one-off-the-end. This assert should catch the cases that could previously have been dereferencing these one-off-the-end pointer. Happily, no cases of this came up with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176721 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index d751064e222..0228aeb31f5 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -303,6 +303,7 @@ void MDNode::deleteTemporary(MDNode *N) { /// getOperand - Return specified operand. Value *MDNode::getOperand(unsigned i) const { + assert(i < getNumOperands() && "Invalid operand number"); return *getOperandPtr(const_cast(this), i); }