summaryrefslogtreecommitdiff
path: root/include/llvm/Metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Metadata.h')
-rw-r--r--include/llvm/Metadata.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h
index 4e459bf7bf5c..e5363228a396 100644
--- a/include/llvm/Metadata.h
+++ b/include/llvm/Metadata.h
@@ -75,6 +75,7 @@ class MDNode : public Value, public FoldingSetNode {
MDNode(const MDNode &); // DO NOT IMPLEMENT
void operator=(const MDNode &); // DO NOT IMPLEMENT
friend class MDNodeOperand;
+ friend class LLVMContextImpl;
/// NumOperands - This many 'MDNodeOperand' items are co-allocated onto the
/// end of this MDNode.
@@ -103,9 +104,13 @@ class MDNode : public Value, public FoldingSetNode {
FL_Yes = 1
};
- // Replace each instance of F from the operand list of this node with T.
+ /// replaceOperand - Replace each instance of F from the operand list of this
+ /// node with T.
void replaceOperand(MDNodeOperand *Op, Value *NewVal);
~MDNode();
+ /// replaceAllOperandsWithNull - This is used while destroying llvm context to
+ /// gracefully delete all nodes. This method replaces all operands with null.
+ void replaceAllOperandsWithNull();
protected:
explicit MDNode(LLVMContext &C, Value *const *Vals, unsigned NumVals,