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.