We return Loc where we know.

llvm-svn: 106087
This commit is contained in:
Zhongxing Xu 2010-06-16 06:16:46 +00:00
parent 7880db8a89
commit abd60dd1fc
3 changed files with 13 additions and 13 deletions

View File

@ -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);
}

View File

@ -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));
}

View File

@ -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();