Fix in r128471 is very broad. Some of the unconditional branches need line number information for better user experience.

Restrict the fix. This fixes break.exp failures from gdb testsuite.

llvm-svn: 128513
This commit is contained in:
Devang Patel 2011-03-30 00:08:31 +00:00
parent 84d7907797
commit 4d7612744f
2 changed files with 9 additions and 3 deletions

View File

@ -2317,6 +2317,9 @@ Value *ScalarExprEmitter::VisitBinLAnd(const BinaryOperator *E) {
// Emit an unconditional branch from this block to ContBlock. Insert an entry // Emit an unconditional branch from this block to ContBlock. Insert an entry
// into the phi node for the edge with the value of RHSCond. // into the phi node for the edge with the value of RHSCond.
if (CGF.getDebugInfo())
// There is no need to emit line number for unconditional branch.
Builder.SetCurrentDebugLocation(llvm::DebugLoc());
CGF.EmitBlock(ContBlock); CGF.EmitBlock(ContBlock);
PN->addIncoming(RHSCond, RHSBlock); PN->addIncoming(RHSCond, RHSBlock);

View File

@ -270,9 +270,6 @@ void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) {
// terminated, don't touch it. // terminated, don't touch it.
} else { } else {
// Otherwise, create a fall-through branch. // Otherwise, create a fall-through branch.
// There is no need to emit line number for unconditional branch.
if (getDebugInfo())
Builder.SetCurrentDebugLocation(llvm::DebugLoc());
Builder.CreateBr(Target); Builder.CreateBr(Target);
} }
@ -400,11 +397,17 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) {
// Emit the 'else' code if present. // Emit the 'else' code if present.
if (const Stmt *Else = S.getElse()) { if (const Stmt *Else = S.getElse()) {
// There is no need to emit line number for unconditional branch.
if (getDebugInfo())
Builder.SetCurrentDebugLocation(llvm::DebugLoc());
EmitBlock(ElseBlock); EmitBlock(ElseBlock);
{ {
RunCleanupsScope ElseScope(*this); RunCleanupsScope ElseScope(*this);
EmitStmt(Else); EmitStmt(Else);
} }
// There is no need to emit line number for unconditional branch.
if (getDebugInfo())
Builder.SetCurrentDebugLocation(llvm::DebugLoc());
EmitBranch(ContBlock); EmitBranch(ContBlock);
} }