diff options
author | Adrian Prantl <aprantl@apple.com> | 2013-05-03 01:42:35 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2013-05-03 01:42:35 +0000 |
commit | bb09f7b1d9312471b701f2683a9d955b4e954630 (patch) | |
tree | 9bef15edbeaaaf02dda5055d42af83c92147ed53 /lib/CodeGen/CodeGenFunction.cpp | |
parent | e19229be18725bd856410b478c0e63d81ab8e4f5 (diff) |
Revert "Attempt to un-break the gdb buildbot."
This reverts commit 180982.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180990 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/CodeGen/CodeGenFunction.cpp b/lib/CodeGen/CodeGenFunction.cpp index 9f97560600..122e95b266 100644 --- a/lib/CodeGen/CodeGenFunction.cpp +++ b/lib/CodeGen/CodeGenFunction.cpp @@ -44,7 +44,7 @@ CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext) DebugInfo(0), DisableDebugInfo(false), CalleeWithThisReturn(0), DidCallStackSave(false), IndirectBranch(0), SwitchInsn(0), CaseRangeBlock(0), UnreachableBlock(0), - NumReturnExprs(0), NumSimpleReturnExprs(0), + NumStopPoints(0), NumSimpleReturnExprs(0), CXXABIThisDecl(0), CXXABIThisValue(0), CXXThisValue(0), CXXDefaultInitExprThis(0), CXXStructorImplicitParamDecl(0), CXXStructorImplicitParamValue(0), @@ -188,14 +188,14 @@ void CodeGenFunction::FinishFunction(SourceLocation EndLoc) { assert(BreakContinueStack.empty() && "mismatched push/pop in break/continue stack!"); - // If the function contains only a simple return statement, the - // cleanup code may become the first breakpoint in the function. To - // be safe, set the debug location for it to the location of the - // return statement. Otherwise point it to end of the function's - // lexical scope. + // If the function contains only a single, simple return statement, + // the cleanup code may become the first breakpoint in the + // function. To be safe set the debug location for it to the + // location of the return statement. Otherwise point it to end of + // the function's lexical scope. if (CGDebugInfo *DI = getDebugInfo()) { - if (NumSimpleReturnExprs == NumReturnExprs) - DI->EmitLocation(Builder, LastStopPoint); + if (NumSimpleReturnExprs == 1 && NumStopPoints == 1) + DI->EmitLocation(Builder, FirstStopPoint); else DI->EmitLocation(Builder, EndLoc); } @@ -206,14 +206,14 @@ void CodeGenFunction::FinishFunction(SourceLocation EndLoc) { // edges will be *really* confused. bool EmitRetDbgLoc = true; if (EHStack.stable_begin() != PrologueCleanupDepth) { - PopCleanupBlocks(PrologueCleanupDepth, EndLoc); + PopCleanupBlocks(PrologueCleanupDepth); // Make sure the line table doesn't jump back into the body for // the ret after it's been at EndLoc. EmitRetDbgLoc = false; if (CGDebugInfo *DI = getDebugInfo()) - if (NumSimpleReturnExprs == NumReturnExprs) + if (NumSimpleReturnExprs == 1 && NumStopPoints == 1) DI->EmitLocation(Builder, EndLoc); } |