12 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SUBENGINE_H 13 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SUBENGINE_H 23 class LocationContext;
27 class CrossTranslationUnitContext;
32 struct NodeBuilderContext;
33 class AnalysisManager;
34 class ExplodedNodeSet;
37 class ProgramStateManager;
39 class BranchNodeBuilder;
40 class IndirectGotoNodeBuilder;
41 class SwitchNodeBuilder;
42 class EndOfFunctionNodeBuilder;
43 class NodeBuilderWithSinks;
47 virtual void anchor();
56 getCrossTranslationUnitContext() = 0;
68 virtual void processCFGBlockEntrance(
const BlockEdge &L,
74 virtual void processBranch(
const Stmt *Condition,
93 virtual void processStaticInitializer(
const DeclStmt *DS,
131 SVal cond,
bool assumption) = 0;
148 return processRegionChanges(state,
nullptr, MR, MR, LCtx,
nullptr);
164 unsigned int Space,
bool IsDot)
const = 0;
168 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.