clang 22.0.0git
SarifDiagnostics.cpp File Reference
#include "SarifDiagnostics.h"
#include "HTMLDiagnostics.h"
#include "clang/Analysis/IssueHash.h"
#include "clang/Analysis/MacroExpansionContext.h"
#include "clang/Analysis/PathDiagnostic.h"
#include "clang/Basic/Sarif.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Version.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/JSON.h"
#include <memory>
#include "clang/StaticAnalyzer/Checkers/Checkers.inc"

Go to the source code of this file.

Macros

#define GET_CHECKERS
#define CHECKER(FULLNAME, CLASS, HELPTEXT, DOC_URI, IS_HIDDEN)
#define GET_CHECKERS
#define CHECKER(FULLNAME, CLASS, HELPTEXT, DOC_URI, IS_HIDDEN)

Functions

static StringRef getRuleDescription (StringRef CheckName)
static StringRef getRuleHelpURIStr (StringRef CheckName)
static ThreadFlowImportance calculateImportance (const PathDiagnosticPiece &Piece)
static CharSourceRange convertTokenRangeToCharRange (const SourceRange &R, const SourceManager &SM, const LangOptions &LO)
 Accepts a SourceRange corresponding to a pair of the first and last tokens and converts to a Character granular CharSourceRange.
static SmallVector< ThreadFlow, 8 > createThreadFlows (const PathDiagnostic *Diag, const LangOptions &LO)
static StringMap< uint32_t > createRuleMapping (const std::vector< const PathDiagnostic * > &Diags, SarifDocumentWriter &SarifWriter)

Variables

static const llvm::StringRef IssueHashKey = "clang/issueHash/v1"

Macro Definition Documentation

◆ CHECKER [1/2]

#define CHECKER ( FULLNAME,
CLASS,
HELPTEXT,
DOC_URI,
IS_HIDDEN )
Value:
.Case(FULLNAME, HELPTEXT)

◆ CHECKER [2/2]

#define CHECKER ( FULLNAME,
CLASS,
HELPTEXT,
DOC_URI,
IS_HIDDEN )
Value:
.Case(FULLNAME, DOC_URI)

◆ GET_CHECKERS [1/2]

#define GET_CHECKERS

◆ GET_CHECKERS [2/2]

#define GET_CHECKERS

Function Documentation

◆ calculateImportance()

◆ convertTokenRangeToCharRange()

CharSourceRange convertTokenRangeToCharRange ( const SourceRange & R,
const SourceManager & SM,
const LangOptions & LO )
static

Accepts a SourceRange corresponding to a pair of the first and last tokens and converts to a Character granular CharSourceRange.

Definition at line 129 of file SarifDiagnostics.cpp.

References clang::SourceRange::getBegin(), clang::CharSourceRange::getCharRange(), clang::SourceRange::getEnd(), clang::Lexer::getLocForEndOfToken(), and SM.

Referenced by createThreadFlows().

◆ createRuleMapping()

◆ createThreadFlows()

◆ getRuleDescription()

StringRef getRuleDescription ( StringRef CheckName)
static

Definition at line 86 of file SarifDiagnostics.cpp.

Referenced by createRuleMapping().

◆ getRuleHelpURIStr()

StringRef getRuleHelpURIStr ( StringRef CheckName)
static

Definition at line 97 of file SarifDiagnostics.cpp.

Referenced by createRuleMapping().

Variable Documentation

◆ IssueHashKey

const llvm::StringRef IssueHashKey = "clang/issueHash/v1"
static

Definition at line 184 of file SarifDiagnostics.cpp.