class ConsumedAnalyzer
Declaration
class ConsumedAnalyzer { /* full declaration omitted */ };
Description
A class that handles the analysis of uniqueness violations.
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:239
Member Variables
- private clang::consumed::ConsumedBlockInfo BlockInfo
- private std::unique_ptr<ConsumedStateMap> CurrStates
- private clang::consumed::ConsumedState ExpectedReturnState
- public clang::consumed::ConsumedWarningsHandlerBase& WarningsHandler
Method Overview
- public ConsumedAnalyzer(clang::consumed::ConsumedWarningsHandlerBase & WarningsHandler)
- private void determineExpectedReturnState(clang::AnalysisDeclContext & AC, const clang::FunctionDecl * D)
- public clang::consumed::ConsumedState getExpectedReturnState() const
- public void run(clang::AnalysisDeclContext & AC)
- private bool splitState(const clang::CFGBlock * CurrBlock, const clang::consumed::ConsumedStmtVisitor & Visitor)
Methods
¶ConsumedAnalyzer(
clang::consumed::ConsumedWarningsHandlerBase&
WarningsHandler)
ConsumedAnalyzer(
clang::consumed::ConsumedWarningsHandlerBase&
WarningsHandler)
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:253
Parameters
- clang::consumed::ConsumedWarningsHandlerBase& WarningsHandler
¶void determineExpectedReturnState(
clang::AnalysisDeclContext& AC,
const clang::FunctionDecl* D)
void determineExpectedReturnState(
clang::AnalysisDeclContext& AC,
const clang::FunctionDecl* D)
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:245
Parameters
- clang::AnalysisDeclContext& AC
- const clang::FunctionDecl* D
¶clang::consumed::ConsumedState
getExpectedReturnState() const
clang::consumed::ConsumedState
getExpectedReturnState() const
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:256
¶void run(clang::AnalysisDeclContext& AC)
void run(clang::AnalysisDeclContext& AC)
Description
Check a function's CFG for consumed violations. We traverse the blocks in the CFG, keeping track of the state of each value who's type has uniquness annotations. If methods are invoked in the wrong state a warning is issued. Each block in the CFG is traversed exactly once.
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:264
Parameters
¶bool splitState(
const clang::CFGBlock* CurrBlock,
const clang::consumed::ConsumedStmtVisitor&
Visitor)
bool splitState(
const clang::CFGBlock* CurrBlock,
const clang::consumed::ConsumedStmtVisitor&
Visitor)
Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:247
Parameters
- const clang::CFGBlock* CurrBlock
- const clang::consumed::ConsumedStmtVisitor& Visitor