IR: Add MDSubprogram::replaceFunction()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229742 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2015-02-18 20:32:57 +00:00
parent 87356edf74
commit a9d82a512f
3 changed files with 54 additions and 0 deletions

View File

@@ -968,6 +968,17 @@ public:
Metadata *getDeclaration() const { return getOperand(9); }
Metadata *getVariables() const { return getOperand(10); }
/// \brief Replace the function.
///
/// If \a isUniqued() and not \a isResolved(), this could node will be
/// RAUW'ed and deleted out from under the caller. Use a \a TrackingMDRef if
/// that's a problem.
/// @{
void replaceFunction(Function *F);
void replaceFunction(ConstantAsMetadata *MD) { replaceOperandWith(7, MD); }
void replaceFunction(std::nullptr_t) { replaceOperandWith(7, nullptr); }
/// @}
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == MDSubprogramKind;
}