diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-11-15 23:13:08 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-11-15 23:13:08 +0000 |
commit | 14f41e7e1811b0c504c82865bd6828acfee82527 (patch) | |
tree | c158099e4e9a9826d2d8c6603b3b5d130dd92768 /lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | 4634338655449a6e76b6a948c91fbe5bc736d24b (diff) | |
download | external_llvm-14f41e7e1811b0c504c82865bd6828acfee82527.zip external_llvm-14f41e7e1811b0c504c82865bd6828acfee82527.tar.gz external_llvm-14f41e7e1811b0c504c82865bd6828acfee82527.tar.bz2 |
DwarfDebug: Push DISubprogram through updateSubprogramScopeDIE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194879 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 74c0269..c8f8104 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -366,17 +366,15 @@ bool DwarfDebug::isSubprogramContext(const MDNode *Context) { // Find DIE for the given subprogram and attach appropriate DW_AT_low_pc // and DW_AT_high_pc attributes. If there are global variables in this // scope then create and insert DIEs for these variables. -DIE *DwarfDebug::updateSubprogramScopeDIE(CompileUnit *SPCU, - const MDNode *SPNode) { - DIE *SPDie = SPCU->getDIE(DIDescriptor(SPNode)); +DIE *DwarfDebug::updateSubprogramScopeDIE(CompileUnit *SPCU, DISubprogram SP) { + DIE *SPDie = SPCU->getDIE(SP); assert(SPDie && "Unable to find subprogram DIE!"); - DISubprogram SP(SPNode); // If we're updating an abstract DIE, then we will be adding the children and // object pointer later on. But what we don't want to do is process the // concrete DIE twice. - if (DIE *AbsSPDIE = AbstractSPDies.lookup(SPNode)) { + if (DIE *AbsSPDIE = AbstractSPDies.lookup(SP)) { // Pick up abstract subprogram DIE. SPDie = SPCU->createAndAddDIE(dwarf::DW_TAG_subprogram, *SPCU->getCUDie()); SPCU->addDIEEntry(SPDie, dwarf::DW_AT_abstract_origin, AbsSPDIE); @@ -624,7 +622,7 @@ DIE *DwarfDebug::constructScopeDIE(CompileUnit *TheCU, LexicalScope *Scope) { AbstractSPDies.insert(std::make_pair(DS, ScopeDIE)); } else - ScopeDIE = updateSubprogramScopeDIE(TheCU, DS); + ScopeDIE = updateSubprogramScopeDIE(TheCU, DISubprogram(DS)); } else { // Early exit when we know the scope DIE is going to be null. |