aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2012-07-11 15:32:13 +0000
committerEric Christopher <echristo@apple.com>2012-07-11 15:32:13 +0000
commitc852e9ff06f7089405265c53af33cf06fdc36e52 (patch)
treed3b2613baf95eeef96b77e6ba4ffe4a7cdbb37a3
parentd217a66ef5091e7f42ac6c39507bd8e99125aa9b (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.cpp4
-rw-r--r--lib/CodeGen/CodeGenFunction.h9
-rw-r--r--test/CodeGen/debug-info-block-end.c17
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