functor
(X : sig
val version : string
val kf : Cil_types.kernel_function
val stmt_state : Cil_types.stmt -> Db.Value.state
val at_call :
Cil_types.stmt -> Cil_types.kernel_function -> Inout_type.t
end) ->
sig
val name : string
val debug : bool Pervasives.ref
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
val non_terminating_callees_inputs : Locations.Zone.t Pervasives.ref
val non_terminating_callees_outputs : Locations.Zone.t Pervasives.ref
type t = Operational_inputs.compute_t
val pretty : Format.formatter -> Operational_inputs.compute_t -> unit
module StmtStartData :
sig
type data = compute_t
val clear : unit -> unit
val mem : Cil_types.stmt -> bool
val find : Cil_types.stmt -> data
val replace : Cil_types.stmt -> data -> unit
val add : Cil_types.stmt -> data -> unit
val iter : (Cil_types.stmt -> data -> unit) -> unit
val length : unit -> int
end
val copy : Operational_inputs.Computer.t -> Operational_inputs.Computer.t
val computeFirstPredecessor :
Cil_types.stmt ->
Operational_inputs.compute_t -> Operational_inputs.compute_t
val combinePredecessors :
Cil_types.stmt ->
old:Operational_inputs.compute_t ->
Operational_inputs.compute_t -> Operational_inputs.compute_t option
val doInstr :
Cil_types.stmt ->
Cil_types.instr ->
Operational_inputs.Computer.t ->
Operational_inputs.compute_t Dataflow.action
val doStmt :
Cil_types.stmt ->
Operational_inputs.compute_t -> 'a Dataflow.stmtaction
val filterStmt : Cil_types.stmt -> bool
val doGuard :
Cil_types.stmt ->
Cil_types.exp ->
'a -> 'b Dataflow.guardaction * 'c Dataflow.guardaction
val doEdge : 'a -> 'b -> 'c -> 'c
val init_dataflow : unit -> Cil_types.stmt
val end_dataflow : unit -> Operational_inputs.tt
end