class ConsumedStateMap

Declaration

class ConsumedStateMap { /* full declaration omitted */ };

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

Member Variables

protected bool Reachable = true
protected const clang::Stmt* From = nullptr
protected clang::consumed::ConsumedStateMap::VarMapType VarMap
protected clang::consumed::ConsumedStateMap::TmpMapType TmpMap

Method Overview

  • public ConsumedStateMap()
  • public ConsumedStateMap(const clang::consumed::ConsumedStateMap & Other)
  • public void checkParamsForReturnTypestate(clang::SourceLocation BlameLoc, clang::consumed::ConsumedWarningsHandlerBase & WarningsHandler) const
  • public void clearTemporaries()
  • public clang::consumed::ConsumedState getState(const clang::VarDecl * Var) const
  • public clang::consumed::ConsumedState getState(const clang::CXXBindTemporaryExpr * Tmp) const
  • public void intersect(const clang::consumed::ConsumedStateMap & Other)
  • public void intersectAtLoopHead(const clang::CFGBlock * LoopHead, const clang::CFGBlock * LoopBack, const clang::consumed::ConsumedStateMap * LoopBackStates, clang::consumed::ConsumedWarningsHandlerBase & WarningsHandler)
  • public bool isReachable() const
  • public void markUnreachable()
  • public void remove(const clang::CXXBindTemporaryExpr * Tmp)
  • public void setSource(const clang::Stmt * Source)
  • public void setState(const clang::VarDecl * Var, clang::consumed::ConsumedState State)
  • public void setState(const clang::CXXBindTemporaryExpr * Tmp, clang::consumed::ConsumedState State)

Methods

ConsumedStateMap()

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

ConsumedStateMap(
    const clang::consumed::ConsumedStateMap&
        Other)

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

Parameters

const clang::consumed::ConsumedStateMap& Other

void checkParamsForReturnTypestate(
    clang::SourceLocation BlameLoc,
    clang::consumed::ConsumedWarningsHandlerBase&
        WarningsHandler) const

Description

Warn if any of the parameters being tracked are not in the state they were declared to be in upon return from a function.

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

Parameters

clang::SourceLocation BlameLoc
clang::consumed::ConsumedWarningsHandlerBase& WarningsHandler

void clearTemporaries()

Description

Clear the TmpMap.

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

clang::consumed::ConsumedState getState(
    const clang::VarDecl* Var) const

Description

Get the consumed state of a given variable.

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

Parameters

const clang::VarDecl* Var

clang::consumed::ConsumedState getState(
    const clang::CXXBindTemporaryExpr* Tmp) const

Description

Get the consumed state of a given temporary value.

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

Parameters

const clang::CXXBindTemporaryExpr* Tmp

void intersect(
    const clang::consumed::ConsumedStateMap&
        Other)

Description

Merge this state map with another map.

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

Parameters

const clang::consumed::ConsumedStateMap& Other

void intersectAtLoopHead(
    const clang::CFGBlock* LoopHead,
    const clang::CFGBlock* LoopBack,
    const clang::consumed::ConsumedStateMap*
        LoopBackStates,
    clang::consumed::ConsumedWarningsHandlerBase&
        WarningsHandler)

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

Parameters

const clang::CFGBlock* LoopHead
const clang::CFGBlock* LoopBack
const clang::consumed::ConsumedStateMap* LoopBackStates
clang::consumed::ConsumedWarningsHandlerBase& WarningsHandler

bool isReachable() const

Description

Return true if this block is reachable.

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

void markUnreachable()

Description

Mark the block as unreachable.

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

void remove(
    const clang::CXXBindTemporaryExpr* Tmp)

Description

Remove the temporary value from our state map.

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

Parameters

const clang::CXXBindTemporaryExpr* Tmp

void setSource(const clang::Stmt* Source)

Description

Set the source for a decision about the branching of states.

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

Parameters

const clang::Stmt* Source
-- The statement that was the origin of a branching decision.

void setState(
    const clang::VarDecl* Var,
    clang::consumed::ConsumedState State)

Description

Set the consumed state of a given variable.

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

Parameters

const clang::VarDecl* Var
clang::consumed::ConsumedState State

void setState(
    const clang::CXXBindTemporaryExpr* Tmp,
    clang::consumed::ConsumedState State)

Description

Set the consumed state of a given temporary value.

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

Parameters

const clang::CXXBindTemporaryExpr* Tmp
clang::consumed::ConsumedState State