clang  6.0.0svn
Public Member Functions | Protected Attributes | List of all members
clang::consumed::ConsumedStateMap Class Reference

#include "clang/Analysis/Analyses/Consumed.h"

Collaboration diagram for clang::consumed::ConsumedStateMap:
Collaboration graph
[legend]

Public Member Functions

 ConsumedStateMap ()
 
 ConsumedStateMap (const ConsumedStateMap &Other)
 
void checkParamsForReturnTypestate (SourceLocation BlameLoc, ConsumedWarningsHandlerBase &WarningsHandler) const
 Warn if any of the parameters being tracked are not in the state they were declared to be in upon return from a function. More...
 
void clearTemporaries ()
 Clear the TmpMap. More...
 
ConsumedState getState (const VarDecl *Var) const
 Get the consumed state of a given variable. More...
 
ConsumedState getState (const CXXBindTemporaryExpr *Tmp) const
 Get the consumed state of a given temporary value. More...
 
void intersect (const ConsumedStateMap &Other)
 Merge this state map with another map. More...
 
void intersectAtLoopHead (const CFGBlock *LoopHead, const CFGBlock *LoopBack, const ConsumedStateMap *LoopBackStates, ConsumedWarningsHandlerBase &WarningsHandler)
 
bool isReachable () const
 Return true if this block is reachable. More...
 
void markUnreachable ()
 Mark the block as unreachable. More...
 
void setSource (const Stmt *Source)
 Set the source for a decision about the branching of states. More...
 
void setState (const VarDecl *Var, ConsumedState State)
 Set the consumed state of a given variable. More...
 
void setState (const CXXBindTemporaryExpr *Tmp, ConsumedState State)
 Set the consumed state of a given temporary value. More...
 
void remove (const CXXBindTemporaryExpr *Tmp)
 Remove the temporary value from our state map. More...
 
bool operator!= (const ConsumedStateMap *Other) const
 Tests to see if there is a mismatch in the states stored in two maps. More...
 

Protected Attributes

bool Reachable
 
const StmtFrom
 
VarMapType VarMap
 
TmpMapType TmpMap
 

Detailed Description

Definition at line 131 of file Consumed.h.

Constructor & Destructor Documentation

◆ ConsumedStateMap() [1/2]

clang::consumed::ConsumedStateMap::ConsumedStateMap ( )
inline

Definition at line 145 of file Consumed.h.

◆ ConsumedStateMap() [2/2]

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

Definition at line 146 of file Consumed.h.

Member Function Documentation

◆ checkParamsForReturnTypestate()

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

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

Definition at line 1117 of file Consumed.cpp.

References clang::Decl::getAttr(), clang::NamedDecl::getNameAsString(), mapReturnTypestateAttrState(), stateToString(), and clang::consumed::ConsumedWarningsHandlerBase::warnParamReturnTypestateMismatch().

◆ clearTemporaries()

void clang::consumed::ConsumedStateMap::clearTemporaries ( )

Clear the TmpMap.

Definition at line 1137 of file Consumed.cpp.

◆ getState() [1/2]

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

Get the consumed state of a given variable.

Definition at line 1141 of file Consumed.cpp.

References clang::consumed::CS_None.

Referenced by clang::consumed::PropagationInfo::getAsState(), clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().

◆ getState() [2/2]

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

Get the consumed state of a given temporary value.

Definition at line 1151 of file Consumed.cpp.

References clang::consumed::CS_None.

◆ intersect()

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

Merge this state map with another map.

Definition at line 1160 of file Consumed.cpp.

References clang::consumed::CS_None, clang::consumed::CS_Unknown, From, Reachable, and VarMap.

◆ intersectAtLoopHead()

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

◆ isReachable()

bool clang::consumed::ConsumedStateMap::isReachable ( ) const
inline

Return true if this block is reachable.

Definition at line 172 of file Consumed.h.

◆ markUnreachable()

void clang::consumed::ConsumedStateMap::markUnreachable ( )

Mark the block as unreachable.

Definition at line 1200 of file Consumed.cpp.

Referenced by clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().

◆ operator!=()

bool clang::consumed::ConsumedStateMap::operator!= ( const ConsumedStateMap Other) const

◆ remove()

void clang::consumed::ConsumedStateMap::remove ( const CXXBindTemporaryExpr Tmp)

Remove the temporary value from our state map.

Definition at line 1215 of file Consumed.cpp.

◆ setSource()

void clang::consumed::ConsumedStateMap::setSource ( const Stmt Source)
inline

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

Parameters
Source– The statement that was the origin of a branching decision.

Definition at line 180 of file Consumed.h.

References clang::operator!=(), and State.

◆ setState() [1/2]

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

Set the consumed state of a given variable.

Definition at line 1206 of file Consumed.cpp.

References State.

Referenced by clang::consumed::setStateForVarOrTmp(), clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().

◆ setState() [2/2]

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

Set the consumed state of a given temporary value.

Definition at line 1210 of file Consumed.cpp.

References State.

Member Data Documentation

◆ From

const Stmt* clang::consumed::ConsumedStateMap::From
protected

Definition at line 140 of file Consumed.h.

Referenced by intersect().

◆ Reachable

bool clang::consumed::ConsumedStateMap::Reachable
protected

Definition at line 139 of file Consumed.h.

Referenced by intersect().

◆ TmpMap

TmpMapType clang::consumed::ConsumedStateMap::TmpMap
protected

Definition at line 142 of file Consumed.h.

◆ VarMap

VarMapType clang::consumed::ConsumedStateMap::VarMap
protected

Definition at line 141 of file Consumed.h.

Referenced by intersect(), intersectAtLoopHead(), and operator!=().


The documentation for this class was generated from the following files: