13 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SUBENGINE_H 14 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SUBENGINE_H 24 class LocationContext;
28 class CrossTranslationUnitContext;
33 struct NodeBuilderContext;
34 class AnalysisManager;
35 class ExplodedNodeSet;
38 class ProgramStateManager;
40 class BranchNodeBuilder;
41 class IndirectGotoNodeBuilder;
42 class SwitchNodeBuilder;
43 class EndOfFunctionNodeBuilder;
44 class NodeBuilderWithSinks;
48 virtual void anchor();
57 getCrossTranslationUnitContext() = 0;
69 virtual void processCFGBlockEntrance(
const BlockEdge &L,
75 virtual void processBranch(
const Stmt *Condition,
94 virtual void processStaticInitializer(
const DeclStmt *DS,
132 SVal cond,
bool assumption) = 0;
149 return processRegionChanges(state,
nullptr, MR, MR, LCtx,
nullptr);
164 const char *NL,
const char *Sep,
169 virtual void processEndWorklist() = 0;
ProgramStateRef processRegionChange(ProgramStateRef state, const MemRegion *MR, const LocationContext *LCtx)
MemRegion - The root abstract class for all memory regions.
Stmt - This represents one statement.
Information about invalidation for a particular region/symbol.
Represents a point when we begin processing an inlined call.
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like final * state
Represents binding an expression to a temporary.
Represents a single basic block in a source-level CFG.
ReturnStmt - This represents a return, optionally of an expression: return; return 4;...
DeclStmt - Adaptor class for mixing declarations with statements and expressions. ...
SVal - This represents a symbolic expression, which can be either an L-value or an R-value...
Dataflow Directional Tag Classes.
This node builder keeps track of the generated sink nodes.
Represents an abstract call to a function or method along a particular path.
This class is used for tools that requires cross translation unit capability.
Represents a top-level expression in a basic block.