Module 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
type marshal = unit
val init : 'a -> unit
val finalize : unit -> unit
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 morphstate : 'a -> 'b -> 'c
val sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val context : 'a -> 'b -> 'c -> 'd
val paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e list
module A = Analyses.UnitA
val access : 'a -> 'b -> unit
module D : sig ... end
include sig ... end
module C : sig ... end
val startcontext : unit -> D.t
val name : unit -> string
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 contains_float_subexp : GoblintCil.Cil.exp -> bool
val exp_equal : CilType.Exp.t -> CilType.Exp.t -> bool
val interesting : GoblintCil.exp -> bool
val query_exp_equal : 'a -> GoblintCil.exp -> GoblintCil.exp -> 'b -> D.t -> bool
val may_change_t : GoblintCil.exp -> GoblintCil.exp -> 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