virtual void PreVisitBind(CheckerContext &C, const Stmt *StoreE,
SVal location, SVal val) {}
virtual void evalDeadSymbols(CheckerContext &C, SymbolReaper &SymReaper) {}
- virtual void evalEndPath(EndPathNodeBuilder &B, void *tag,
+ virtual void evalEndPath(EndOfFunctionNodeBuilder &B, void *tag,
ExprEngine &Eng) {}
virtual void MarkLiveSymbols(const GRState *state, SymbolReaper &SymReaper) {}
return state;
}
- virtual bool WantsRegionChangeUpdate(const GRState *state) { return false; }
+ virtual bool wantsRegionChangeUpdate(const GRState *state) { return false; }
virtual const GRState *EvalRegionChanges(const GRState *state,
const MemRegion * const *Begin,
friend class BranchNodeBuilder;
friend class IndirectGotoNodeBuilder;
friend class SwitchNodeBuilder;
- friend class EndPathNodeBuilder;
+ friend class EndOfFunctionNodeBuilder;
friend class CallEnterNodeBuilder;
friend class CallExitNodeBuilder;
return SubEng.getInitialState(InitLoc);
}
- void ProcessEndPath(EndPathNodeBuilder& Builder) {
- SubEng.ProcessEndPath(Builder);
+ void processEndOfFunction(EndOfFunctionNodeBuilder& Builder) {
+ SubEng.processEndOfFunction(Builder);
}
- void ProcessElement(const CFGElement E, StmtNodeBuilder& Builder) {
- SubEng.ProcessElement(E, Builder);
+ void processCFGElement(const CFGElement E, StmtNodeBuilder& Builder) {
+ SubEng.processCFGElement(E, Builder);
}
- bool ProcessBlockEntrance(const CFGBlock* Blk, const ExplodedNode *Pred,
+ bool processCFGBlockEntrance(const CFGBlock* Blk, const ExplodedNode *Pred,
BlockCounter BC) {
- return SubEng.ProcessBlockEntrance(Blk, Pred, BC);
+ return SubEng.processCFGBlockEntrance(Blk, Pred, BC);
}
- void ProcessBranch(const Stmt* Condition, const Stmt* Terminator,
+ void processBranch(const Stmt* Condition, const Stmt* Terminator,
BranchNodeBuilder& Builder) {
- SubEng.ProcessBranch(Condition, Terminator, Builder);
+ SubEng.processBranch(Condition, Terminator, Builder);
}
- void ProcessIndirectGoto(IndirectGotoNodeBuilder& Builder) {
- SubEng.ProcessIndirectGoto(Builder);
+ void processIndirectGoto(IndirectGotoNodeBuilder& Builder) {
+ SubEng.processIndirectGoto(Builder);
}
- void ProcessSwitch(SwitchNodeBuilder& Builder) {
- SubEng.ProcessSwitch(Builder);
+ void processSwitch(SwitchNodeBuilder& Builder) {
+ SubEng.processSwitch(Builder);
}
- void ProcessCallEnter(CallEnterNodeBuilder &Builder) {
- SubEng.ProcessCallEnter(Builder);
+ void processCallEnter(CallEnterNodeBuilder &Builder) {
+ SubEng.processCallEnter(Builder);
}
- void ProcessCallExit(CallExitNodeBuilder &Builder) {
- SubEng.ProcessCallExit(Builder);
+ void processCallExit(CallExitNodeBuilder &Builder) {
+ SubEng.processCallExit(Builder);
}
private:
const GRState* getState() const { return Pred->State; }
};
-class EndPathNodeBuilder {
+class EndOfFunctionNodeBuilder {
CoreEngine &Eng;
const CFGBlock& B;
ExplodedNode* Pred;
bool HasGeneratedNode;
public:
- EndPathNodeBuilder(const CFGBlock* b, ExplodedNode* N, CoreEngine* e)
+ EndOfFunctionNodeBuilder(const CFGBlock* b, ExplodedNode* N, CoreEngine* e)
: Eng(*e), B(*b), Pred(N), HasGeneratedNode(false) {}
- ~EndPathNodeBuilder();
+ ~EndOfFunctionNodeBuilder();
WorkList &getWorkList() { return *Eng.WList; }
friend class BranchNodeBuilder;
friend class IndirectGotoNodeBuilder;
friend class SwitchNodeBuilder;
- friend class EndPathNodeBuilder;
+ friend class EndOfFunctionNodeBuilder;
class NodeGroup {
enum { Size1 = 0x0, SizeOther = 0x1, AuxFlag = 0x2, Mask = 0x3 };
enum CallbackKind {
PreVisitStmtCallback,
PostVisitStmtCallback,
- ProcessAssumeCallback,
+ processAssumeCallback,
EvalRegionChangesCallback
};
return static_cast<CHECKER*>(lookupChecker(CHECKER::getTag()));
}
- /// ProcessElement - Called by CoreEngine. Used to generate new successor
+ /// processCFGElement - Called by CoreEngine. Used to generate new successor
/// nodes by processing the 'effects' of a CFG element.
- void ProcessElement(const CFGElement E, StmtNodeBuilder& builder);
+ void processCFGElement(const CFGElement E, StmtNodeBuilder& builder);
void ProcessStmt(const CFGStmt S, StmtNodeBuilder &builder);
void ProcessTemporaryDtor(const CFGTemporaryDtor D,
StmtNodeBuilder &builder);
- /// ProcessBlockEntrance - Called by CoreEngine when start processing
+ /// processCFGBlockEntrance - Called by CoreEngine when start processing
/// a CFGBlock. This method returns true if the analysis should continue
/// exploring the given path, and false otherwise.
- bool ProcessBlockEntrance(const CFGBlock* B, const ExplodedNode *Pred,
+ bool processCFGBlockEntrance(const CFGBlock* B, const ExplodedNode *Pred,
BlockCounter BC);
/// ProcessBranch - Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a branch condition.
- void ProcessBranch(const Stmt* Condition, const Stmt* Term,
+ void processBranch(const Stmt* Condition, const Stmt* Term,
BranchNodeBuilder& builder);
- /// ProcessIndirectGoto - Called by CoreEngine. Used to generate successor
+ /// processIndirectGoto - Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a computed goto jump.
- void ProcessIndirectGoto(IndirectGotoNodeBuilder& builder);
+ void processIndirectGoto(IndirectGotoNodeBuilder& builder);
/// ProcessSwitch - Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a switch statement.
- void ProcessSwitch(SwitchNodeBuilder& builder);
+ void processSwitch(SwitchNodeBuilder& builder);
/// ProcessEndPath - Called by CoreEngine. Used to generate end-of-path
/// nodes when the control reaches the end of a function.
- void ProcessEndPath(EndPathNodeBuilder& builder);
+ void processEndOfFunction(EndOfFunctionNodeBuilder& builder);
/// Generate the entry node of the callee.
- void ProcessCallEnter(CallEnterNodeBuilder &builder);
+ void processCallEnter(CallEnterNodeBuilder &builder);
/// Generate the first post callsite node.
- void ProcessCallExit(CallExitNodeBuilder &builder);
+ void processCallExit(CallExitNodeBuilder &builder);
/// Called by CoreEngine when the analysis worklist has terminated.
- void ProcessEndWorklist(bool hasWorkRemaining);
+ void processEndWorklist(bool hasWorkRemaining);
/// evalAssume - Callback function invoked by the ConstraintManager when
/// making assumptions about state values.
- const GRState *ProcessAssume(const GRState *state, SVal cond,bool assumption);
+ const GRState *processAssume(const GRState *state, SVal cond,bool assumption);
- /// WantsRegionChangeUpdate - Called by GRStateManager to determine if a
- /// region change should trigger a ProcessRegionChanges update.
- bool WantsRegionChangeUpdate(const GRState* state);
+ /// wantsRegionChangeUpdate - Called by GRStateManager to determine if a
+ /// region change should trigger a processRegionChanges update.
+ bool wantsRegionChangeUpdate(const GRState* state);
- /// ProcessRegionChanges - Called by GRStateManager whenever a change is made
+ /// processRegionChanges - Called by GRStateManager whenever a change is made
/// to the store. Used to update checkers that track region values.
- const GRState* ProcessRegionChanges(const GRState *state,
+ const GRState* processRegionChanges(const GRState *state,
const MemRegion * const *Begin,
const MemRegion * const *End);
class BranchNodeBuilder;
class IndirectGotoNodeBuilder;
class SwitchNodeBuilder;
-class EndPathNodeBuilder;
+class EndOfFunctionNodeBuilder;
class CallEnterNodeBuilder;
class CallExitNodeBuilder;
class MemRegion;
/// Called by CoreEngine. Used to generate new successor
/// nodes by processing the 'effects' of a block-level statement.
- virtual void ProcessElement(const CFGElement E, StmtNodeBuilder& builder)=0;
+ virtual void processCFGElement(const CFGElement E, StmtNodeBuilder& builder)=0;
/// Called by CoreEngine when start processing
/// a CFGBlock. This method returns true if the analysis should continue
/// exploring the given path, and false otherwise.
- virtual bool ProcessBlockEntrance(const CFGBlock* B, const ExplodedNode *Pred,
- BlockCounter BC) = 0;
+ virtual bool processCFGBlockEntrance(const CFGBlock* B,
+ const ExplodedNode *Pred,
+ BlockCounter BC) = 0;
/// Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a branch condition.
- virtual void ProcessBranch(const Stmt* Condition, const Stmt* Term,
+ virtual void processBranch(const Stmt* Condition, const Stmt* Term,
BranchNodeBuilder& builder) = 0;
/// Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a computed goto jump.
- virtual void ProcessIndirectGoto(IndirectGotoNodeBuilder& builder) = 0;
+ virtual void processIndirectGoto(IndirectGotoNodeBuilder& builder) = 0;
/// Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a switch statement.
- virtual void ProcessSwitch(SwitchNodeBuilder& builder) = 0;
+ virtual void processSwitch(SwitchNodeBuilder& builder) = 0;
- /// ProcessEndPath - Called by CoreEngine. Used to generate end-of-path
- /// nodes when the control reaches the end of a function.
- virtual void ProcessEndPath(EndPathNodeBuilder& builder) = 0;
+ /// Called by CoreEngine. Used to generate end-of-path
+ /// nodes when the control reaches the end of a function.
+ virtual void processEndOfFunction(EndOfFunctionNodeBuilder& builder) = 0;
// Generate the entry node of the callee.
- virtual void ProcessCallEnter(CallEnterNodeBuilder &builder) = 0;
+ virtual void processCallEnter(CallEnterNodeBuilder &builder) = 0;
// Generate the first post callsite node.
- virtual void ProcessCallExit(CallExitNodeBuilder &builder) = 0;
+ virtual void processCallExit(CallExitNodeBuilder &builder) = 0;
/// Called by ConstraintManager. Used to call checker-specific
/// logic for handling assumptions on symbolic values.
- virtual const GRState* ProcessAssume(const GRState *state,
+ virtual const GRState* processAssume(const GRState *state,
SVal cond, bool assumption) = 0;
- /// WantsRegionChangeUpdate - Called by GRStateManager to determine if a
- /// region change should trigger a ProcessRegionChanges update.
- virtual bool WantsRegionChangeUpdate(const GRState* state) = 0;
+ /// wantsRegionChangeUpdate - Called by GRStateManager to determine if a
+ /// region change should trigger a processRegionChanges update.
+ virtual bool wantsRegionChangeUpdate(const GRState* state) = 0;
- /// ProcessRegionChanges - Called by GRStateManager whenever a change is made
+ /// processRegionChanges - Called by GRStateManager whenever a change is made
/// to the store. Used to update checkers that track region values.
- virtual const GRState* ProcessRegionChanges(const GRState* state,
+ virtual const GRState* processRegionChanges(const GRState* state,
const MemRegion* const *Begin,
const MemRegion* const *End) = 0;
- inline const GRState* ProcessRegionChange(const GRState* state,
+ inline const GRState* processRegionChange(const GRState* state,
const MemRegion* MR) {
- return ProcessRegionChanges(state, &MR, &MR+1);
+ return processRegionChanges(state, &MR, &MR+1);
}
/// Called by CoreEngine when the analysis worklist is either empty or the
// maximum number of analysis steps have been reached.
- virtual void ProcessEndWorklist(bool hasWorkRemaining) = 0;
+ virtual void processEndWorklist(bool hasWorkRemaining) = 0;
};
} // end GR namespace
namespace ento {
class ExplodedNode;
class ExplodedNodeSet;
-class EndPathNodeBuilder;
+class EndOfFunctionNodeBuilder;
class ExprEngine;
class StmtNodeBuilder;
class StmtNodeBuilderRef;
// End-of-path and dead symbol notification.
virtual void evalEndPath(ExprEngine& Engine,
- EndPathNodeBuilder& Builder) {}
+ EndOfFunctionNodeBuilder& Builder) {}
virtual void evalDeadSymbols(ExplodedNodeSet& Dst,
StmtNodeBuilder *SNB;
const Stmt *S;
const void *tag;
- EndPathNodeBuilder *ENB;
+ EndOfFunctionNodeBuilder *ENB;
public:
GenericNodeBuilder(StmtNodeBuilder &snb, const Stmt *s,
const void *t)
: SNB(&snb), S(s), tag(t), ENB(0) {}
- GenericNodeBuilder(EndPathNodeBuilder &enb)
+ GenericNodeBuilder(EndOfFunctionNodeBuilder &enb)
: SNB(0), S(0), tag(0), ENB(&enb) {}
ExplodedNode *MakeNode(const GRState *state, ExplodedNode *Pred) {
// End-of-path.
virtual void evalEndPath(ExprEngine& Engine,
- EndPathNodeBuilder& Builder);
+ EndOfFunctionNodeBuilder& Builder);
virtual void evalDeadSymbols(ExplodedNodeSet& Dst,
ExprEngine& Engine,
}
void CFRefCount::evalEndPath(ExprEngine& Eng,
- EndPathNodeBuilder& Builder) {
+ EndOfFunctionNodeBuilder& Builder) {
const GRState *state = Builder.getState();
GenericNodeBuilder Bd(Builder);
void PreVisitDeclStmt(CheckerContext &C, const DeclStmt *DS);
void MarkLiveSymbols(const GRState *state, SymbolReaper &SR);
void evalDeadSymbols(CheckerContext &C, SymbolReaper &SR);
- bool WantsRegionChangeUpdate(const GRState *state);
+ bool wantsRegionChangeUpdate(const GRState *state);
const GRState *EvalRegionChanges(const GRState *state,
const MemRegion * const *Begin,
C.addTransition(state);
}
-bool CStringChecker::WantsRegionChangeUpdate(const GRState *state) {
+bool CStringChecker::wantsRegionChangeUpdate(const GRState *state) {
CStringLength::EntryMap Entries = state->get<CStringLength>();
return !Entries.isEmpty();
}
/// evalAssume - Called by ConstraintManager. Used to call checker-specific
/// logic for handling assumptions on symbolic values.
-const GRState *ExprEngine::ProcessAssume(const GRState *state, SVal cond,
+const GRState *ExprEngine::processAssume(const GRState *state, SVal cond,
bool assumption) {
// Determine if we already have a cached 'CheckersOrdered' vector
// specifically tailored for processing assumptions. This
CheckersOrdered *CO = &Checkers;
llvm::OwningPtr<CheckersOrdered> NewCO;
- CallbackTag K = GetCallbackTag(ProcessAssumeCallback);
+ CallbackTag K = GetCallbackTag(processAssumeCallback);
CheckersOrdered *& CO_Ref = COCache[K];
if (!CO_Ref) {
return TF->evalAssume(state, cond, assumption);
}
-bool ExprEngine::WantsRegionChangeUpdate(const GRState* state) {
+bool ExprEngine::wantsRegionChangeUpdate(const GRState* state) {
CallbackTag K = GetCallbackTag(EvalRegionChangesCallback);
CheckersOrdered *CO = COCache[K];
for (CheckersOrdered::iterator I = CO->begin(), E = CO->end(); I != E; ++I) {
Checker *C = I->second;
- if (C->WantsRegionChangeUpdate(state))
+ if (C->wantsRegionChangeUpdate(state))
return true;
}
}
const GRState *
-ExprEngine::ProcessRegionChanges(const GRState *state,
+ExprEngine::processRegionChanges(const GRState *state,
const MemRegion * const *Begin,
const MemRegion * const *End) {
- // FIXME: Most of this method is copy-pasted from ProcessAssume.
+ // FIXME: Most of this method is copy-pasted from processAssume.
// Determine if we already have a cached 'CheckersOrdered' vector
// specifically tailored for processing region changes. This
return state;
}
-void ExprEngine::ProcessEndWorklist(bool hasWorkRemaining) {
+void ExprEngine::processEndWorklist(bool hasWorkRemaining) {
for (CheckersOrdered::iterator I = Checkers.begin(), E = Checkers.end();
I != E; ++I) {
I->second->VisitEndAnalysis(G, BR, *this);
}
}
-void ExprEngine::ProcessElement(const CFGElement E,
+void ExprEngine::processCFGElement(const CFGElement E,
StmtNodeBuilder& builder) {
switch (E.getKind()) {
case CFGElement::Statement:
// Block entrance. (Update counters).
//===----------------------------------------------------------------------===//
-bool ExprEngine::ProcessBlockEntrance(const CFGBlock* B,
+bool ExprEngine::processCFGBlockEntrance(const CFGBlock* B,
const ExplodedNode *Pred,
BlockCounter BC) {
return BC.getNumVisited(Pred->getLocationContext()->getCurrentStackFrame(),
return state->getSVal(Ex);
}
-void ExprEngine::ProcessBranch(const Stmt* Condition, const Stmt* Term,
+void ExprEngine::processBranch(const Stmt* Condition, const Stmt* Term,
BranchNodeBuilder& builder) {
// Check for NULL conditions; e.g. "for(;;)"
}
}
-/// ProcessIndirectGoto - Called by CoreEngine. Used to generate successor
+/// processIndirectGoto - Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a computed goto jump.
-void ExprEngine::ProcessIndirectGoto(IndirectGotoNodeBuilder& builder) {
+void ExprEngine::processIndirectGoto(IndirectGotoNodeBuilder& builder) {
const GRState *state = builder.getState();
SVal V = state->getSVal(builder.getTarget());
/// ProcessEndPath - Called by CoreEngine. Used to generate end-of-path
/// nodes when the control reaches the end of a function.
-void ExprEngine::ProcessEndPath(EndPathNodeBuilder& builder) {
+void ExprEngine::processEndOfFunction(EndOfFunctionNodeBuilder& builder) {
getTF().evalEndPath(*this, builder);
StateMgr.EndPath(builder.getState());
for (CheckersOrdered::iterator I=Checkers.begin(),E=Checkers.end(); I!=E;++I){
/// ProcessSwitch - Called by CoreEngine. Used to generate successor
/// nodes by processing the 'effects' of a switch statement.
-void ExprEngine::ProcessSwitch(SwitchNodeBuilder& builder) {
+void ExprEngine::processSwitch(SwitchNodeBuilder& builder) {
typedef SwitchNodeBuilder::iterator iterator;
const GRState* state = builder.getState();
const Expr* CondE = builder.getCondition();
builder.generateDefaultCaseNode(DefaultSt);
}
-void ExprEngine::ProcessCallEnter(CallEnterNodeBuilder &B) {
+void ExprEngine::processCallEnter(CallEnterNodeBuilder &B) {
const GRState *state = B.getState()->EnterStackFrame(B.getCalleeContext());
B.generateNode(state);
}
-void ExprEngine::ProcessCallExit(CallExitNodeBuilder &B) {
+void ExprEngine::processCallExit(CallExitNodeBuilder &B) {
const GRState *state = B.getState();
const ExplodedNode *Pred = B.getPredecessor();
const StackFrameContext *calleeCtx =
ExplodedNodeSet Src;
if (const Expr *RetE = RS->getRetValue()) {
// Record the returned expression in the state. It will be used in
- // ProcessCallExit to bind the return value to the call expr.
+ // processCallExit to bind the return value to the call expr.
{
static int Tag = 0;
SaveAndRestore<const void *> OldTag(Builder->Tag, &Tag);
static void *getTag();
bool evalCallExpr(CheckerContext &C, const CallExpr *CE);
void evalDeadSymbols(CheckerContext &C, SymbolReaper &SymReaper);
- void evalEndPath(EndPathNodeBuilder &B, void *tag, ExprEngine &Eng);
+ void evalEndPath(EndOfFunctionNodeBuilder &B, void *tag, ExprEngine &Eng);
void PreVisitReturnStmt(CheckerContext &C, const ReturnStmt *S);
const GRState *evalAssume(const GRState *state, SVal Cond, bool Assumption,
bool *respondsToCallback);
C.generateNode(state->set<RegionState>(RS));
}
-void MallocChecker::evalEndPath(EndPathNodeBuilder &B, void *tag,
+void MallocChecker::evalEndPath(EndOfFunctionNodeBuilder &B, void *tag,
ExprEngine &Eng) {
SaveAndRestore<bool> OldHasGen(B.HasGeneratedNode);
const GRState *state = B.getState();
return &x;
}
void PreVisitReturnStmt(CheckerContext &C, const ReturnStmt *RS);
- void evalEndPath(EndPathNodeBuilder &B, void *tag, ExprEngine &Eng);
+ void evalEndPath(EndOfFunctionNodeBuilder &B, void *tag, ExprEngine &Eng);
private:
void EmitStackError(CheckerContext &C, const MemRegion *R, const Expr *RetE);
SourceRange GenName(llvm::raw_ostream &os, const MemRegion *R,
}
}
-void StackAddrLeakChecker::evalEndPath(EndPathNodeBuilder &B, void *tag,
+void StackAddrLeakChecker::evalEndPath(EndOfFunctionNodeBuilder &B, void *tag,
ExprEngine &Eng) {
SaveAndRestore<bool> OldHasGen(B.HasGeneratedNode);
const GRState *state = B.getState();
virtual bool evalCallExpr(CheckerContext &C, const CallExpr *CE);
void evalDeadSymbols(CheckerContext &C, SymbolReaper &SymReaper);
- void evalEndPath(EndPathNodeBuilder &B, void *tag, ExprEngine &Eng);
+ void evalEndPath(EndOfFunctionNodeBuilder &B, void *tag, ExprEngine &Eng);
void PreVisitReturnStmt(CheckerContext &C, const ReturnStmt *S);
private:
}
}
-void StreamChecker::evalEndPath(EndPathNodeBuilder &B, void *tag,
+void StreamChecker::evalEndPath(EndOfFunctionNodeBuilder &B, void *tag,
ExprEngine &Eng) {
SaveAndRestore<bool> OldHasGen(B.HasGeneratedNode);
const GRState *state = B.getState();
}
}
- SubEng.ProcessEndWorklist(hasWorkRemaining());
+ SubEng.processEndWorklist(hasWorkRemaining());
return WList->hasWork();
}
unsigned Index, ExplodedNode *Pred) {
CallEnterNodeBuilder Builder(*this, Pred, L.getCallExpr(),
L.getCalleeContext(), Block, Index);
- ProcessCallEnter(Builder);
+ processCallEnter(Builder);
}
void CoreEngine::HandleCallExit(const CallExit &L, ExplodedNode *Pred) {
CallExitNodeBuilder Builder(*this, Pred);
- ProcessCallExit(Builder);
+ processCallExit(Builder);
}
void CoreEngine::HandleBlockEdge(const BlockEdge& L, ExplodedNode* Pred) {
&& "EXIT block cannot contain Stmts.");
// Process the final state transition.
- EndPathNodeBuilder Builder(Blk, Pred, this);
- ProcessEndPath(Builder);
+ EndOfFunctionNodeBuilder Builder(Blk, Pred, this);
+ processEndOfFunction(Builder);
// This path is done. Don't enqueue any more nodes.
return;
}
- // FIXME: Should we allow ProcessBlockEntrance to also manipulate state?
+ // FIXME: Should we allow processCFGBlockEntrance to also manipulate state?
- if (ProcessBlockEntrance(Blk, Pred, WList->getBlockCounter()))
+ if (processCFGBlockEntrance(Blk, Pred, WList->getBlockCounter()))
generateNode(BlockEntrance(Blk, Pred->getLocationContext()),
Pred->State, Pred);
else {
if (CFGElement E = L.getFirstElement()) {
StmtNodeBuilder Builder(L.getBlock(), 0, Pred, this,
SubEng.getStateManager());
- ProcessElement(E, Builder);
+ processCFGElement(E, Builder);
}
else
HandleBlockExit(L.getBlock(), Pred);
builder(Pred, B, cast<IndirectGotoStmt>(Term)->getTarget(),
*(B->succ_begin()), this);
- ProcessIndirectGoto(builder);
+ processIndirectGoto(builder);
return;
}
SwitchNodeBuilder builder(Pred, B, cast<SwitchStmt>(Term)->getCond(),
this);
- ProcessSwitch(builder);
+ processSwitch(builder);
return;
}
BranchNodeBuilder Builder(B, *(B->succ_begin()), *(B->succ_begin()+1),
Pred, this);
- ProcessBranch(Cond, Term, Builder);
+ processBranch(Cond, Term, Builder);
}
void CoreEngine::HandlePostStmt(const CFGBlock* B, unsigned StmtIdx,
else {
StmtNodeBuilder Builder(B, StmtIdx, Pred, this,
SubEng.getStateManager());
- ProcessElement((*B)[StmtIdx], Builder);
+ processCFGElement((*B)[StmtIdx], Builder);
}
}
return NULL;
}
-EndPathNodeBuilder::~EndPathNodeBuilder() {
+EndOfFunctionNodeBuilder::~EndOfFunctionNodeBuilder() {
// Auto-generate an EOP node if one has not been generated.
if (!HasGeneratedNode) {
// If we are in an inlined call, generate CallExit node.
}
ExplodedNode*
-EndPathNodeBuilder::generateNode(const GRState* State, const void *tag,
+EndOfFunctionNodeBuilder::generateNode(const GRState* State, const void *tag,
ExplodedNode* P) {
HasGeneratedNode = true;
bool IsNew;
return NULL;
}
-void EndPathNodeBuilder::GenerateCallExitNode(const GRState *state) {
+void EndOfFunctionNodeBuilder::GenerateCallExitNode(const GRState *state) {
HasGeneratedNode = true;
// Create a CallExit node and enqueue it.
const StackFrameContext *LocCtx
const MemRegion *MR = LV.getAsRegion();
if (MR)
- return Mgr.getOwningEngine().ProcessRegionChange(new_state, MR);
+ return Mgr.getOwningEngine().processRegionChange(new_state, MR);
return new_state;
}
const MemRegion *R = cast<loc::MemRegionVal>(loc).getRegion();
Store new_store = Mgr.StoreMgr->BindDefault(St, R, V);
const GRState *new_state = makeWithStore(new_store);
- return Mgr.getOwningEngine().ProcessRegionChange(new_state, R);
+ return Mgr.getOwningEngine().processRegionChange(new_state, R);
}
const GRState *GRState::InvalidateRegions(const MemRegion * const *Begin,
GRStateManager &Mgr = getStateManager();
SubEngine &Eng = Mgr.getOwningEngine();
- if (Eng.WantsRegionChangeUpdate(this)) {
+ if (Eng.wantsRegionChangeUpdate(this)) {
StoreManager::InvalidatedRegions Regions;
Store new_store = Mgr.StoreMgr->InvalidateRegions(St, Begin, End,
&Regions);
const GRState *new_state = makeWithStore(new_store);
- return Eng.ProcessRegionChanges(new_state,
+ return Eng.processRegionChanges(new_state,
&Regions.front(),
&Regions.back()+1);
}
const GRState *SimpleConstraintManager::assume(const GRState *state, Loc cond,
bool assumption) {
state = assumeAux(state, cond, assumption);
- return SU.ProcessAssume(state, cond, assumption);
+ return SU.processAssume(state, cond, assumption);
}
const GRState *SimpleConstraintManager::assumeAux(const GRState *state,
NonLoc cond,
bool assumption) {
state = assumeAux(state, cond, assumption);
- return SU.ProcessAssume(state, cond, assumption);
+ return SU.processAssume(state, cond, assumption);
}
static BinaryOperator::Opcode NegateComparison(BinaryOperator::Opcode op) {