<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">-  // Get the lvalue of an expression.<br>
-  // FIXME: Remove this method, and implement specialized versions for<br>
-  //  specific Decls.<br>
-  virtual RVal getLValue(const GRState* St, const Expr* Ex) = 0;<br>
+  virtual RVal getLValueVar(const GRState* St, const VarDecl* VD) = 0;<br>
<br>
-  virtual RVal getLValue(const GRState* St, const ObjCIvarDecl* D, RVal Base)=0;<br>
+  virtual RVal getLValueIvar(const GRState* St, const ObjCIvarDecl* D,<br>
+                             RVal Base)=0;<br>
+<br>
+  virtual RVal getLValueField(const GRState* St, const FieldDecl* D,<br>
+                              RVal Base) = 0;<br>
+<br>
+  virtual RVal getLValueElement(const GRState* St, RVal Base, RVal Offset) = 0;<br>
</blockquote><div><br>If we split getLValue() into these separate cases, is parameter GRState* St still needed, as we have already passed in all we need to build the lvalue?<br> <br></div></div><br></div>