C2Codex.Make
module CallingContext : CallingContext
val iter_on_alarms :
(Frama_c_kernel.Alarms.t ->
Frama_c_kernel.Cil_types.location ->
Codex.Lattices.Quadrivalent.t ->
unit) ->
unit
Iterate on all registered alarms.
Iterate f on all registered assertions. f receives the location of the assertion, and strings indicating the status and method to solve the assertion.
type context = {
loop_nesting_level : int;
calling_context : CallingContext.t;
kinstr : Frama_c_kernel.Cil_types.kinstr;
ctx : Domain.Context.t;
}
type state = {
mem : Domain.memory;
var_addresses : Domain.binary VarMap.t;
string_addresses : Domain.binary StringMap.t;
context : context;
}
type funcall =
Frama_c_kernel.Kernel_function.t ->
(int * Domain.binary) list ->
state ->
(int * Domain.binary) option * state option
val init_function_args :
state ->
Frama_c_kernel.Kernel_function.t ->
(int * Domain.binary) list ->
state
val transition :
funcall:funcall ->
Frama_c_kernel.Interpreted_automata.vertex
Frama_c_kernel.Interpreted_automata.transition ->
state ->
state option * (int * Domain.binary) option
val cond_node :
Frama_c_kernel.Cil_types.exp ->
state ->
(Domain.boolean * state) option
val expression :
Frama_c_kernel.Cil_types.exp ->
state ->
(Domain.binary * state) option
val initial_state :
Frama_c_kernel.Kernel_function.t ->
CallingContext.t ->
state option * (int * Domain.binary) list
val pretty_state : Stdlib.Format.formatter -> state -> unit
val pretty_state_option : Stdlib.Format.formatter -> state option -> unit