DebugInfo: Fix and test a regression caused by r207263 causing the DW_AT_object_pointer to go missing on blocks

Noticed by inspection. Test coverage added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2014-04-26 22:12:18 +00:00
parent 708d680565
commit 5fc870ddf5
2 changed files with 2 additions and 1 deletions

View File

@ -538,9 +538,9 @@ DIE *DwarfDebug::createScopeChildrenDIE(
std::unique_ptr<DIE> Variable =
TheCU.constructVariableDIE(*DV, Scope->isAbstractScope());
assert(Variable);
Children.push_back(std::move(Variable));
if (DV->isObjectPointer())
ObjectPointer = Variable.get();
Children.push_back(std::move(Variable));
}
for (LexicalScope *LS : Scope->getChildren())
if (DIE *Nested = constructScopeDIE(TheCU, LS))

View File

@ -7,6 +7,7 @@
; CHECK: DW_TAG_subprogram
; CHECK: DW_AT_name{{.*}}_block_invoke
; CHECK: DW_AT_object_pointer
; CHECK-NOT: DW_TAG_subprogram
; CHECK: DW_TAG_formal_parameter