<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>