forked from OSchip/llvm-project
parent
7880db8a89
commit
abd60dd1fc
|
@ -216,13 +216,13 @@ public:
|
|||
const GRState *unbindLoc(Loc LV) const;
|
||||
|
||||
/// Get the lvalue for a variable reference.
|
||||
SVal getLValue(const VarDecl *D, const LocationContext *LC) const;
|
||||
Loc getLValue(const VarDecl *D, const LocationContext *LC) const;
|
||||
|
||||
/// Get the lvalue for a StringLiteral.
|
||||
SVal getLValue(const StringLiteral *literal) const;
|
||||
Loc getLValue(const StringLiteral *literal) const;
|
||||
|
||||
SVal getLValue(const CompoundLiteralExpr *literal,
|
||||
const LocationContext *LC) const;
|
||||
Loc getLValue(const CompoundLiteralExpr *literal,
|
||||
const LocationContext *LC) const;
|
||||
|
||||
/// Get the lvalue for an ivar reference.
|
||||
SVal getLValue(const ObjCIvarDecl *decl, SVal base) const;
|
||||
|
@ -628,16 +628,16 @@ inline const GRState *GRState::bindDefault(SVal loc, SVal V) const {
|
|||
return makeWithStore(new_store);
|
||||
}
|
||||
|
||||
inline SVal GRState::getLValue(const VarDecl* VD,
|
||||
inline Loc GRState::getLValue(const VarDecl* VD,
|
||||
const LocationContext *LC) const {
|
||||
return getStateManager().StoreMgr->getLValueVar(VD, LC);
|
||||
}
|
||||
|
||||
inline SVal GRState::getLValue(const StringLiteral *literal) const {
|
||||
inline Loc GRState::getLValue(const StringLiteral *literal) const {
|
||||
return getStateManager().StoreMgr->getLValueString(literal);
|
||||
}
|
||||
|
||||
inline SVal GRState::getLValue(const CompoundLiteralExpr *literal,
|
||||
inline Loc GRState::getLValue(const CompoundLiteralExpr *literal,
|
||||
const LocationContext *LC) const {
|
||||
return getStateManager().StoreMgr->getLValueCompoundLiteral(literal, LC);
|
||||
}
|
||||
|
|
|
@ -91,16 +91,16 @@ public:
|
|||
// caller's responsibility to 'delete' the returned map.
|
||||
virtual SubRegionMap *getSubRegionMap(Store store) = 0;
|
||||
|
||||
virtual SVal getLValueVar(const VarDecl *VD, const LocationContext *LC) {
|
||||
virtual Loc getLValueVar(const VarDecl *VD, const LocationContext *LC) {
|
||||
return ValMgr.makeLoc(MRMgr.getVarRegion(VD, LC));
|
||||
}
|
||||
|
||||
virtual SVal getLValueString(const StringLiteral* S) {
|
||||
virtual Loc getLValueString(const StringLiteral* S) {
|
||||
return ValMgr.makeLoc(MRMgr.getStringRegion(S));
|
||||
}
|
||||
|
||||
SVal getLValueCompoundLiteral(const CompoundLiteralExpr* CL,
|
||||
const LocationContext *LC) {
|
||||
Loc getLValueCompoundLiteral(const CompoundLiteralExpr* CL,
|
||||
const LocationContext *LC) {
|
||||
return loc::MemRegionVal(MRMgr.getCompoundLiteralRegion(CL, LC));
|
||||
}
|
||||
|
||||
|
|
|
@ -133,8 +133,8 @@ void StackAddrLeakChecker::EvalEndPath(GREndPathNodeBuilder &B, void *tag,
|
|||
I != E; ++I) {
|
||||
if (VarDecl *VD = dyn_cast<VarDecl>(*I)) {
|
||||
const LocationContext *LCtx = B.getPredecessor()->getLocationContext();
|
||||
SVal L = state->getLValue(VD, LCtx);
|
||||
SVal V = state->getSVal(cast<Loc>(L));
|
||||
Loc L = state->getLValue(VD, LCtx);
|
||||
SVal V = state->getSVal(L);
|
||||
if (loc::MemRegionVal *RV = dyn_cast<loc::MemRegionVal>(&V)) {
|
||||
const MemRegion *R = RV->getRegion();
|
||||
|
||||
|
|
Loading…
Reference in New Issue