VarEq.Spec
include module type of struct include Analyses.DefaultSpec end
Relatively safe default implementations of some boring Spec functions.
module G = Lattice.Unit
module V = Analyses.EmptyV
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 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
module D : sig ... end
val startstate : 'a -> D.E.t
val threadenter : 'a -> multiple:'b -> 'c -> 'd -> 'e -> D.E.t list
val threadspawn :
('a, 'b, 'c, 'd) Analyses.ctx ->
multiple:'e ->
'f ->
'g ->
'h ->
'i ->
'j
val exitstate : 'a -> D.E.t
val typ_equal : CilType.Typ.t -> CilType.Typ.t -> bool
val exp_equal : CilType.Exp.t -> CilType.Exp.t -> bool
val query_exp_equal :
'a ->
GoblintCil.exp ->
GoblintCil.exp ->
'b ->
D.t ->
bool
val may_change_pt :
(ValueDomain.AD.t Queries.t -> ValueDomainQueries.LS.t) ->
GoblintCil.exp ->
GoblintCil.exp ->
bool
val may_change : Queries.ask -> GoblintCil.exp -> GoblintCil.exp -> bool
val remove_exp : Queries.ask -> GoblintCil.exp -> D.t -> D.t
val remove : Queries.ask -> GoblintCil.lval -> D.t -> D.t
val is_global_var :
Queries.ask ->
GoblintCil.exp ->
BoolDomain.MustBool.t Queries.result option
val add_eq : Queries.ask -> GoblintCil.lval -> Exp.t -> D.t -> D.E.t
val reachables :
deep:bool ->
Queries.ask ->
GoblintCil.exp list ->
ValueDomain.AD.t
val body : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val branch : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f -> 'g
val return : (D.t, 'a, 'b, 'c) Analyses.ctx -> 'd -> GoblintCil.fundec -> D.t
val assign :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
D.t
val enter :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
'd ->
GoblintCil.fundec ->
Exp.t list ->
(D.t * D.t) list
val combine_env :
(D.E.t, 'a, 'b, 'c) Analyses.ctx ->
'd ->
'e ->
'f ->
'g ->
'h ->
D.E.t ->
Queries.ask ->
D.E.t
val combine_assign :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
'd ->
'e ->
'f ->
'g ->
'h ->
Queries.ask ->
D.t
val remove_reachable :
deep:bool ->
Queries.ask ->
GoblintCil.exp list ->
D.t ->
D.t
val unknown_fn :
(D.E.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.Cil.varinfo ->
LibraryDesc.Cil.Cil.exp list ->
D.t
val special :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.Cil.varinfo ->
LibraryDesc.Cil.Cil.exp list ->
D.t
val eq_set :
GoblintCil.exp ->
D.t ->
[ `Lifted of SetDomain.Make(CilType.Exp).t | `Top ]
val eq_set_clos : GoblintCil.exp -> D.t -> Queries.ES.t
val query :
(D.t, 'b, 'c, 'd) Analyses.ctx ->
'a Queries.t ->
'a0 Queries.result
val event : (D.t, 'a, 'b, 'c) Analyses.ctx -> Events.t -> 'd -> D.t