aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Analysis/BugReporter.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index 33ff12d17e..d27ead442e 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -787,7 +787,8 @@ class VISIBILITY_HIDDEN EdgeBuilder {
void rawAddEdge(PathDiagnosticLocation NewLoc);
void popLocation() {
- rawAddEdge(CLocs.back());
+ PathDiagnosticLocation L = CLocs.back();
+ if (L.asLocation().isFileID()) rawAddEdge(CLocs.back());
CLocs.pop_back();
}
@@ -945,8 +946,6 @@ void EdgeBuilder::addEdge(PathDiagnosticLocation NewLoc, bool alwaysAdd) {
// Context does not contain the location. Flush it.
popLocation();
}
-
- assert(0 && "addEdge should never pop the top context");
}
void EdgeBuilder::addContext(const Stmt *S) {