File indexing completed on 2026-05-10 08:37:07
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_BLOCKCOUNTER_H
0016 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_BLOCKCOUNTER_H
0017
0018 #include "llvm/Support/Allocator.h"
0019
0020 namespace clang {
0021
0022 class StackFrameContext;
0023
0024 namespace ento {
0025
0026
0027
0028
0029 class BlockCounter {
0030 void *Data;
0031
0032 BlockCounter(void *D) : Data(D) {}
0033
0034 public:
0035 BlockCounter() : Data(nullptr) {}
0036
0037 unsigned getNumVisited(const StackFrameContext *CallSite,
0038 unsigned BlockID) const;
0039
0040 class Factory {
0041 void *F;
0042 public:
0043 Factory(llvm::BumpPtrAllocator& Alloc);
0044 ~Factory();
0045
0046 BlockCounter GetEmptyCounter();
0047 BlockCounter IncrementCount(BlockCounter BC,
0048 const StackFrameContext *CallSite,
0049 unsigned BlockID);
0050 };
0051
0052 friend class Factory;
0053 };
0054
0055 }
0056
0057 }
0058
0059 #endif