class ConsumedStmtVisitor

Declaration

class ConsumedStmtVisitor : public ConstStmtVisitor { /* full declaration omitted */ };

Description

ConstStmtVisitor - This class implements a simple visitor for Stmt subclasses. Since Expr derives from Stmt, this also includes support for visiting Exprs. This class preserves constness of Stmt pointers (see also StmtVisitor).

Declared at: clang/lib/Analysis/Consumed.cpp:459

Inherits from: ConstStmtVisitor

Member Variables

private clang::consumed::ConsumedAnalyzer& Analyzer
private clang::consumed::ConsumedStateMap* StateMap
private clang::consumed::ConsumedStmtVisitor::MapType PropagationMap

Method Overview

  • public ConsumedStmtVisitor(clang::consumed::ConsumedAnalyzer & Analyzer, clang::consumed::ConsumedStateMap * StateMap)
  • public void VisitBinaryOperator(const clang::BinaryOperator * BinOp)
  • public void VisitCXXBindTemporaryExpr(const clang::CXXBindTemporaryExpr * Temp)
  • public void VisitCXXConstructExpr(const clang::CXXConstructExpr * Call)
  • public void VisitCXXMemberCallExpr(const clang::CXXMemberCallExpr * Call)
  • public void VisitCXXOperatorCallExpr(const clang::CXXOperatorCallExpr * Call)
  • public void VisitCallExpr(const clang::CallExpr * Call)
  • public void VisitCastExpr(const clang::CastExpr * Cast)
  • public void VisitDeclRefExpr(const clang::DeclRefExpr * DeclRef)
  • public void VisitDeclStmt(const clang::DeclStmt * DelcS)
  • public void VisitMaterializeTemporaryExpr(const clang::MaterializeTemporaryExpr * Temp)
  • public void VisitMemberExpr(const clang::MemberExpr * MExpr)
  • public void VisitParmVarDecl(const clang::ParmVarDecl * Param)
  • public void VisitReturnStmt(const clang::ReturnStmt * Ret)
  • public void VisitUnaryOperator(const clang::UnaryOperator * UOp)
  • public void VisitVarDecl(const clang::VarDecl * Var)
  • public void checkCallability(const clang::consumed::PropagationInfo & PInfo, const clang::FunctionDecl * FunDecl, clang::SourceLocation BlameLoc)
  • private void copyInfo(const clang::Expr * From, const clang::Expr * To, clang::consumed::ConsumedState CS)
  • private clang::consumed::ConsumedStmtVisitor::ConstInfoEntry findInfo(const clang::Expr * E) const
  • private clang::consumed::ConsumedStmtVisitor::InfoEntry findInfo(const clang::Expr * E)
  • private void forwardInfo(const clang::Expr * From, const clang::Expr * To)
  • private clang::consumed::ConsumedState getInfo(const clang::Expr * From)
  • public clang::consumed::PropagationInfo getInfo(const clang::Expr * StmtNode) const
  • public bool handleCall(const clang::CallExpr * Call, const clang::Expr * ObjArg, const clang::FunctionDecl * FunD)
  • private void insertInfo(const clang::Expr * E, const clang::consumed::PropagationInfo & PI)
  • private void propagateReturnType(const clang::Expr * Call, const clang::FunctionDecl * Fun)
  • public void reset(clang::consumed::ConsumedStateMap * NewStateMap)
  • private void setInfo(const clang::Expr * To, clang::consumed::ConsumedState NS)

Methods

ConsumedStmtVisitor(
    clang::consumed::ConsumedAnalyzer& Analyzer,
    clang::consumed::ConsumedStateMap* StateMap)

Declared at: clang/lib/Analysis/Consumed.cpp:516

Parameters

clang::consumed::ConsumedAnalyzer& Analyzer
clang::consumed::ConsumedStateMap* StateMap

void VisitBinaryOperator(
    const clang::BinaryOperator* BinOp)

Declared at: clang/lib/Analysis/Consumed.cpp:500

Parameters

const clang::BinaryOperator* BinOp

void VisitCXXBindTemporaryExpr(
    const clang::CXXBindTemporaryExpr* Temp)

Declared at: clang/lib/Analysis/Consumed.cpp:503

Parameters

const clang::CXXBindTemporaryExpr* Temp

void VisitCXXConstructExpr(
    const clang::CXXConstructExpr* Call)

Declared at: clang/lib/Analysis/Consumed.cpp:504

Parameters

const clang::CXXConstructExpr* Call

void VisitCXXMemberCallExpr(
    const clang::CXXMemberCallExpr* Call)

Declared at: clang/lib/Analysis/Consumed.cpp:505

Parameters

const clang::CXXMemberCallExpr* Call

void VisitCXXOperatorCallExpr(
    const clang::CXXOperatorCallExpr* Call)

Declared at: clang/lib/Analysis/Consumed.cpp:506

Parameters

const clang::CXXOperatorCallExpr* Call

