sig
module type T =
sig
type t
val pretty : Stdlib.Format.formatter -> Abstract_offset.T.t -> unit
val append :
Abstract_offset.T.t -> Abstract_offset.T.t -> Abstract_offset.T.t
val join :
Abstract_offset.T.t -> Abstract_offset.T.t -> Abstract_offset.T.t
val of_cil_offset :
(Cil_types.exp -> Int_val.t) ->
Cil_types.typ -> Cil_types.offset -> Abstract_offset.T.t
val of_ival :
base_typ:Cil_types.typ ->
typ:Cil_types.typ -> Ival.t -> Abstract_offset.T.t
val of_term_offset :
Cil_types.typ -> Cil_types.term_offset -> Abstract_offset.T.t
val is_singleton : Abstract_offset.T.t -> bool
end
type typed_offset =
NoOffset of Cil_types.typ
| Index of Int_val.t * Cil_types.typ * Abstract_offset.typed_offset
| Field of Cil_types.fieldinfo * Abstract_offset.typed_offset
module TypedOffset :
sig
type t = typed_offset
val pretty : Format.formatter -> t -> unit
val append : t -> t -> t
val join : t -> t -> t
val of_cil_offset :
(Cil_types.exp -> Int_val.t) ->
Cil_types.typ -> Cil_types.offset -> t
val of_ival :
base_typ:Cil_types.typ -> typ:Cil_types.typ -> Ival.t -> t
val of_term_offset : Cil_types.typ -> Cil_types.term_offset -> t
val is_singleton : t -> bool
end
module TypedOffsetOrTop :
sig
type t = [ `Top | `Value of typed_offset ]
val pretty : Format.formatter -> t -> unit
val append : t -> t -> t
val join : t -> t -> t
val of_cil_offset :
(Cil_types.exp -> Int_val.t) ->
Cil_types.typ -> Cil_types.offset -> t
val of_ival :
base_typ:Cil_types.typ -> typ:Cil_types.typ -> Ival.t -> t
val of_term_offset : Cil_types.typ -> Cil_types.term_offset -> t
val is_singleton : t -> bool
end
end