aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Analysis/PathSensitive/BugReporter.h1
-rw-r--r--lib/Analysis/BugReporter.cpp7
2 files changed, 7 insertions, 1 deletions
diff --git a/include/clang/Analysis/PathSensitive/BugReporter.h b/include/clang/Analysis/PathSensitive/BugReporter.h
index 7aefb1c57c..bcb1a24b74 100644
--- a/include/clang/Analysis/PathSensitive/BugReporter.h
+++ b/include/clang/Analysis/PathSensitive/BugReporter.h
@@ -58,6 +58,7 @@ public:
BugTypeCacheLocation() {}
virtual ~BugTypeCacheLocation() {}
virtual bool isCached(BugReport& R);
+ bool isCached(ProgramPoint P);
};
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index e2d98b0cf6..8ee530c425 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -448,7 +448,12 @@ bool BugTypeCacheLocation::isCached(BugReport& R) {
// warning for the same error type that occurs at the same program
// location but along a different path.
- void* p = N->getLocation().getRawData();
+ return isCached(N->getLocation());
+}
+
+bool BugTypeCacheLocation::isCached(ProgramPoint P) {
+
+ void* p = P.getRawData();
if (CachedErrors.count(p))
return true;