module Computer: functor (
X
:
sig
end
) ->
sig
.. end
Parameters: |
X |
: |
sig
val version: string (* Callwise or functionwise *)
val kf: kernel_function (* Function being analyzed *)
val stmt_state: stmt -> Db.Value.state (* Memory state at the given stmt *)
val at_call: stmt -> kernel_function -> Inout_type.t (* Results of the
analysis for the given call. Must not contain locals or formals *)
end
|
|
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: Dataflow.StartData
(
sig
end
)
val copy : t -> 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 ->
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