Disallow null as a named metadata operand.

Make MDNode::destroy private.
Fix the one thing that used MDNode::destroy, outside of MDNode itself.

One should never delete or destroy an MDNode explicitly. MDNodes
implicitly go away when there are no references to them (implementation
details aside).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109028 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2010-07-21 18:54:18 +00:00
parent ec237ffd28
commit 872814ae04
11 changed files with 20 additions and 40 deletions

View File

@ -803,10 +803,6 @@ bool BitcodeReader::ParseMetadata() {
unsigned Size = Record.size();
SmallVector<MDNode *, 8> Elts;
for (unsigned i = 0; i != Size; ++i) {
if (Record[i] == ~0U) {
Elts.push_back(NULL);
continue;
}
MDNode *MD = dyn_cast<MDNode>(MDValueList.getValueFwdRef(Record[i]));
if (MD == 0)
return Error("Malformed metadata record");