aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/PathDiagnostic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Analysis/PathDiagnostic.cpp')
-rw-r--r--clang/lib/Analysis/PathDiagnostic.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Analysis/PathDiagnostic.cpp b/clang/lib/Analysis/PathDiagnostic.cpp
index ef24efd..e42731b 100644
--- a/clang/lib/Analysis/PathDiagnostic.cpp
+++ b/clang/lib/Analysis/PathDiagnostic.cpp
@@ -24,6 +24,7 @@
#include "clang/AST/Type.h"
#include "clang/Analysis/AnalysisDeclContext.h"
#include "clang/Analysis/CFG.h"
+#include "clang/Analysis/IssueHash.h"
#include "clang/Analysis/ProgramPoint.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/SourceLocation.h"
@@ -1075,6 +1076,19 @@ unsigned PathDiagnostic::full_size() {
return size;
}
+SmallString<32>
+PathDiagnostic::getIssueHash(const SourceManager &SrcMgr,
+ const LangOptions &LangOpts) const {
+ PathDiagnosticLocation UPDLoc = getUniqueingLoc();
+ FullSourceLoc FullLoc(
+ SrcMgr.getExpansionLoc(UPDLoc.isValid() ? UPDLoc.asLocation()
+ : getLocation().asLocation()),
+ SrcMgr);
+
+ return clang::getIssueHash(FullLoc, getCheckerName(), getBugType(),
+ getDeclWithIssue(), LangOpts);
+}
+
//===----------------------------------------------------------------------===//
// FoldingSet profiling methods.
//===----------------------------------------------------------------------===//