Debug info: Properly handle the function prologue in the line table.

Introduces a new flag in SILLocation: InPrologue to mark instructions
that setup the stack and allocate storage for local variables/arguments.

Fixes rdar://problem/15290023: Breakpoint set on prologue - crash ensues.

Swift SVN r9686
This commit is contained in:
Adrian Prantl
2013-10-26 00:12:20 +00:00
parent 15f2b7c51f
commit 5bbe0afb9f
13 changed files with 140 additions and 62 deletions

View File

@@ -165,20 +165,24 @@ public:
//===--------------------------------------------------------------------===//
AllocStackInst *createAllocStack(SILLocation Loc, SILType elementType) {
Loc.markAsPrologue();
return insert(new (F.getModule()) AllocStackInst(Loc, elementType, F));
}
AllocRefInst *createAllocRef(SILLocation Loc, SILType elementType) {
Loc.markAsPrologue();
return insert(new (F.getModule()) AllocRefInst(Loc, elementType, F));
}
AllocBoxInst *createAllocBox(SILLocation Loc, SILType ElementType) {
Loc.markAsPrologue();
return insert(new (F.getModule())
AllocBoxInst(Loc, ElementType, F));
}
AllocArrayInst *createAllocArray(SILLocation Loc, SILType ElementType,
SILValue NumElements) {
Loc.markAsPrologue();
return insert(new (F.getModule())
AllocArrayInst(Loc, ElementType, NumElements, F));
}