#include "clang/Analysis/IssueHash.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Lex/Lexer.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/LineIterator.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/Path.h"
#include <functional>
#include <optional>
#include <sstream>
#include <string>
usingnamespaceclang;
static std::string GetSignature(const FunctionDecl *Target) { … }
static std::string GetEnclosingDeclContextSignature(const Decl *D) { … }
static StringRef GetNthLineOfFile(std::optional<llvm::MemoryBufferRef> Buffer,
int Line) { … }
static std::string NormalizeLine(const SourceManager &SM, const FullSourceLoc &L,
const LangOptions &LangOpts) { … }
static llvm::SmallString<32> GetMD5HashOfContent(StringRef Content) { … }
std::string clang::getIssueString(const FullSourceLoc &IssueLoc,
StringRef CheckerName,
StringRef WarningMessage,
const Decl *IssueDecl,
const LangOptions &LangOpts) { … }
SmallString<32> clang::getIssueHash(const FullSourceLoc &IssueLoc,
StringRef CheckerName,
StringRef WarningMessage,
const Decl *IssueDecl,
const LangOptions &LangOpts) { … }