<div dir="ltr">Yeah, it seems a little confusing. But other names are worse:<br>AbstractVal, too long<br>AVal, like nonsense.<br>ProgVal, even farther way.<br><br>If ExprVal has to be replaced, I prefer AVal, at least it indicates some special value: AVal.<br>
<br><div class="gmail_quote">On Fri, Oct 17, 2008 at 1:22 PM, Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c"><br>
On Oct 16, 2008, at 10:15 PM, Zhongxing Xu wrote:<br>
<br>
</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">
This is the renaming patch:<br>
<br>
RVal => ExprVal<br>
LVal => Loc<br>
NonLVal => NonLoc<br>
lval => loc<br>
nonlval => nonloc<br></div></div>
<rename.patch>_______________________________________________<br>
</blockquote>
<br>
The patch looks great, but I'm a little hesitant about the name "ExprVal." For example, this patch shows "ExprVals" being used with the Store:<br>
<br>
+Store BasicStoreManager::SetExprVal(Store store, Loc LV, ExprVal V) {<br>
switch (LV.getSubKind()) {<br>
- case lval::MemRegionKind: {<br>
+ case loc::MemRegionKind: {<br>
VarRegion* R =<br>
- dyn_cast<VarRegion>(cast<lval::MemRegionVal>(LV).getRegion());<br>
+ dyn_cast<VarRegion>(cast<loc::MemRegionVal>(LV).getRegion());<br>
<br>
if (!R)<br>
return store;<br>
@@ -157,16 +157,16 @@<br>
: VBFactory.Add(B, R->getDecl(), V).getRoot();<br>
}<br>
default:<br>
- assert ("SetRVal for given LVal type not yet implemented.");<br>
+ assert ("SetExprVal for given Loc type not yet implemented.");<br>
return store;<br>
}<br>
}<br>
<br>
This just seems confusing. Why is the store reasoning about "expression values"? It makes sense to those using the system already, but the name doesn't capture its purpose well.<br>
<br>
What do you think? AbstractVal? AVal? ProgVal?<br>
<br>
Otherwise I think the patch looks great. Changing ExprVal to something else is just a couple lines of Perl/sed.<br>
<br>
</blockquote></div><br></div>