module Make: functor (
Value
:
Abstract_value.S
) ->
functor (
Location
:
Abstract_location.External
) ->
functor (
Domain
:
Domain
with type value = Value.t
and type location = Location.location
) ->
functor (
Init
:
Initialization.S
with type state := Domain.state
) ->
functor (
Eva
:
Evaluation.S
with type state = Domain.state
and type value = Domain.value
and type loc = Domain.location
and type Valuation.t = Domain.valuation
) ->
S
with type state = Domain.state
and type value = Domain.value
type
state
type
value
val init : with_alarms:CilE.warn_mode ->
state ->
Cil_types.kernel_function ->
Cil_types.stmt ->
Cil_types.varinfo -> Cil_types.init -> state Eval.or_bottom
val assign : with_alarms:CilE.warn_mode ->
state ->
Cil_types.kernel_function ->
Cil_types.stmt ->
Cil_types.lval -> Cil_types.exp -> state Eval.or_bottom
val assume : with_alarms:CilE.warn_mode ->
state ->
Cil_types.stmt ->
Cil_types.exp -> bool -> state Eval.or_bottom
val call : with_alarms:CilE.warn_mode ->
Cil_types.stmt ->
Cil_types.lval option ->
Cil_types.exp ->
Cil_types.exp list ->
state ->
state list Eval.or_bottom * Value_types.cacheable
val split_final_states : Cil_types.kernel_function ->
Cil_types.exp ->
Integer.t list ->
state list -> state list list
val check_unspecified_sequence : with_alarms:CilE.warn_mode ->
Cil_types.stmt ->
state ->
(Cil_types.stmt * Cil_types.lval list * Cil_types.lval list *
Cil_types.lval list * Cil_types.stmt Pervasives.ref list)
list -> unit Eval.or_bottom
type
call_result = {
}
val compute_call_ref : (Cil_types.kinstr ->
value Eval.call ->
state -> call_result)
Pervasives.ref