clang
20.0.0git
include
clang
StaticAnalyzer
Core
PathSensitive
BlockCounter.h
Go to the documentation of this file.
1
//==- BlockCounter.h - ADT for counting block visits ---------------*- C++ -*-//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file defines BlockCounter, an abstract data type used to count
10
// the number of times a given block has been visited along a path
11
// analyzed by CoreEngine.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_BLOCKCOUNTER_H
16
#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_BLOCKCOUNTER_H
17
18
#include "llvm/Support/Allocator.h"
19
20
namespace
clang
{
21
22
class
StackFrameContext;
23
24
namespace
ento {
25
26
/// \class BlockCounter
27
/// An abstract data type used to count the number of times a given
28
/// block has been visited along a path analyzed by CoreEngine.
29
class
BlockCounter
{
30
void
*Data;
31
32
BlockCounter
(
void
*
D
) :
Data
(
D
) {}
33
34
public
:
35
BlockCounter
() :
Data
(nullptr) {}
36
37
unsigned
getNumVisited
(
const
StackFrameContext
*CallSite,
38
unsigned
BlockID)
const
;
39
40
class
Factory
{
41
void
*F;
42
public
:
43
Factory
(llvm::BumpPtrAllocator& Alloc);
44
~Factory
();
45
46
BlockCounter
GetEmptyCounter
();
47
BlockCounter
IncrementCount
(
BlockCounter
BC,
48
const
StackFrameContext
*CallSite,
49
unsigned
BlockID);
50
};
51
52
friend
class
Factory
;
53
};
54
55
}
// end GR namespace
56
57
}
// end clang namespace
58
59
#endif
D
const Decl * D
Definition:
CheckExprLifetime.cpp:200
Data
const char * Data
Definition:
StandardLibrary.cpp:36
clang::StackFrameContext
It represents a stack frame of the call stack (based on CallEvent).
Definition:
AnalysisDeclContext.h:299
clang::ento::BlockCounter::Factory
Definition:
BlockCounter.h:40
clang::ento::BlockCounter::Factory::IncrementCount
BlockCounter IncrementCount(BlockCounter BC, const StackFrameContext *CallSite, unsigned BlockID)
Definition:
BlockCounter.cpp:73
clang::ento::BlockCounter::Factory::~Factory
~Factory()
Definition:
BlockCounter.cpp:68
clang::ento::BlockCounter::Factory::GetEmptyCounter
BlockCounter GetEmptyCounter()
Definition:
BlockCounter.cpp:82
clang::ento::BlockCounter
An abstract data type used to count the number of times a given block has been visited along a path a...
Definition:
BlockCounter.h:29
clang::ento::BlockCounter::getNumVisited
unsigned getNumVisited(const StackFrameContext *CallSite, unsigned BlockID) const
Definition:
BlockCounter.cpp:57
clang::ento::BlockCounter::BlockCounter
BlockCounter()
Definition:
BlockCounter.h:35
clang
The JSON file list parser is used to communicate input to InstallAPI.
Definition:
CalledOnceCheck.h:17
Generated on Mon Nov 4 2024 05:35:10 for clang by
1.9.6