зеркало из https://github.com/microsoft/clang-1.git
Constify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108800 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
a02d893f15
Коммит
3992a50eea
|
@ -239,15 +239,15 @@ public:
|
|||
return Pred->getState();
|
||||
}
|
||||
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, Stmt* S, ExplodedNode* Pred,
|
||||
const GRState* St) {
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, const Stmt* S,
|
||||
ExplodedNode* Pred, const GRState* St) {
|
||||
return MakeNode(Dst, S, Pred, St, PointKind);
|
||||
}
|
||||
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, Stmt* S, ExplodedNode* Pred,
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, const Stmt* S,ExplodedNode* Pred,
|
||||
const GRState* St, ProgramPoint::Kind K);
|
||||
|
||||
ExplodedNode* MakeSinkNode(ExplodedNodeSet& Dst, Stmt* S,
|
||||
ExplodedNode* MakeSinkNode(ExplodedNodeSet& Dst, const Stmt* S,
|
||||
ExplodedNode* Pred, const GRState* St) {
|
||||
bool Tmp = BuildSinks;
|
||||
BuildSinks = true;
|
||||
|
|
|
@ -233,8 +233,8 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, Stmt* S, ExplodedNode* Pred,
|
||||
const GRState* St,
|
||||
ExplodedNode* MakeNode(ExplodedNodeSet& Dst, const Stmt* S,
|
||||
ExplodedNode* Pred, const GRState* St,
|
||||
ProgramPoint::Kind K = ProgramPoint::PostStmtKind,
|
||||
const void *tag = 0);
|
||||
|
||||
|
@ -444,31 +444,31 @@ protected:
|
|||
|
||||
/// EvalBind - Handle the semantics of binding a value to a specific location.
|
||||
/// This method is used by EvalStore, VisitDeclStmt, and others.
|
||||
void EvalBind(ExplodedNodeSet& Dst, Stmt *AssignE,
|
||||
Stmt* StoreE, ExplodedNode* Pred,
|
||||
void EvalBind(ExplodedNodeSet& Dst, const Stmt *AssignE,
|
||||
const Stmt* StoreE, ExplodedNode* Pred,
|
||||
const GRState* St, SVal location, SVal Val,
|
||||
bool atDeclInit = false);
|
||||
|
||||
public:
|
||||
// FIXME: 'tag' should be removed, and a LocationContext should be used
|
||||
// instead.
|
||||
void EvalLoad(ExplodedNodeSet& Dst, Expr* Ex, ExplodedNode* Pred,
|
||||
void EvalLoad(ExplodedNodeSet& Dst, const Expr* Ex, ExplodedNode* Pred,
|
||||
const GRState* St, SVal location, const void *tag = 0,
|
||||
QualType LoadTy = QualType());
|
||||
|
||||
// FIXME: 'tag' should be removed, and a LocationContext should be used
|
||||
// instead.
|
||||
void EvalStore(ExplodedNodeSet& Dst, Expr* AssignE, Expr* StoreE,
|
||||
void EvalStore(ExplodedNodeSet& Dst, const Expr* AssignE, const Expr* StoreE,
|
||||
ExplodedNode* Pred, const GRState* St, SVal TargetLV, SVal Val,
|
||||
const void *tag = 0);
|
||||
private:
|
||||
void EvalLoadCommon(ExplodedNodeSet& Dst, Expr* Ex, ExplodedNode* Pred,
|
||||
void EvalLoadCommon(ExplodedNodeSet& Dst, const Expr* Ex, ExplodedNode* Pred,
|
||||
const GRState* St, SVal location, const void *tag,
|
||||
QualType LoadTy);
|
||||
|
||||
// FIXME: 'tag' should be removed, and a LocationContext should be used
|
||||
// instead.
|
||||
void EvalLocation(ExplodedNodeSet &Dst, Stmt *S, ExplodedNode* Pred,
|
||||
void EvalLocation(ExplodedNodeSet &Dst, const Stmt *S, ExplodedNode* Pred,
|
||||
const GRState* St, SVal location,
|
||||
const void *tag, bool isLoad);
|
||||
|
||||
|
|
|
@ -459,7 +459,7 @@ void GRStmtNodeBuilder::GenerateAutoTransition(ExplodedNode* N) {
|
|||
Eng.WList->Enqueue(Succ, B, Idx+1);
|
||||
}
|
||||
|
||||
ExplodedNode* GRStmtNodeBuilder::MakeNode(ExplodedNodeSet& Dst, Stmt* S,
|
||||
ExplodedNode* GRStmtNodeBuilder::MakeNode(ExplodedNodeSet& Dst, const Stmt* S,
|
||||
ExplodedNode* Pred, const GRState* St,
|
||||
ProgramPoint::Kind K) {
|
||||
const GRState* PredState = GetState(Pred);
|
||||
|
|
|
@ -1092,7 +1092,7 @@ bool GRExprEngine::ProcessBlockEntrance(CFGBlock* B, const ExplodedNode *Pred,
|
|||
// Generic node creation.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ExplodedNode* GRExprEngine::MakeNode(ExplodedNodeSet& Dst, Stmt* S,
|
||||
ExplodedNode* GRExprEngine::MakeNode(ExplodedNodeSet& Dst, const Stmt* S,
|
||||
ExplodedNode* Pred, const GRState* St,
|
||||
ProgramPoint::Kind K, const void *tag) {
|
||||
assert (Builder && "GRStmtNodeBuilder not present.");
|
||||
|
@ -1690,8 +1690,8 @@ void GRExprEngine::VisitMemberExpr(MemberExpr* M, ExplodedNode* Pred,
|
|||
|
||||
/// EvalBind - Handle the semantics of binding a value to a specific location.
|
||||
/// This method is used by EvalStore and (soon) VisitDeclStmt, and others.
|
||||
void GRExprEngine::EvalBind(ExplodedNodeSet& Dst, Stmt *AssignE,
|
||||
Stmt* StoreE, ExplodedNode* Pred,
|
||||
void GRExprEngine::EvalBind(ExplodedNodeSet& Dst, const Stmt *AssignE,
|
||||
const Stmt* StoreE, ExplodedNode* Pred,
|
||||
const GRState* state, SVal location, SVal Val,
|
||||
bool atDeclInit) {
|
||||
|
||||
|
@ -1745,8 +1745,8 @@ void GRExprEngine::EvalBind(ExplodedNodeSet& Dst, Stmt *AssignE,
|
|||
/// @param state The current simulation state
|
||||
/// @param location The location to store the value
|
||||
/// @param Val The value to be stored
|
||||
void GRExprEngine::EvalStore(ExplodedNodeSet& Dst, Expr *AssignE,
|
||||
Expr* StoreE,
|
||||
void GRExprEngine::EvalStore(ExplodedNodeSet& Dst, const Expr *AssignE,
|
||||
const Expr* StoreE,
|
||||
ExplodedNode* Pred,
|
||||
const GRState* state, SVal location, SVal Val,
|
||||
const void *tag) {
|
||||
|
@ -1771,7 +1771,8 @@ void GRExprEngine::EvalStore(ExplodedNodeSet& Dst, Expr *AssignE,
|
|||
EvalBind(Dst, AssignE, StoreE, *NI, GetState(*NI), location, Val);
|
||||
}
|
||||
|
||||
void GRExprEngine::EvalLoad(ExplodedNodeSet& Dst, Expr *Ex, ExplodedNode* Pred,
|
||||
void GRExprEngine::EvalLoad(ExplodedNodeSet& Dst, const Expr *Ex,
|
||||
ExplodedNode* Pred,
|
||||
const GRState* state, SVal location,
|
||||
const void *tag, QualType LoadTy) {
|
||||
|
||||
|
@ -1801,7 +1802,7 @@ void GRExprEngine::EvalLoad(ExplodedNodeSet& Dst, Expr *Ex, ExplodedNode* Pred,
|
|||
EvalLoadCommon(Dst, Ex, Pred, state, location, tag, LoadTy);
|
||||
}
|
||||
|
||||
void GRExprEngine::EvalLoadCommon(ExplodedNodeSet& Dst, Expr *Ex,
|
||||
void GRExprEngine::EvalLoadCommon(ExplodedNodeSet& Dst, const Expr *Ex,
|
||||
ExplodedNode* Pred,
|
||||
const GRState* state, SVal location,
|
||||
const void *tag, QualType LoadTy) {
|
||||
|
@ -1835,7 +1836,7 @@ void GRExprEngine::EvalLoadCommon(ExplodedNodeSet& Dst, Expr *Ex,
|
|||
}
|
||||
}
|
||||
|
||||
void GRExprEngine::EvalLocation(ExplodedNodeSet &Dst, Stmt *S,
|
||||
void GRExprEngine::EvalLocation(ExplodedNodeSet &Dst, const Stmt *S,
|
||||
ExplodedNode* Pred,
|
||||
const GRState* state, SVal location,
|
||||
const void *tag, bool isLoad) {
|
||||
|
|
|
@ -112,7 +112,7 @@ bool OSAtomicChecker::EvalOSAtomicCompareAndSwap(CheckerContext &C,
|
|||
dyn_cast_or_null<TypedRegion>(location.getAsRegion())) {
|
||||
LoadTy = TR->getValueType(Ctx);
|
||||
}
|
||||
Engine.EvalLoad(Tmp, const_cast<Expr *>(theValueExpr), C.getPredecessor(),
|
||||
Engine.EvalLoad(Tmp, theValueExpr, C.getPredecessor(),
|
||||
state, location, OSAtomicLoadTag, LoadTy);
|
||||
|
||||
if (Tmp.empty()) {
|
||||
|
@ -161,7 +161,7 @@ bool OSAtomicChecker::EvalOSAtomicCompareAndSwap(CheckerContext &C,
|
|||
val = SVator.EvalCast(val,R->getValueType(Ctx),newValueExpr->getType());
|
||||
}
|
||||
|
||||
Engine.EvalStore(TmpStore, NULL, const_cast<Expr *>(theValueExpr), N,
|
||||
Engine.EvalStore(TmpStore, NULL, theValueExpr, N,
|
||||
stateEqual, location, val, OSAtomicStoreTag);
|
||||
|
||||
if (TmpStore.empty()) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче