[cfe-commits] [PATCH] RegionStore

Ted Kremenek kremenek at apple.com
Sun Oct 19 23:38:24 PDT 2008

On Oct 19, 2008, at 9:48 PM, Zhongxing Xu wrote:

> When we visit (*p)[3] = 1, we evaluate (*p)'s rvalue. We will do a  
> load on p's rvalue, which is loc::MemRegionVal(region of a). We want  
> (*p)'s rvalue still be loc::MemRegionVal(region of a). So we should  
> handle this in Store.

In this example, I don't see where GetSVal() gets used other than  
handling the dereference of p, which will return the  
loc::MemRegionVal(region of a).  It seems like it just works (no  
special handling of array types required); VisitArraySubscriptExpr  
(with asLValue=true) will then call the store's VisitLValueElement  
with loc::MemRegionVal and nonloc::ConcreteInt respectively, returning  
an lvalue for the entire expression.  Since BasicStore doesn't reason  
about array accesses, (*p)[3] will evaluate to UnknownVal().

More information about the cfe-commits mailing list