diff options
author | Eric Christopher <echristo@apple.com> | 2012-07-11 15:32:13 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2012-07-11 15:32:13 +0000 |
commit | c852e9ff06f7089405265c53af33cf06fdc36e52 (patch) | |
tree | d3b2613baf95eeef96b77e6ba4ffe4a7cdbb37a3 | |
parent | d217a66ef5091e7f42ac6c39507bd8e99125aa9b (diff) |
Temporarily revert this to see if it brings the gdb bot back.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160049 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 9 | ||||
-rw-r--r-- | test/CodeGen/debug-info-block-end.c | 17 |
3 files changed, 6 insertions, 24 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 11a5ddc7ce..c604e56539 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -2135,6 +2135,10 @@ void CGDebugInfo::EmitLexicalBlockStart(CGBuilderTy &Builder, SourceLocation Loc /// region - end of a DW_TAG_lexical_block. void CGDebugInfo::EmitLexicalBlockEnd(CGBuilderTy &Builder, SourceLocation Loc) { assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack empty!"); + + // Provide an entry in the line table for the end of the block. + EmitLocation(Builder, Loc); + LexicalBlockStack.pop_back(); } diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 8740fd06df..b737a9ed7a 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -854,11 +854,8 @@ public: /// cleanups. ~LexicalScope() { if (PopDebugStack) { - if (CGDebugInfo *DI = CGF.getDebugInfo()) { - if (RunCleanupsScope::requiresCleanups()) - DI->EmitLocation(CGF.Builder, Range.getEnd()); - DI->EmitLexicalBlockEnd(CGF.Builder, Range.getEnd()); - } + CGDebugInfo *DI = CGF.getDebugInfo(); + if (DI) DI->EmitLexicalBlockEnd(CGF.Builder, Range.getEnd()); } } @@ -867,8 +864,6 @@ public: void ForceCleanup() { RunCleanupsScope::ForceCleanup(); if (CGDebugInfo *DI = CGF.getDebugInfo()) { - if (RunCleanupsScope::requiresCleanups()) - DI->EmitLocation(CGF.Builder, Range.getEnd()); DI->EmitLexicalBlockEnd(CGF.Builder, Range.getEnd()); PopDebugStack = false; } diff --git a/test/CodeGen/debug-info-block-end.c b/test/CodeGen/debug-info-block-end.c deleted file mode 100644 index 72e8868bb4..0000000000 --- a/test/CodeGen/debug-info-block-end.c +++ /dev/null @@ -1,17 +0,0 @@ -// RUN: %clang_cc1 -g -S -emit-llvm %s -o - | FileCheck %s - -int bar(); - -int foo(int i) { - int j = 0; - if (i) { - j = bar(); - } - else { - j = bar() + 2; - } - return j; -} - -// Make sure we don't have a line table entry for a block with no cleanups. -// CHECK-NOT: i32 9, i32 3, metadata |