diff options
-rw-r--r-- | llvm/include/llvm/IR/Metadata.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/include/llvm/IR/Metadata.h b/llvm/include/llvm/IR/Metadata.h index a7fc7b7e51e..5371efba122 100644 --- a/llvm/include/llvm/IR/Metadata.h +++ b/llvm/include/llvm/IR/Metadata.h @@ -734,6 +734,15 @@ public: bool isDistinct() const { return Storage == Distinct; } bool isTemporary() const { return Storage == Temporary; } + /// \brief RAUW a temporary. + /// + /// \pre \a isTemporary() must be \c true. + void replaceAllUsesWith(Metadata *MD) { + assert(isTemporary() && "Expected temporary node"); + assert(!isResolved() && "Expected RAUW support"); + Context.getReplaceableUses()->replaceAllUsesWith(MD); + } + protected: /// \brief Set an operand. /// @@ -971,11 +980,6 @@ public: static bool classof(const Metadata *MD) { return MD->getMetadataID() == MDNodeFwdDeclKind; } - - void replaceAllUsesWith(Metadata *MD) { - assert(Context.hasReplaceableUses() && "Expected RAUW support"); - Context.getReplaceableUses()->replaceAllUsesWith(MD); - } }; //===----------------------------------------------------------------------===// |