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.

llvm-svn: 207333
This commit is contained in:
David Blaikie 2014-04-26 22:12:18 +00:00
parent 357b36a2c0
commit 2b4669de8a
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