aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/StructAssign.ml
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-17 13:34:12 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-17 13:34:12 +0000
commit84cb73abe0f777521ee67cec2405c9593420d3da (patch)
tree132aaf0717d782d9d4e0bdb87eff14e55bd29b6d /cparser/StructAssign.ml
parent8c2d07d888779c2dbe610da15cac5bae39e17fd0 (diff)
downloadcompcert-84cb73abe0f777521ee67cec2405c9593420d3da.tar.gz
compcert-84cb73abe0f777521ee67cec2405c9593420d3da.zip
Factor out bind_lvalue
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1715 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cparser/StructAssign.ml')
-rw-r--r--cparser/StructAssign.ml19
1 files changed, 0 insertions, 19 deletions
diff --git a/cparser/StructAssign.ml b/cparser/StructAssign.ml
index a9c5091d..5c989a3a 100644
--- a/cparser/StructAssign.ml
+++ b/cparser/StructAssign.ml
@@ -93,25 +93,6 @@ let transf_assign env lhs rhs =
else [e_lhs; e_rhs; e_size] in
{edesc = ECall(memcpy, args); etyp = TVoid[]}
-(* Detect invariant l-values *)
-
-let rec invariant_lvalue env e =
- match e.edesc with
- | EVar _ -> true
- | EUnop(Odot _, e1) -> invariant_lvalue env e1
- | _ -> false
-
-(* Bind a l-value to a temporary variable if it is not invariant. *)
-
-let bind_lvalue env e fn =
- if invariant_lvalue env e then
- fn e
- else begin
- let tmp = new_temp (TPtr(e.etyp, [])) in
- ecomma (eassign tmp (addrof e))
- (fn {edesc = EUnop(Oderef, tmp); etyp = e.etyp})
- end
-
(* Transformation of expressions. *)
type context = Val | Effects