Goblint_lib.AccessMemory accesses and their manipulation.
module M = Messagesmodule TSH : sig ... endval typeVar : GoblintCil.varinfo TSH.tval typeIncl : GoblintCil.fieldinfo TSH.tval collect_direct_arithmetic : bool refOld access type inferred from an expression.
val equal_acc_typ : acc_typ -> acc_typ -> Ppx_deriving_runtime.boolval compare_acc_typ : acc_typ -> acc_typ -> Ppx_deriving_runtime.intval hash_acc_typ : acc_typ -> intmodule MemoRoot : sig ... endmodule Memo : sig ... endMemory location of an access.
val get_val_type : GoblintCil.exp -> acc_typval add_distribute_outer :
side:(Memo.t -> unit) ->
side_empty:(Memo.t -> unit) ->
GoblintCil.typsig ->
Offset.Unit.t ->
unitDistribute empty access set for type-based access to variables and containing fields. Empty access sets are needed for prefix-type_suffix race checking.
val add :
side:(Memo.t -> unit) ->
side_empty:(Memo.t -> unit) ->
CilType.Exp.t ->
(CilType.Varinfo.t * CilType.Offset.t) option ->
unitAdd access to known variable with offsets or unknown variable from expression.
Distribute to AddrOf of all read lvals in subexpressions.
module A : sig ... endmodule AS : sig ... endval may_race :
('a * AccessKind.t * 'b * 'c * MCPAccess.A.t) ->
('d * AccessKind.t * 'e * 'f * MCPAccess.A.t) ->
boolmodule WarnAccs : sig ... endAccess sets for race detection and warnings.
val group_may_race : WarnAccs.t -> AS.t listval race_conf : AS.t -> Batteries.Int.t optionval is_all_safe : bool refval print_accesses :
([< `Type of GoblintCil.typsig & 'a | `Var of CilType.Varinfo.t ]
* Offset.Unit.t) ->
AS.t list ->
unitval warn_global :
safe:int ref ->
vulnerable:int ref ->
unsafe:int ref ->
WarnAccs.t ->
([< `Type of GoblintCil.typsig & 'a | `Var of CilType.Varinfo.t ]
* Offset.Unit.t) ->
unit