TracingPriv.Privmodule RD : RelationDomain.RDmodule V : Printable.Smodule P : DisjointDomain.Representative with type elt := D.tPath-representative.
type relation_components_t := RelationDomain.RelComponents(RD)(D).tval startstate : unit -> D.tval read_global :
Queries.ask ->
(V.t -> G.t) ->
relation_components_t ->
GoblintCil.varinfo ->
GoblintCil.varinfo ->
RD.tval write_global :
?invariant:bool ->
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
relation_components_t ->
GoblintCil.varinfo ->
GoblintCil.varinfo ->
relation_components_tval lock :
Queries.ask ->
(V.t -> G.t) ->
relation_components_t ->
LockDomain.MustLock.t ->
relation_components_tval unlock :
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
relation_components_t ->
LockDomain.MustLock.t ->
relation_components_tval sync :
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
relation_components_t ->
[ `Normal
| `Join
| `JoinCall of CilType.Fundec.t
| `Return
| `Init
| `Thread ] ->
relation_components_tval escape :
Node.t ->
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
relation_components_t ->
EscapeDomain.EscapedVars.t ->
relation_components_tval enter_multithreaded :
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
relation_components_t ->
relation_components_tval threadenter :
Queries.ask ->
(V.t -> G.t) ->
relation_components_t ->
relation_components_tval thread_join :
?force:bool ->
Queries.ask ->
(V.t -> G.t) ->
GoblintCil.Cil.exp ->
relation_components_t ->
relation_components_tval thread_return :
Queries.ask ->
(V.t -> G.t) ->
(V.t -> G.t -> unit) ->
ThreadIdDomain.Thread.t ->
relation_components_t ->
relation_components_tval iter_sys_vars : (V.t -> G.t) -> VarQuery.t -> V.t VarQuery.f -> unitQueries.IterSysVars for apron.
val invariant_global : Queries.ask -> (V.t -> G.t) -> V.t -> Invariant.tReturns flow-insensitive invariant for global unknown.
val invariant_vars :
Queries.ask ->
(V.t -> G.t) ->
relation_components_t ->
GoblintCil.varinfo listReturns global variables which are privatized.