Module RelationPriv.TracingPriv

Parameters

module Priv : S

Signature

module Priv : sig ... end
include module type of struct include Priv end
module G = Priv.G
module V = Priv.V
module P = Priv.P

Path-representative.

val name : unit -> string
val startstate : unit -> Priv.D.t
val iter_sys_vars : (V.t -> G.t) -> VarQuery.t -> V.t VarQuery.f -> unit

Queries.IterSysVars for apron.

val invariant_vars : Queries.ask -> (V.t -> G.t) -> RelationDomain.RelComponents(RD)(Priv.D).t -> GoblintCil.varinfo list

Returns global variables which are privatized.

val init : unit -> unit
val finalize : unit -> unit
module D = Priv.D
module RelComponents : sig ... end
val write_global : ?invariant:bool -> Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> RelComponents.t -> CilType.Varinfo.t -> CilType.Varinfo.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val lock : Queries.ask -> (V.t -> G.t) -> RelComponents.t -> LockDomain.MustLock.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val unlock : Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> RelComponents.t -> LockDomain.MustLock.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val enter_multithreaded : Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> RelComponents.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val threadenter : Queries.ask -> (V.t -> G.t) -> RelComponents.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val sync : Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> RelComponents.t -> [ `Init | `Join | `JoinCall of CilType.Fundec.t | `Normal | `Return | `Thread ] -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val escape : Node.t -> Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> RelComponents.t -> EscapeDomain.EscapedVars.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val thread_join : ?force:bool -> Queries.ask -> (V.t -> G.t) -> GoblintCil.Cil.exp -> RelComponents.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t
val thread_return : Queries.ask -> (V.t -> G.t) -> (V.t -> G.t -> unit) -> ThreadIdDomain.Thread.t -> RelComponents.t -> Goblint_lib__.RelationDomain.RelComponents(RD)({D}9).t