Do not rely on Twine temporaries to survive.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106515 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 5f55a3d..41e4bfb 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -2257,9 +2257,10 @@
   }
 
   // Collect info for variables that were optimized out.
-  const Twine FnLVName = Twine("llvm.dbg.lv.", MF->getFunction()->getName());
-  if (NamedMDNode *NMD =
-      MF->getFunction()->getParent()->getNamedMetadataUsingTwine(FnLVName)) {
+  const Function *F = MF->getFunction();
+  const Module *M = F->getParent();
+  if (NamedMDNode *NMD = 
+      M->getNamedMetadataUsingTwine(Twine("llvm.dbg.lv.", F->getName()))) {
     for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) {
       DIVariable DV(cast_or_null<MDNode>(NMD->getOperand(i)));
       if (!DV || !Processed.insert(DV))