forked from OSchip/llvm-project
Remove an ugly hack that was meant to eliminate the breakpoint ambiguity
between a block assignment and the entry of the block function. In reality this wouldn't work anyway because blocks are predominantly created on-the-fly inside of an ObjC method invocation. The proper fix for the ambiguity is to use -gcolumn-info to differentiate the breakpoints. This is expected to break some block-related darwin-gdb tests. rdar://problem/14039866 llvm-svn: 184157
This commit is contained in:
parent
a62e38c898
commit
de5fde0b05
|
@ -34,10 +34,7 @@ using namespace CodeGen;
|
|||
void CodeGenFunction::EmitStopPoint(const Stmt *S) {
|
||||
if (CGDebugInfo *DI = getDebugInfo()) {
|
||||
SourceLocation Loc;
|
||||
if (isa<DeclStmt>(S))
|
||||
Loc = S->getLocEnd();
|
||||
else
|
||||
Loc = S->getLocStart();
|
||||
Loc = S->getLocStart();
|
||||
DI->EmitLocation(Builder, Loc);
|
||||
|
||||
LastStopPoint = Loc;
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -g -fblocks -emit-llvm -o - %s | FileCheck %s
|
||||
// Assignment and block entry should point to the same line.
|
||||
// rdar://problem/14039866
|
||||
|
||||
// CHECK: define{{.*}}@main()
|
||||
// CHECK: store{{.*}}bitcast{{.*}}, !dbg ![[ASSIGNMENT:[0-9]+]]
|
||||
// CHECK: define {{.*}} @__main_block_invoke
|
||||
// CHECK: dbg ![[BLOCK_ENTRY:[0-9]+]]
|
||||
|
||||
int main()
|
||||
{
|
||||
// CHECK: [[ASSIGNMENT]] = metadata !{i32 [[@LINE+2]],
|
||||
// CHECK: [[BLOCK_ENTRY]] = metadata !{i32 [[@LINE+1]],
|
||||
int (^blockptr)(void) = ^(void) {
|
||||
return 0;
|
||||
};
|
||||
return blockptr();
|
||||
}
|
||||
|
Loading…
Reference in New Issue