diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 7dd74a1aa40..a718276b222 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1672,7 +1672,7 @@ void llvm::salvageDebugInfo(Instruction &I) { } void llvm::insertReplacementDbgValues( - Instruction &From, Instruction &To, Instruction &InsertBefore, + Value &From, Value &To, Instruction &InsertBefore, function_ref<DIExpression *(DbgInfoIntrinsic &OldDII)> RewriteExpr) { // Collect all debug users of From. SmallVector<DbgInfoIntrinsic *, 1> Users; @@ -1682,11 +1682,11 @@ void llvm::insertReplacementDbgValues( // Insert a replacement debug value for each old debug user. It's assumed // that the old debug users will be erased later. - DIBuilder DIB(*From.getModule()); + DIBuilder DIB(*InsertBefore.getModule()); for (auto *OldDII : Users) - DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), - RewriteExpr(*OldDII), - OldDII->getDebugLoc().get(), &InsertBefore); + if (DIExpression *Expr = RewriteExpr(*OldDII)) + DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr, + OldDII->getDebugLoc().get(), &InsertBefore); } unsigned llvm::removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB) { |

