PthreadBarriers.Specmodule Barriers : sig ... endmodule MustBarriers : sig ... endmodule Capacity = ValueDomainQueries.IDinclude module type of struct include Analyses.IdentitySpec 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 query : 'b -> 'a Queries.t -> '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 enter :
('a, 'b, 'c, 'd) Analyses.man ->
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) Analyses.man ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'aval threadspawn :
('a, 'b, 'c, 'd) Analyses.man ->
multiple:'e ->
'f ->
'g ->
'h ->
'i ->
'amodule V = Analyses.VarinfoVmodule TID = ThreadIdDomain.ThreadLiftedmodule MCPAPlusTID : sig ... endval part_access : ('a, 'b, 'c, 'd) Analyses.man -> MCPAccess.A.tmodule Waiters : sig ... endmodule Multiprocess = BoolDomain.MayBoolmodule G : sig ... endmodule MustObserved : sig ... endmodule D : sig ... endval possible_vinfos : Queries.ask -> GoblintCil.exp -> GoblintCil.varinfo listval special :
(D.t,
Multiprocess.t * ValueDomainQueries.ID.t Queries.result * Waiters.t,
'a,
GoblintCil.varinfo)
Analyses.man ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.tval startstate : 'a -> Barriers.t * MustObserved.tval threadenter :
('a, 'b, 'c, 'd) Analyses.man ->
multiple:'e ->
'f ->
'g ->
'h ->
'a listval exitstate : 'a -> Barriers.t * MustObserved.tmodule A : sig ... endval access :
('a * 'b, 'c, 'd, 'e) Analyses.man ->
Queries.access ->
'a * 'b * ThreadIdDomain.ThreadLifted.t