Merge pull request #7533 from adrian-prantl/30520286
Fix a bug in GenericCloner causing an LLVM assertion
diff --git a/lib/SILOptimizer/Utils/GenericCloner.cpp b/lib/SILOptimizer/Utils/GenericCloner.cpp
index 2b4b9a3..25558f2 100644
--- a/lib/SILOptimizer/Utils/GenericCloner.cpp
+++ b/lib/SILOptimizer/Utils/GenericCloner.cpp
@@ -96,8 +96,10 @@
// Try to create a new debug_value from an existing debug_value_addr.
for (Operand *ArgUse : OrigArg->getUses()) {
if (auto *DVAI = dyn_cast<DebugValueAddrInst>(ArgUse->getUser())) {
+ getBuilder().setCurrentDebugScope(remapScope(DVAI->getDebugScope()));
getBuilder().createDebugValue(DVAI->getLoc(), NewArg,
DVAI->getVarInfo());
+ getBuilder().setCurrentDebugScope(nullptr);
break;
}
}