ThreadId.Specinclude module type of struct include Analyses.IdentitySpec endinclude module type of struct include Analyses.DefaultSpec endmodule G = Lattice.Unitmodule V = Analyses.EmptyVval 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 event : ('a, 'b, 'c, 'd) Analyses.man -> 'e -> 'f -> 'aval sync : ('a, 'b, 'c, 'd) Analyses.man -> 'e -> 'aval paths_as_set : ('a, 'b, 'c, 'd) Analyses.man -> 'a listval assign :
('a, 'b, 'c, 'd) Analyses.man ->
GoblintCil.lval ->
GoblintCil.exp ->
'aval branch : ('a, 'b, 'c, 'd) Analyses.man -> GoblintCil.exp -> bool -> 'aval body : ('a, 'b, 'c, 'd) Analyses.man -> GoblintCil.fundec -> 'aval return :
('a, 'b, 'c, 'd) Analyses.man ->
GoblintCil.exp option ->
GoblintCil.fundec ->
'aval combine_assign :
('a, 'b, 'c, 'd) Analyses.man ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'aval special :
('a, 'b, 'c, 'd) Analyses.man ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
'amodule N : sig ... endmodule TD = Thread.Dmodule Created : sig ... endmodule D : sig ... endUniqueness Counter * TID * (All thread creates of current thread * All thread creates of the current function and its callees)
module P : sig ... endval tids : (Thread.t, unit) Batteries.Hashtbl.t Batteries.refval create_tid :
?multiple:bool ->
('a * [> `Lifted of Thread.t ] * (Thread.D.t * 'b)) ->
(Node.t * int option) ->
GoblintCil.varinfo ->
[> `Lifted of Thread.t ] listval is_unique :
('a, 'b, 'c, 'd) Analyses.man ->
BoolDomain.MustBool.t Queries.resultval enter :
('a * 'b * ('c * 'd), 'e, 'f, 'g) Analyses.man ->
'h ->
'i ->
'j ->
(('a * 'b * ('c * 'd)) * ('a * 'b * ('c * TD.t))) listval created :
('a * [> `Lifted of Thread.t ] * (Thread.D.t * 'b)) ->
ConcDomain.ThreadSet.tval query : (D.t, 'b, 'c, 'd) Analyses.man -> 'a Queries.t -> 'a Queries.resultmodule A : sig ... endval access : ('a * 'b * 'c, 'd, 'e, 'f) Analyses.man -> 'g -> 'b optionval indexed_node_for_man :
('a, 'b, 'c, 'd) Analyses.man ->
Node.t * WrapperFunctionAnalysis0.ThreadCreateUniqueCount.t optionget the node that identifies the current context, possibly that of a wrapper function
val threadenter :
('a * [> `Lifted of Thread.t ] * (Thread.D.t * 'b), 'c, 'd, 'e) Analyses.man ->
multiple:bool ->
'f ->
GoblintCil.varinfo ->
'g ->
D.t listval threadspawn :
('a * 'b * (Thread.D.t * Thread.D.t), 'c, 'd, 'e) Analyses.man ->
multiple:bool ->
'f ->
'g ->
'h ->
([> `Lifted of GoblintCil.varinfo * Node.t * int option ] * 'i * 'j,
'k,
'l,
'm)
Analyses.man ->
'a * 'b * (Thread.D.t * Thread.D.t)type marshal = (Thread.t, unit) Batteries.Hashtbl.tval init : marshal option -> unitval finalize : unit -> (Thread.t, unit) Batteries.Hashtbl.t