ThreadJoins.Spec
include module type of struct include Analyses.IdentitySpec end
include module type of struct include Analyses.DefaultSpec end
Relatively safe default implementations of some boring Spec functions.
module P = Analyses.UnitP
val vdecl : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val event : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f -> 'g
val sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e list
module A = Analyses.UnitA
val assign :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
'e
val branch : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.exp -> bool -> 'e
val body : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.fundec -> 'e
val enter :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
('e * 'f) list
val combine_assign :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'h
val threadenter :
('a, 'b, 'c, 'd) Analyses.ctx ->
multiple:'e ->
'f ->
'g ->
'h ->
'i list
module D : sig ... end
module G = D
module V : sig ... end
val threadreturn :
(TIDs.t * bool, TIDs.t * bool, 'a, ThreadIdDomain.Thread.t) Analyses.ctx ->
unit
val return :
(D.t, TIDs.t * bool, 'a, ThreadIdDomain.Thread.t) Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
D.t
val special :
(D.t, TIDs.t * bool, 'a, ThreadIdDomain.Thread.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.t
val threadspawn :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
multiple:'d ->
'e ->
'f ->
'g ->
('h, 'i, 'j, 'k) Analyses.ctx ->
D.t
val query :
(ConcDomain.MustThreadSet.t * bool, 'b, 'c, 'd) Analyses.ctx ->
'a Queries.t ->
'a0 Queries.result
val combine_env :
(ConcDomain.ThreadSet.t * bool, 'a, 'b, 'c) Analyses.ctx ->
'd ->
'e ->
'f ->
'g ->
'h ->
(ConcDomain.ThreadSet.t * bool) ->
'i ->
ConcDomain.ThreadSet.t * bool
val startstate : 'a -> ConcDomain.ThreadSet.t * bool
val exitstate : 'a -> ConcDomain.ThreadSet.t * bool