sig
val name : string
val debug : bool Pervasives.ref
val mayReach : bool Pervasives.ref
type t = unit * int * Reachingdefs.IOS.t Reachingdefs.IH.t
module StmtStartData :
sig
type data = unit * int * IOS.t IH.t
val clear : unit -> unit
val mem : int -> bool
val find : int -> data
val replace : int -> data -> unit
val add : int -> data -> unit
val iter : (int -> data -> unit) -> unit
val length : unit -> int
end
val copy : 'a * 'b * 'c Inthash.t -> unit * 'b * 'c Inthash.t
val defIdStmtHash : Cil_types.stmt Inthash.t
val sidStmtHash : Cil_types.stmt Inthash.t
val pretty : 'a -> 'b -> unit
val nextDefId : int Pervasives.ref
val num_defs : Cil_types.stmt -> int
val computeFirstPredecessor :
Cil_types.stmt -> 'a * int * 'b Inthash.t -> unit * int * 'b Inthash.t
val combinePredecessors :
Cil_types.stmt ->
old:Reachingdefs.ReachingDef.t ->
Reachingdefs.ReachingDef.t ->
(unit * int * Reachingdefs.IOS.t Reachingdefs.IH.t) option
val doInstr :
'a ->
Cil_types.instr ->
'b * 'c * 'd ->
(unit * int * Reachingdefs.IOS.t Reachingdefs.IH.t)
Reachingdefs.DF.action
val doStmt :
Cil_types.stmt ->
'a * 'b * 'c Reachingdefs.IH.t -> 'd Reachingdefs.DF.stmtaction
val doGuard :
'a ->
'b ->
'c -> 'd Reachingdefs.DF.guardaction * 'e Reachingdefs.DF.guardaction
val filterStmt : 'a -> bool
val stmt_can_reach : 'a -> 'b -> bool
val doEdge : 'a -> 'b -> 'c -> 'c
end