clang API Documentation
#include <Consumed.h>
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. | |
void | clearTemporaries () |
Clear the TmpMap. | |
ConsumedState | getState (const VarDecl *Var) const |
Get the consumed state of a given variable. | |
ConsumedState | getState (const CXXBindTemporaryExpr *Tmp) const |
Get the consumed state of a given temporary value. | |
void | intersect (const ConsumedStateMap *Other) |
Merge this state map with another map. | |
void | intersectAtLoopHead (const CFGBlock *LoopHead, const CFGBlock *LoopBack, const ConsumedStateMap *LoopBackStates, ConsumedWarningsHandlerBase &WarningsHandler) |
bool | isReachable () const |
Return true if this block is reachable. | |
void | markUnreachable () |
Mark the block as unreachable. | |
void | setSource (const Stmt *Source) |
Set the source for a decision about the branching of states. | |
void | setState (const VarDecl *Var, ConsumedState State) |
Set the consumed state of a given variable. | |
void | setState (const CXXBindTemporaryExpr *Tmp, ConsumedState State) |
Set the consumed state of a given temporary value. | |
void | remove (const CXXBindTemporaryExpr *Tmp) |
Remove the temporary value from our state map. | |
bool | operator!= (const ConsumedStateMap *Other) const |
Tests to see if there is a mismatch in the states stored in two maps. | |
Protected Attributes | |
bool | Reachable |
const Stmt * | From |
VarMapType | VarMap |
TmpMapType | TmpMap |
Definition at line 131 of file Consumed.h.
clang::consumed::ConsumedStateMap::ConsumedStateMap | ( | ) | [inline] |
Definition at line 145 of file Consumed.h.
clang::consumed::ConsumedStateMap::ConsumedStateMap | ( | const ConsumedStateMap & | Other | ) | [inline] |
Definition at line 146 of file Consumed.h.
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 1127 of file Consumed.cpp.
References clang::Decl::getAttr(), clang::NamedDecl::getNameAsString(), mapReturnTypestateAttrState(), stateToString(), and clang::consumed::ConsumedWarningsHandlerBase::warnParamReturnTypestateMismatch().
Clear the TmpMap.
Definition at line 1147 of file Consumed.cpp.
ConsumedState clang::consumed::ConsumedStateMap::getState | ( | const VarDecl * | Var | ) | const |
Get the consumed state of a given variable.
Definition at line 1151 of file Consumed.cpp.
References clang::consumed::CS_None.
Referenced by clang::consumed::PropagationInfo::getAsState(), clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().
ConsumedState clang::consumed::ConsumedStateMap::getState | ( | const CXXBindTemporaryExpr * | Tmp | ) | const |
Get the consumed state of a given temporary value.
Definition at line 1161 of file Consumed.cpp.
References clang::consumed::CS_None.
void clang::consumed::ConsumedStateMap::intersect | ( | const ConsumedStateMap * | Other | ) |
Merge this state map with another map.
Definition at line 1170 of file Consumed.cpp.
References clang::consumed::CS_None, clang::consumed::CS_Unknown, From, Reachable, and VarMap.
Referenced by clang::consumed::ConsumedBlockInfo::addInfo().
void clang::consumed::ConsumedStateMap::intersectAtLoopHead | ( | const CFGBlock * | LoopHead, |
const CFGBlock * | LoopBack, | ||
const ConsumedStateMap * | LoopBackStates, | ||
ConsumedWarningsHandlerBase & | WarningsHandler | ||
) |
Definition at line 1189 of file Consumed.cpp.
References clang::consumed::CS_None, clang::consumed::CS_Unknown, getLastStmtLoc(), VarMap, and clang::consumed::ConsumedWarningsHandlerBase::warnLoopStateMismatch().
bool clang::consumed::ConsumedStateMap::isReachable | ( | ) | const [inline] |
Return true if this block is reachable.
Definition at line 172 of file Consumed.h.
References Reachable.
Mark the block as unreachable.
Definition at line 1210 of file Consumed.cpp.
Referenced by clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().
bool clang::consumed::ConsumedStateMap::operator!= | ( | const ConsumedStateMap * | Other | ) | const |
Tests to see if there is a mismatch in the states stored in two maps.
Other | -- The second map to compare against. |
Definition at line 1229 of file Consumed.cpp.
References VarMap.
void clang::consumed::ConsumedStateMap::remove | ( | const CXXBindTemporaryExpr * | Tmp | ) |
Remove the temporary value from our state map.
Definition at line 1225 of file Consumed.cpp.
void clang::consumed::ConsumedStateMap::setSource | ( | const Stmt * | Source | ) | [inline] |
Set the source for a decision about the branching of states.
Source | -- The statement that was the origin of a branching decision. |
Definition at line 180 of file Consumed.h.
References From.
void clang::consumed::ConsumedStateMap::setState | ( | const VarDecl * | Var, |
ConsumedState | State | ||
) |
Set the consumed state of a given variable.
Definition at line 1216 of file Consumed.cpp.
References State.
Referenced by clang::consumed::setStateForVarOrTmp(), clang::consumed::splitVarStateForIf(), and clang::consumed::splitVarStateForIfBinOp().
void clang::consumed::ConsumedStateMap::setState | ( | const CXXBindTemporaryExpr * | Tmp, |
ConsumedState | State | ||
) |
Set the consumed state of a given temporary value.
Definition at line 1220 of file Consumed.cpp.
References State.
const Stmt* clang::consumed::ConsumedStateMap::From [protected] |
Definition at line 140 of file Consumed.h.
Referenced by intersect(), and setSource().
bool clang::consumed::ConsumedStateMap::Reachable [protected] |
Definition at line 139 of file Consumed.h.
Referenced by intersect(), and isReachable().
TmpMapType clang::consumed::ConsumedStateMap::TmpMap [protected] |
Definition at line 142 of file Consumed.h.
VarMapType clang::consumed::ConsumedStateMap::VarMap [protected] |
Definition at line 141 of file Consumed.h.
Referenced by intersect(), intersectAtLoopHead(), and operator!=().