MutexGhosts.Specinclude module type of struct include UnitAnalysis.Spec endinclude module type of struct include Analyses.DefaultSpec endmodule P = Analyses.EmptyPval vdecl : ('a, 'b, 'c, 'd) Analyses.man -> 'e -> 'aval asm : ('a, 'b, 'c, 'd) Analyses.man -> 'aval skip : ('a, 'b, 'c, 'd) Analyses.man -> 'aval sync : ('a, 'b, 'c, 'd) Analyses.man -> 'e -> 'aval paths_as_set : ('a, 'b, 'c, 'd) Analyses.man -> 'a listmodule A = Analyses.UnitAmodule D = Lattice.Unitmodule C = Printable.Unitval assign :
(D.t, 'a, 'b, 'c) Analyses.man ->
GoblintCil.lval ->
GoblintCil.exp ->
D.tval branch : (D.t, 'a, 'b, 'c) Analyses.man -> GoblintCil.exp -> bool -> D.tval body : (D.t, 'a, 'b, 'c) Analyses.man -> GoblintCil.fundec -> D.tval return :
(D.t, 'a, 'b, 'c) Analyses.man ->
GoblintCil.exp option ->
GoblintCil.fundec ->
D.tval enter :
(D.t, 'a, 'b, 'c) Analyses.man ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
(D.t * D.t) listval combine_assign :
(D.t, 'a, 'b, 'c) Analyses.man ->
GoblintCil.lval option ->
'd ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'e ->
D.t ->
Queries.ask ->
D.tval special :
(D.t, 'a, 'b, 'c) Analyses.man ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.tmodule V : sig ... endmodule Locked : sig ... endmodule Unlocked : sig ... endmodule MultiThread : sig ... endmodule G : sig ... endval mustlock_of_addr : ValueDomain.Addr.t -> LockDomain.MustLock.t optionval event :
('a,
[> `Bot
| `Lifted1 of Locked.t * Unlocked.t * MultiThread.t
| `Lifted2 of [> `Lifted1 of bool | `Lifted2 of NodeSet.t ] ],
'b,
[> `Left of MyCFG.node
| `Middle of LockDomain.MustLock.t
| `Right of bool ])
Analyses.man ->
Events.t ->
'c ->
'aval threadspawn :
('a, [> `Lifted2 of [> `Lifted2 of NodeSet.t ] ], 'b, [> `Right of bool ])
Analyses.man ->
multiple:'c ->
'd ->
'e ->
'f ->
'g ->
'aval ghost_var_available :
('a,
[> `Bot | `Lifted2 of [> `Lifted1 of BoolDomain.MayBool.t ] ],
'b,
[> `Middle of GoblintCil.varinfo * LockDomain.MustLock.idx Offset.t ])
Analyses.man ->
WitnessGhost.Var.t ->
boolmodule VariableSet : sig ... endval query :
('b,
[> `Bot
| `Lifted1 of Locked.t * Unlocked.t * MultiThread.t
| `Lifted2 of [> `Lifted1 of BoolDomain.MayBool.t | `Lifted2 of NodeSet.t ] ],
'c,
V.t)
Analyses.man ->
'a Queries.t ->
'a Queries.result