functor (Domain : InputDomain) ->
sig
val backward_location :
Domain.t ->
Cil_types.lval ->
Cil_types.typ -> 'loc -> 'v -> ('loc * 'v) Eval.or_bottom
val reduce_further :
Domain.t -> Cil_types.exp -> 'v -> (Cil_types.exp * 'v) list
val evaluate_predicate :
Domain.t Abstract_domain.logic_environment ->
Domain.t -> Cil_types.predicate -> Alarmset.status
val reduce_by_predicate :
Domain.t Abstract_domain.logic_environment ->
Domain.t -> Cil_types.predicate -> bool -> Domain.t Eval.or_bottom
val interpret_acsl_extension :
Cil_types.acsl_extension ->
Domain.t Abstract_domain.logic_environment -> Domain.t -> Domain.t
val enter_loop : Cil_types.stmt -> Domain.t -> Domain.t
val incr_loop_counter : Cil_types.stmt -> Domain.t -> Domain.t
val leave_loop : Cil_types.stmt -> Domain.t -> Domain.t
val filter :
Cil_types.kernel_function ->
[ `Post | `Pre ] -> Base.Hptset.t -> Domain.t -> Domain.t
val reuse :
Cil_types.kernel_function ->
Base.Hptset.t ->
current_input:Domain.t -> previous_output:Domain.t -> Domain.t
val show_expr :
'a -> Domain.t -> Format.formatter -> Cil_types.exp -> unit
val post_analysis : Domain.t Lattice_bounds.or_bottom -> unit
module Store :
sig
val register_global_state : bool -> Domain.t Eval.or_bottom -> unit
val register_initial_state :
Value_types.callstack -> Domain.t -> unit
val register_state_before_stmt :
Value_types.callstack -> Cil_types.stmt -> Domain.t -> unit
val register_state_after_stmt :
Value_types.callstack -> Cil_types.stmt -> Domain.t -> unit
val get_global_state : unit -> Domain.t Eval.or_bottom
val get_initial_state :
Cil_types.kernel_function -> Domain.t Eval.or_bottom
val get_initial_state_by_callstack :
?selection:Eval.callstack list ->
Cil_types.kernel_function ->
Domain.t Value_types.Callstack.Hashtbl.t Eval.or_top_bottom
val get_stmt_state :
after:bool -> Cil_types.stmt -> Domain.t Eval.or_bottom
val get_stmt_state_by_callstack :
?selection:Eval.callstack list ->
after:bool ->
Cil_types.stmt ->
Domain.t Value_types.Callstack.Hashtbl.t Eval.or_top_bottom
val mark_as_computed : unit -> unit
val is_computed : unit -> bool
end
val key : Domain.t Abstract_domain.key
end