diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-04-22 20:36:26 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-04-22 20:36:26 +0000 |
commit | fb05406cefd5d3b98c10afaa5a3b309eb8db8eb4 (patch) | |
tree | 9198e767fa37993f962dab261b2dfb115ef68f39 | |
parent | a9c6c5d39bd577a25801c39ca38b38ea4f68ce45 (diff) | |
download | bcm5719-llvm-fb05406cefd5d3b98c10afaa5a3b309eb8db8eb4.tar.gz bcm5719-llvm-fb05406cefd5d3b98c10afaa5a3b309eb8db8eb4.zip |
BugReporter (extensive diagnostics): always add an edge if there is no location
context.
llvm-svn: 69823
-rw-r--r-- | clang/lib/Analysis/BugReporter.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Analysis/BugReporter.cpp b/clang/lib/Analysis/BugReporter.cpp index d27ead442e9..6872ab622ea 100644 --- a/clang/lib/Analysis/BugReporter.cpp +++ b/clang/lib/Analysis/BugReporter.cpp @@ -788,7 +788,11 @@ class VISIBILITY_HIDDEN EdgeBuilder { void popLocation() { PathDiagnosticLocation L = CLocs.back(); - if (L.asLocation().isFileID()) rawAddEdge(CLocs.back()); + if (L.asLocation().isFileID()) { + // For contexts, we only one the first character as the range. + L = PathDiagnosticLocation(L.asLocation(), L.getManager()); + rawAddEdge(CLocs.back()); + } CLocs.pop_back(); } @@ -946,6 +950,9 @@ void EdgeBuilder::addEdge(PathDiagnosticLocation NewLoc, bool alwaysAdd) { // Context does not contain the location. Flush it. popLocation(); } + + // If we reach here, there is no enclosing context. Just add the edge. + rawAddEdge(NewLoc); } void EdgeBuilder::addContext(const Stmt *S) { |