diff options
Diffstat (limited to 'llvm/tools/opt/BreakpointPrinter.cpp')
-rw-r--r-- | llvm/tools/opt/BreakpointPrinter.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/tools/opt/BreakpointPrinter.cpp b/llvm/tools/opt/BreakpointPrinter.cpp index 3cbc0ae50f1..eb89b9bca80 100644 --- a/llvm/tools/opt/BreakpointPrinter.cpp +++ b/llvm/tools/opt/BreakpointPrinter.cpp @@ -30,14 +30,12 @@ struct BreakpointPrinter : public ModulePass { BreakpointPrinter(raw_ostream &out) : ModulePass(ID), Out(out) {} void getContextName(DIDescriptor Context, std::string &N) { - if (Context.isNameSpace()) { - DINameSpace NS(Context); + if (DINameSpace NS = dyn_cast<MDNamespace>(Context)) { if (!NS.getName().empty()) { getContextName(NS.getContext(), N); N = N + NS.getName().str() + "::"; } - } else if (Context.isType()) { - DIType TY(Context); + } else if (DIType TY = dyn_cast<MDType>(Context)) { if (!TY.getName().empty()) { getContextName(TY.getContext().resolve(TypeIdentifierMap), N); N = N + TY.getName().str() + "::"; @@ -55,9 +53,7 @@ struct BreakpointPrinter : public ModulePass { if (NamedMDNode *NMD = M.getNamedMetadata("llvm.dbg.sp")) for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) { std::string Name; - DISubprogram SP(NMD->getOperand(i)); - assert((!SP || SP.isSubprogram()) && - "A MDNode in llvm.dbg.sp should be null or a DISubprogram."); + DISubprogram SP = cast_or_null<MDSubprogram>(NMD->getOperand(i)); if (!SP) continue; getContextName(SP.getContext().resolve(TypeIdentifierMap), Name); |