void VisitCallExpr(const clang::CallExpr* Call)

Declared at: clang/lib/Analysis/Consumed.cpp:501

Parameters

const clang::CallExpr* Call

void VisitCastExpr(const clang::CastExpr* Cast)

Declared at: clang/lib/Analysis/Consumed.cpp:502

Parameters

const clang::CastExpr* Cast

void VisitDeclRefExpr(
    const clang::DeclRefExpr* DeclRef)

Declared at: clang/lib/Analysis/Consumed.cpp:507

Parameters

const clang::DeclRefExpr* DeclRef

void VisitDeclStmt(const clang::DeclStmt* DelcS)

Declared at: clang/lib/Analysis/Consumed.cpp:508

Parameters

const clang::DeclStmt* DelcS

void VisitMaterializeTemporaryExpr(
    const clang::MaterializeTemporaryExpr* Temp)

Declared at: clang/lib/Analysis/Consumed.cpp:509

Parameters

const clang::MaterializeTemporaryExpr* Temp

void VisitMemberExpr(
    const clang::MemberExpr* MExpr)

Declared at: clang/lib/Analysis/Consumed.cpp:510

Parameters

const clang::MemberExpr* MExpr

void VisitParmVarDecl(
    const clang::ParmVarDecl* Param)

Declared at: clang/lib/Analysis/Consumed.cpp:511

Parameters

const clang::ParmVarDecl* Param

void VisitReturnStmt(const clang::ReturnStmt* Ret)

Declared at: clang/lib/Analysis/Consumed.cpp:512

Parameters

const clang::ReturnStmt* Ret

void VisitUnaryOperator(
    const clang::UnaryOperator* UOp)

Declared at: clang/lib/Analysis/Consumed.cpp:513

Parameters

const clang::UnaryOperator* UOp

void VisitVarDecl(const clang::VarDecl* Var)

Declared at: clang/lib/Analysis/Consumed.cpp:514

Parameters

const clang::VarDecl* Var

void checkCallability(
    const clang::consumed::PropagationInfo& PInfo,
    const clang::FunctionDecl* FunDecl,
    clang::SourceLocation BlameLoc)

Declared at: clang/lib/Analysis/Consumed.cpp:494

Parameters

const clang::consumed::PropagationInfo& PInfo
const clang::FunctionDecl* FunDecl
clang::SourceLocation BlameLoc

void copyInfo(const clang::Expr* From,
              const clang::Expr* To,
              clang::consumed::ConsumedState CS)

Declared at: clang/lib/Analysis/Consumed.cpp:488

Parameters

const clang::Expr* From
const clang::Expr* To
clang::consumed::ConsumedState CS

clang::consumed::ConsumedStmtVisitor::
    ConstInfoEntry
    findInfo(const clang::Expr* E) const

Declared at: clang/lib/Analysis/Consumed.cpp:476

Parameters

const clang::Expr* E

clang::consumed::ConsumedStmtVisitor::InfoEntry
findInfo(const clang::Expr* E)

Declared at: clang/lib/Analysis/Consumed.cpp:469

Parameters

const clang::Expr* E

void forwardInfo(const clang::Expr* From,
                 const clang::Expr* To)

Declared at: clang/lib/Analysis/Consumed.cpp:487

Parameters

const clang::Expr* From
const clang::Expr* To

clang::consumed::ConsumedState getInfo(
    const clang::Expr* From)

Declared at: clang/lib/Analysis/Consumed.cpp:489

Parameters

const clang::Expr* From

clang::consumed::PropagationInfo getInfo(
    const clang::Expr* StmtNode) const

Declared at: clang/lib/Analysis/Consumed.cpp:519

Parameters

const clang::Expr* StmtNode

bool handleCall(const clang::CallExpr* Call,
                const clang::Expr* ObjArg,
                const clang::FunctionDecl* FunD)

Declared at: clang/lib/Analysis/Consumed.cpp:497

Parameters

const clang::CallExpr* Call
const clang::Expr* ObjArg
const clang::FunctionDecl* FunD

void insertInfo(
    const clang::Expr* E,
    const clang::consumed::PropagationInfo& PI)

Declared at: clang/lib/Analysis/Consumed.cpp:483

Parameters

const clang::Expr* E
const clang::consumed::PropagationInfo& PI

void propagateReturnType(
    const clang::Expr* Call,
    const clang::FunctionDecl* Fun)

Declared at: clang/lib/Analysis/Consumed.cpp:491

Parameters

const clang::Expr* Call
const clang::FunctionDecl* Fun

void reset(clang::consumed::ConsumedStateMap*
               NewStateMap)

Declared at: clang/lib/Analysis/Consumed.cpp:528

Parameters

clang::consumed::ConsumedStateMap* NewStateMap

void setInfo(const clang::Expr* To,
             clang::consumed::ConsumedState NS)

Declared at: clang/lib/Analysis/Consumed.cpp:490

Parameters

const clang::Expr* To
clang::consumed::ConsumedState NS