Debug info: Ensure that the last stop point in a function is still within
the lexical block formed by the compound statement that is the function
body.
rdar://problem/15010825
llvm-svn: 198461
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index cebd6a7..2d8c68e 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -207,9 +207,10 @@
// all will be fine.
if (CGDebugInfo *DI = getDebugInfo()) {
if (OnlySimpleReturnStmts)
- DI->EmitLocation(Builder, LastStopPoint);
+ DI->EmitLocation(Builder, LastStopPoint.first,
+ false, LastStopPoint.second);
else
- DI->EmitLocation(Builder, EndLoc);
+ DI->EmitLocation(Builder, EndLoc, false, LastStopPoint.second);
}
// Pop any cleanups that might have been associated with the
@@ -226,7 +227,7 @@
if (CGDebugInfo *DI = getDebugInfo())
if (OnlySimpleReturnStmts)
- DI->EmitLocation(Builder, EndLoc);
+ DI->EmitLocation(Builder, EndLoc, false, LastStopPoint.second);
}
// Emit function epilog (to return).