Avoid cast<>, use light weith wrapper directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62115 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
index 9f94a2b..e7d8a0a 100644
--- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
@@ -2629,13 +2629,13 @@
     if (!RootScope) return;
 
     // Get the subprogram debug information entry.
-    DISubprogram *SPD = cast<DISubprogram>(RootScope->getDesc());
+    DISubprogram SPD(RootScope->getDesc()->getGV());
 
     // Get the compile unit context.
-    CompileUnit *Unit = FindCompileUnit(SPD->getCompileUnit());
+    CompileUnit *Unit = FindCompileUnit(SPD.getCompileUnit());
 
     // Get the subprogram die.
-    DIE *SPDie = Unit->getDieMapSlotFor(SPD->getGV());
+    DIE *SPDie = Unit->getDieMapSlotFor(SPD.getGV());
     assert(SPDie && "Missing subprogram descriptor");
 
     // Add the function bounds.