diff options
-rw-r--r-- | lib/Analysis/BugReporter.cpp | 5 |
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) { |