sig
type state = Relations_type.Model.t
type t = Cvalue_type.V.t
exception Aborted
val self : Project.Computation.t
val mark_as_computed : unit -> unit
val compute : (unit -> unit) Pervasives.ref
val is_computed : unit -> bool
val degeneration_occurred :
(Cil_types.kinstr -> Cil_types.lval option -> unit) Pervasives.ref
val get_initial_state : Db_types.kernel_function -> Db.Value.state
val get_state : Cil_types.kinstr -> Db.Value.state
val globals_state : unit -> Db.Value.state
val find : Db.Value.state -> Locations.location -> Db.Value.t
val eval_lval :
(with_alarms:CilE.warn_mode ->
Locations.Zone.t option ->
Db.Value.state ->
Cil_types.lval -> Locations.Zone.t option * Cvalue_type.V.t)
Pervasives.ref
val eval_expr :
(with_alarms:CilE.warn_mode ->
Db.Value.state -> Cil_types.exp -> Cvalue_type.V.t)
Pervasives.ref
val eval_expr_with_state :
(with_alarms:CilE.warn_mode ->
Db.Value.state -> Cil_types.exp -> Db.Value.state * Cvalue_type.V.t)
Pervasives.ref
val find_lv_plus :
(with_alarms:CilE.warn_mode ->
Relations_type.Model.t ->
Cil_types.exp -> (Cil_types.lval * Ival.t) list)
Pervasives.ref
val expr_to_kernel_function :
(Cil_types.kinstr ->
with_alarms:CilE.warn_mode ->
deps:Locations.Zone.t option ->
Cil_types.exp -> Locations.Zone.t * Db_types.kernel_function list)
Pervasives.ref
val expr_to_kernel_function_state :
(Db.Value.state ->
deps:Locations.Zone.t option ->
Cil_types.exp -> Locations.Zone.t * Db_types.kernel_function list)
Pervasives.ref
exception Not_a_call
val call_to_kernel_function :
Cil_types.stmt -> Db_types.kernel_function list
val valid_behaviors :
(Db_types.kernel_function -> Db.Value.state -> Cil_types.funbehavior list)
Pervasives.ref
val is_accessible : Cil_types.kinstr -> bool
val is_reachable : Db.Value.state -> bool
val is_reachable_stmt : Cil_types.stmt -> bool
exception Void_Function
val find_return_loc : Db_types.kernel_function -> Locations.location
val is_called : (Db_types.kernel_function -> bool) Pervasives.ref
val callers :
(Db_types.kernel_function ->
(Db_types.kernel_function * Cil_types.stmt list) list)
Pervasives.ref
val never_terminates : (Db_types.kernel_function -> bool) Pervasives.ref
val access :
(Cil_types.kinstr -> Cil_types.lval -> Db.Value.t) Pervasives.ref
val access_expr :
(Cil_types.kinstr -> Cil_types.exp -> Db.Value.t) Pervasives.ref
val access_location :
(Cil_types.kinstr -> Locations.location -> Db.Value.t) Pervasives.ref
val access_after :
(Cil_types.kinstr -> Cil_types.lval -> Db.Value.t) Pervasives.ref
val access_location_after :
(Cil_types.kinstr -> Locations.location -> Db.Value.t) Pervasives.ref
val lval_to_offsetmap_after :
(Cil_types.kinstr -> Cil_types.lval -> Cvalue_type.V_Offsetmap.t option)
Pervasives.ref
val lval_to_loc :
(Cil_types.kinstr ->
with_alarms:CilE.warn_mode -> Cil_types.lval -> Locations.location)
Pervasives.ref
val lval_to_loc_with_deps :
(Cil_types.kinstr ->
with_alarms:CilE.warn_mode ->
deps:Locations.Zone.t ->
Cil_types.lval -> Locations.Zone.t * Locations.location)
Pervasives.ref
val lval_to_loc_with_deps_state :
(Db.Value.state ->
deps:Locations.Zone.t ->
Cil_types.lval -> Locations.Zone.t * Locations.location)
Pervasives.ref
val lval_to_loc_state :
(Db.Value.state -> Cil_types.lval -> Locations.location) Pervasives.ref
val lval_to_offsetmap :
(Cil_types.kinstr ->
Cil_types.lval ->
with_alarms:CilE.warn_mode -> Cvalue_type.V_Offsetmap.t option)
Pervasives.ref
val lval_to_zone :
(Cil_types.kinstr ->
with_alarms:CilE.warn_mode -> Cil_types.lval -> Locations.Zone.t)
Pervasives.ref
val lval_to_zone_state :
(Db.Value.state -> Cil_types.lval -> Locations.Zone.t) Pervasives.ref
val assigns_to_zone_inputs_state :
(Db.Value.state ->
Cil_types.identified_term Cil_types.assigns list -> Locations.Zone.t)
Pervasives.ref
module Record_Value_Callbacks :
sig
type param =
(Db_types.kernel_function * Cil_types.kinstr) list *
state Cilutil.InstrHashtbl.t
val extend : (param -> unit) -> unit
val apply : param -> unit
val is_empty : unit -> bool
val clear : unit -> unit
val length : unit -> int
end
module Record_Value_Superposition_Callbacks :
sig
type param =
(Db_types.kernel_function * Cil_types.kinstr) list *
State_set.t Cilutil.InstrHashtbl.t
val extend : (param -> unit) -> unit
val apply : param -> unit
val is_empty : unit -> bool
val clear : unit -> unit
val length : unit -> int
end
module Call_Value_Callbacks :
sig
type param = state * (Db_types.kernel_function * Cil_types.kinstr) list
val extend : (param -> unit) -> unit
val apply : param -> unit
val is_empty : unit -> bool
val clear : unit -> unit
val length : unit -> int
end
val pretty : Format.formatter -> Db.Value.t -> unit
val pretty_state_without_null : Format.formatter -> Db.Value.state -> unit
val pretty_state : Format.formatter -> Db.Value.state -> unit
val display : Format.formatter -> Db_types.kernel_function -> unit
val display_globals : Format.formatter -> unit -> unit
val noassert_get_state : Cil_types.kinstr -> Db.Value.state
val initial_state_only_globals : (unit -> Db.Value.state) Pervasives.ref
val update_table : Cil_types.kinstr -> Db.Value.state -> unit
val memoize : (Db_types.kernel_function -> unit) Pervasives.ref
val merge_initial_state :
Db_types.kernel_function -> Db.Value.state -> unit
end