diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 0465b8929a7..69f7d1146d9 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -538,9 +538,9 @@ DIE *DwarfDebug::createScopeChildrenDIE( std::unique_ptr 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)) diff --git a/test/DebugInfo/X86/debug-info-blocks.ll b/test/DebugInfo/X86/debug-info-blocks.ll index 9daeceeb779..b2531f64708 100644 --- a/test/DebugInfo/X86/debug-info-blocks.ll +++ b/test/DebugInfo/X86/debug-info-blocks.ll @@ -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