From: Devang Patel Date: Wed, 30 Mar 2011 00:08:31 +0000 (+0000) Subject: Fix in r128471 is very broad. Some of the unconditional branches need line number... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=acd723666777b4ac1f79a97b6a300e6cf919d519;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128513 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index a28de703e5..33a0b5d04c 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -2317,6 +2317,9 @@ Value *ScalarExprEmitter::VisitBinLAnd(const BinaryOperator *E) { // Emit an unconditional branch from this block to ContBlock. Insert an entry // 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); PN->addIncoming(RHSCond, RHSBlock); diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index add85a2a06..e72d5c73f5 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -270,9 +270,6 @@ void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) { // terminated, don't touch it. } else { // 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); } @@ -400,11 +397,17 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) { // Emit the 'else' code if present. 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); { RunCleanupsScope ElseScope(*this); EmitStmt(Else); } + // There is no need to emit line number for unconditional branch. + if (getDebugInfo()) + Builder.SetCurrentDebugLocation(llvm::DebugLoc()); EmitBranch(ContBlock); }