MutexAnalysis.Specmodule Arg : sig ... endinclude sig ... endval assign :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
'aval branch :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.exp ->
bool ->
'aval body :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.fundec ->
'aval return :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
'aval enter :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
('a * 'a) listval combine_env :
'a ->
GoblintCil.lval option ->
'b ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'c ->
'd ->
Queries.ask ->
'dval combine_assign :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'aval special :
('a, 'b, 'c, 'd) Goblint_lib__Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
'amodule C : sig ... endval startcontext : unit -> Arg.D.tval startstate : 'a -> Arg.D.tval threadenter : 'a -> multiple:'b -> 'c -> 'd -> 'e -> Arg.D.t listval exitstate : 'a -> Arg.D.tmodule D = Arg.Dmodule P : sig ... endmodule V = Arg.Vmodule GProtecting = Arg.GProtectingmodule GProtected = Arg.GProtectedmodule G = Arg.Gmodule GM : sig ... endval max_protected : int refval num_mutexes : int refval sum_protected : int refval query :
(D.t,
[> `Bot | `Lifted1 of GProtecting.t | `Lifted2 of Arg.GProtected.t ],
'b,
V.t)
Analyses.ctx ->
'a Queries.t ->
'a Queries.resultmodule A : sig ... endval access : ('a * 'b, 'c, 'd, 'e) Analyses.ctx -> Queries.access -> 'aval event :
(D.t, Arg.G.t, Arg.D.t, V.t) Analyses.ctx ->
Events.t ->
(D.t, 'a, 'b, 'c) Analyses.ctx ->
D.t