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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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)
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)
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
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)
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)
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)
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)
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)
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