13 #ifndef LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_TAINT_H 14 #define LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_TAINT_H 78 const char *sep =
"");
90 void Profile(llvm::FoldingSetNodeID &
ID)
const override { ID.Add(V); }
MemRegion - The root abstract class for all memory regions.
Stmt - This represents one statement.
std::shared_ptr< PathDiagnosticPiece > VisitNode(const ExplodedNode *N, BugReporterContext &BRC, BugReport &BR) override
TaintBugVisitor(const SVal V)
unsigned TaintTagType
The type of taint, which helps to differentiate between different types of taint. ...
The bug visitor prints a diagnostic message at the location where a given variable was tainted...
void printTaint(ProgramStateRef State, raw_ostream &Out, const char *nl="\, const char *sep="")
LLVM_DUMP_METHOD void dumpTaint(ProgramStateRef State)
bool isTainted(ProgramStateRef State, const Stmt *S, const LocationContext *LCtx, TaintTagType Kind=TaintTagGeneric)
Check if the statement has a tainted value in the given state.
LLVM_NODISCARD ProgramStateRef addTaint(ProgramStateRef State, const Stmt *S, const LocationContext *LCtx, TaintTagType Kind=TaintTagGeneric)
Create a new state in which the value of the statement is marked as tainted.
SVal - This represents a symbolic expression, which can be either an L-value or an R-value...
Dataflow Directional Tag Classes.
LLVM_NODISCARD ProgramStateRef addPartialTaint(ProgramStateRef State, SymbolRef ParentSym, const SubRegion *SubRegion, TaintTagType Kind=TaintTagGeneric)
Create a new state in a which a sub-region of a given symbol is tainted.
SubRegion - A region that subsets another larger region.
static constexpr TaintTagType TaintTagGeneric
void Profile(llvm::FoldingSetNodeID &ID) const override
This class provides an interface through which checkers can create individual bug reports...