diff options
Diffstat (limited to 'llvm/lib/IR/AutoUpgrade.cpp')
-rw-r--r-- | llvm/lib/IR/AutoUpgrade.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp index 2978d6af916..4f0a32efcae 100644 --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -3765,8 +3765,8 @@ bool llvm::UpgradeDebugInfo(Module &M) { bool llvm::UpgradeRetainReleaseMarker(Module &M) { bool Changed = false; - NamedMDNode *ModRetainReleaseMarker = - M.getNamedMetadata("clang.arc.retainAutoreleasedReturnValueMarker"); + const char *MarkerKey = "clang.arc.retainAutoreleasedReturnValueMarker"; + NamedMDNode *ModRetainReleaseMarker = M.getNamedMetadata(MarkerKey); if (ModRetainReleaseMarker) { MDNode *Op = ModRetainReleaseMarker->getOperand(0); if (Op) { @@ -3776,11 +3776,11 @@ bool llvm::UpgradeRetainReleaseMarker(Module &M) { ID->getString().split(ValueComp, "#"); if (ValueComp.size() == 2) { std::string NewValue = ValueComp[0].str() + ";" + ValueComp[1].str(); - Metadata *Ops[1] = {MDString::get(M.getContext(), NewValue)}; - ModRetainReleaseMarker->setOperand(0, - MDNode::get(M.getContext(), Ops)); - Changed = true; + ID = MDString::get(M.getContext(), NewValue); } + M.addModuleFlag(Module::Error, MarkerKey, ID); + M.eraseNamedMetadata(ModRetainReleaseMarker); + Changed = true; } } } |