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)

Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:253

Parameters

clang::consumed::ConsumedWarningsHandlerBase& WarningsHandler

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

Declared at: clang/include/clang/Analysis/Analyses/Consumed.h:256

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

clang::AnalysisDeclContext& AC

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