summaryrefslogtreecommitdiff
path: root/cparser/Bitfields.ml
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-11-26 15:40:57 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-11-26 15:40:57 +0000
commit60b6624ae2b28ebe9fb30c2aa6115e4d5c1ab436 (patch)
treea78b0a79576773ead96a8d39902ad3a19b20ed2d /cparser/Bitfields.ml
parent015c64c64a5a547dcef81a75a589eeaf034654cd (diff)
cparser/*: refactoring of the expansion of read-modify-write operators
cparser/PackedStructs: treat r-m-w operations over byte-swapped fields cparser/PackedStructs: allow static initialization of packed structs test/regression: more packedstruct tests git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1738 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cparser/Bitfields.ml')
-rw-r--r--cparser/Bitfields.ml24
1 files changed, 1 insertions, 23 deletions
diff --git a/cparser/Bitfields.ml b/cparser/Bitfields.ml
index d16f91f..c1b83cb 100644
--- a/cparser/Bitfields.ml
+++ b/cparser/Bitfields.ml
@@ -201,28 +201,6 @@ let bitfield_assign bf carrier newval =
{edesc = EBinop(Oor, oldval_masked, newval_masked, TInt(IUInt,[]));
etyp = TInt(IUInt,[])}
-(* Transformation of operators *)
-
-let op_for_incr_decr = function
- | Opreincr -> Oadd
- | Opredecr -> Osub
- | Opostincr -> Oadd
- | Opostdecr -> Osub
- | _ -> assert false
-
-let op_for_assignop = function
- | Oadd_assign -> Oadd
- | Osub_assign -> Osub
- | Omul_assign -> Omul
- | Odiv_assign -> Odiv
- | Omod_assign -> Omod
- | Oand_assign -> Oand
- | Oor_assign -> Oor
- | Oxor_assign -> Oxor
- | Oshl_assign -> Oshl
- | Oshr_assign -> Oshr
- | _ -> assert false
-
(* Check whether a field access (e.f or e->f) is a bitfield access.
If so, return carrier expression (e and *e, respectively)
and bitfield_info *)
@@ -356,7 +334,7 @@ let transf_expr env ctx e =
bind_lvalue env (texp Val e1) (fun base ->
let carrier =
{edesc = EUnop(Odot bf.bf_carrier, base); etyp = bf.bf_carrier_typ} in
- let temp = new_temp tyfield in
+ let temp = mk_temp env tyfield in
let tyres = unary_conversion env tyfield in
let settemp = eassign temp (bitfield_extract bf carrier) in
let rhs =