Offset.MakeLatticeMake offset Lattice from lattice indices.
module Idx : Index.Latticetype idx = Idx.tType of indices in offset.
include Printable.S with type t = idx Goblint_lib__.Offset_intf.ttype t = [ | `NoOffsetNo offset. Marks the end of offset list.
*)| `Field of CilType.Fieldinfo.t * idx Goblint_lib__.Offset_intf.tOffset starting with a struct field.
*)| `Index of idx * idx Goblint_lib__.Offset_intf.tOffset starting with an array index.
*) ]val is_definite : t -> boolWhether offset has only definite integer indexing (and fields).
val contains_index : t -> boolWhether offset contains any indexing.
val to_cil : t -> GoblintCil.offsetConvert to CIL offset.
val to_exp : t -> GoblintCil.exp Goblint_lib__.Offset_intf.tConvert to Goblint offset with GoblintCil.exp indices.
val to_cil_offset : t -> GoblintCil.offsetVersion of to_cil which drops indices for ArrayDomain.
val cmp_zero_offset : t -> [ `MustZero | `MustNonzero | `MayZero ]Compare offset to zero offset.
Zero indices and first fields of a struct are in the same physical memory location as the outer object.
val type_of : base:GoblintCil.typ -> t -> GoblintCil.typType of the offset on the base type.
include Lattice.S with type t := tinclude Lattice.PO with type t := tinclude Printable.S with type t := tval hash : t -> intval show : t -> stringval pretty : unit -> t -> Goblint_lib__.Printable.Pretty.docval printXml : 'a BatInnerIO.output -> t -> unitval to_yojson : t -> Yojson.Safe.tval tag : t -> intUnique ID, given by HConsed, for context identification in witness
val arbitrary : unit -> t QCheck.arbitrarywiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
val bot : unit -> tval is_bot : t -> boolval top : unit -> tval is_top : t -> boolval of_exp : GoblintCil.exp Goblint_lib__.Offset_intf.t -> tConvert from Goblint offset with GoblintCil.exp indices.
Physical memory offset in bytes of the entire offset. Used for semantic_equal.