On Oct 5, 2008, at 6:28 PM, Zhongxing Xu wrote:
My either idea was to have regions encode minimal information that
could be shared amongst different implementations of StoreManager.
I'm not really certain why you wish to add a VarDecl* "pointedBy"
field into AnonTypedRegion? I didn't get around to commenting this
class, but AnonTypedRegion is meant to represent a typed chunk of
memory; it doesn't have to be pointed by a VarDecl. It also seems
to me that you are using AnonTypedRegion exactly the way BasicStore
uses VarRegion. Isn't it the same thing? The "Anon" means
anonymous; it means there is no name associated with this region.
I use VarDecl* to differentiate AnonTypedRegions. For example, for
void foo(char* a, char* b) {...},
'a' and 'b' both points to an AnonTypedRegion with type 'char', I
just use the VarDecl's of 'a' and 'b' to differentiate these two
regions. This is definitely not optimal design, because there might
be AnonTypedRegion that are not pointed to by any variable. So it
should be discussed. But one thing is sure: we need something to be
associated with AnonTypedRegion besides its type and superregion.
I understand, but this particular use of AnonTypedRegions is exactly
the same as VarRegion. Why not just use VarRegion instead and save
the extra QualType? It also avoids putting the VarDecl* in
AnonTypedRegion, since at that point the region is not anonymous.
It seems to me that RegionStoreManager doesn't need to use just one
kind of region and one ImmutableMap. For example, a map from VarDecl*
-> VarRegion could be used for mappings from variables to regions, and
then other maps could be used for other bindings. For example, a
(MemRegion*, FieldDecl*) -> FieldRegion could be used for field
bindings. A second set of mappings could then be used for region ->
value bindings. In your prototype implementation you have
AnonTypedRegion* -> RVal, but one could also just have MemRegion* ->
RVal._______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits