Module Absint.MemoryAccess

module F = Stdlib.Format

Memory Accesses

The various kind of possible ways to access memory addresses and values. Can be used for edges in a memory graph representation or to represent values as access paths.

type ('fieldname, 'array_index) t_ =
  1. | FieldAccess of 'fieldname
  2. | ArrayAccess of IR.Typ.t * 'array_index
  3. | TakeAddress
  4. | Dereference

for internal use only, prefer using t

val compare_t_ : ('fieldname -> 'fieldname -> int) -> ('array_index -> 'array_index -> int) -> ('fieldname, 'array_index) t_ -> ('fieldname, 'array_index) t_ -> int
val equal_t_ : ('fieldname -> 'fieldname -> bool) -> ('array_index -> 'array_index -> bool) -> ('fieldname, 'array_index) t_ -> ('fieldname, 'array_index) t_ -> bool
val yojson_of_t_ : ('fieldname -> Ppx_yojson_conv_lib.Yojson.Safe.t) -> ('array_index -> Ppx_yojson_conv_lib.Yojson.Safe.t) -> ('fieldname, 'array_index) t_ -> Ppx_yojson_conv_lib.Yojson.Safe.t
type 'array_index t = (IR.Fieldname.t, 'array_index) t_
include Ppx_compare_lib.Comparable.S1 with type 'array_index t := 'array_index t
val compare : 'a Base__Ppx_compare_lib.compare -> 'a t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S1 with type 'array_index t := 'array_index t
val equal : 'a Base__Ppx_compare_lib.equal -> 'a t Base__Ppx_compare_lib.equal
val yojson_of_t : ('array_index -> Ppx_yojson_conv_lib.Yojson.Safe.t) -> 'array_index t -> Ppx_yojson_conv_lib.Yojson.Safe.t
val loose_compare : ('array_index -> 'array_index -> int) -> 'array_index t -> 'array_index t -> int

compares field names using Fieldname.compare_name insteado of Fieldname.compare

val pp : (F.formatter -> 'array_index -> unit) -> F.formatter -> 'array_index t -> unit
val is_field_or_array_access : 'a t -> bool