clang: include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_WORKLIST_H
15#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_WORKLIST_H
16
19#include
20
22
23class CFGBlock;
24
25namespace ento {
26
31 unsigned blockIdx;
32
33public:
35 const CFGBlock *B, unsigned idx)
36 : node(N),
37 counter(C),
38 block(B),
40
42 : node(N),
43 counter(C),
44 block(nullptr),
46
47
49
50
52
53
55
56
58};
59
62public:
65
67
70 }
71
75 }
76
78
81
82 static std::unique_ptr makeDFS();
83 static std::unique_ptr makeBFS();
88};
89
90}
91
92}
93
94#endif
__CUDA_BUILTIN_VAR __cuda_builtin_blockIdx_t blockIdx
Represents a single basic block in a source-level CFG.
An abstract data type used to count the number of times a given block has been visited along a path a...
ProgramPoint getLocation() const
getLocation - Returns the edge associated with the given node.
ExplodedNode * getNode() const
Returns the node associated with the worklist unit.
WorkListUnit(ExplodedNode *N, BlockCounter C)
unsigned getIndex() const
Return the index within the CFGBlock for the worklist unit.
const CFGBlock * getBlock() const
Returns the CFGblock associated with the worklist unit.
BlockCounter getBlockCounter() const
Returns the block counter map associated with the worklist unit.
WorkListUnit(ExplodedNode *N, BlockCounter C, const CFGBlock *B, unsigned idx)
virtual bool hasWork() const =0
void enqueue(ExplodedNode *N)
static std::unique_ptr< WorkList > makeUnexploredFirstPriorityLocationQueue()
BlockCounter getBlockCounter() const
void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx)
static std::unique_ptr< WorkList > makeUnexploredFirstPriorityQueue()
static std::unique_ptr< WorkList > makeBFSBlockDFSContents()
virtual WorkListUnit dequeue()=0
static std::unique_ptr< WorkList > makeBFS()
static std::unique_ptr< WorkList > makeDFS()
static std::unique_ptr< WorkList > makeUnexploredFirst()
void setBlockCounter(BlockCounter C)
virtual void enqueue(const WorkListUnit &U)=0
The JSON file list parser is used to communicate input to InstallAPI.