aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2017-02-06 14:34:32 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2017-02-06 14:34:32 +0100
commitd04a44a21b6329d5fbc419eaeb03e818d40607e5 (patch)
treec82d0b6a6244f51976079b58b09e41778ff68d80
parent9e9ef45a2315694bf6efbfe8b8c9a0dd9f19e292 (diff)
downloadcompcert-kvx-d04a44a21b6329d5fbc419eaeb03e818d40607e5.tar.gz
compcert-kvx-d04a44a21b6329d5fbc419eaeb03e818d40607e5.zip
Cleanup opens.
The Printf is only needed for the identifier functions. Furthermore the new intconst from Cutil is used to generate the integer constant and shadowing of the open C is removed.
-rw-r--r--cparser/Bitfields.ml17
1 files changed, 8 insertions, 9 deletions
diff --git a/cparser/Bitfields.ml b/cparser/Bitfields.ml
index dc630ad3..2431a0bd 100644
--- a/cparser/Bitfields.ml
+++ b/cparser/Bitfields.ml
@@ -17,9 +17,8 @@
(* Assumes: nothing. *)
-open Printf
open Machine
-open !C
+open C
open Cutil
open Transform
@@ -67,7 +66,9 @@ let is_signed_enum_bitfield env sid fld eid n =
else if List.for_all (fun (_, v, _) -> int_representable v n true) info.Env.ei_members
then true
else begin
- Cerrors.warning Cutil.no_loc Cerrors.Unnamed "not all values of type 'enum %s' can be represented in bit-field '%s' of struct '%s' (%d bits are not enough)" eid.name fld sid.C.name n;
+ Cerrors.warning Cutil.no_loc Cerrors.Unnamed
+ "not all values of type 'enum %s' can be represented in bit-field '%s' of struct '%s' (%d bits are not enough)"
+ eid.C.name fld sid.C.name n;
false
end
@@ -117,7 +118,7 @@ let rec transf_struct_members env id count = function
transf_struct_members env id count ml'
else begin
(* Create integer field of sufficient size for this bitfield group *)
- let carrier = sprintf "__bf%d" count in
+ let carrier = Printf.sprintf "__bf%d" count in
let carrier_ikind = unsigned_ikind_for_carrier nbits in
let carrier_typ = TInt(carrier_ikind, []) in
(* Enter each field with its bit position, size, signedness *)
@@ -148,7 +149,7 @@ let rec transf_union_members env id count = function
(match m.fld_bitfield with
| None -> m::transf_union_members env id count ms
| Some nbits ->
- let carrier = sprintf "__bf%d" count in
+ let carrier = Printf.sprintf "__bf%d" count in
let carrier_ikind = unsigned_ikind_for_carrier nbits in
let carrier_typ = TInt(carrier_ikind, []) in
let signed =
@@ -200,7 +201,7 @@ let insertion_mask bf =
(Int64.pred (Int64.shift_left 1L bf.bf_size))
bf.bf_pos in
(* Give the mask an hexadecimal string representation, nicer to read *)
- {edesc = EConst(CInt(m, IUInt, sprintf "0x%LXU" m)); etyp = TInt(IUInt, [])}
+ intconst ~hex:true m IUInt
let eshift env op a b =
let ty = unary_conversion env a.etyp in
@@ -282,9 +283,7 @@ let bitfield_initializer bf i =
let m = Int64.pred (Int64.shift_left 1L bf.bf_size) in
let e_cast =
if bf.bf_bool then ecast (TInt(IBool,[])) e else e in
- let e_mask =
- {edesc = EConst(CInt(m, IUInt, sprintf "0x%LXU" m));
- etyp = TInt(IUInt, [])} in
+ let e_mask = intconst ~hex:true m IUInt in
let e_and =
{edesc = EBinop(Oand, e_cast, e_mask, TInt(IUInt,[]));
etyp = TInt(IUInt,[])} in