MyCFG
Control-flow graph.
Distinct from CIL's CFG.
type node = Node.t =
| Statement of CilType.Stmt.t
| FunctionEntry of CilType.Fundec.t
| Function of CilType.Fundec.t
Re-exported Node.t
with constructors. See Node.t
for documentation.
type edge = Edge.t =
| Assign of CilType.Lval.t * CilType.Exp.t
| Proc of CilType.Lval.t option * CilType.Exp.t * CilType.Exp.t list
| Entry of CilType.Fundec.t
| Ret of CilType.Exp.t option * CilType.Fundec.t
| Test of CilType.Exp.t * bool
| ASM of string list * Edge.asm_out * Edge.asm_in
| VDecl of CilType.Varinfo.t
| Skip
Re-exported Edge.t
with constructors. See Edge.t
for documentation.
type edges = (CilType.Location.t * Edge.t) list
val hash_edges : edges -> int
module type CfgBackward = sig ... end
module type CfgForward = sig ... end
module type CfgBidir = sig ... end
module CfgEdge : sig ... end
Type of CFG "edges": keyed by 'from' and 'to' nodes, along with the list of connecting instructions.
module CfgEdgeH : sig ... end
module type CfgBidirSkip = sig ... end
module NodeH : sig ... end
val current_node : Node.t option Stdlib.ref
val current_cfg : (module CfgBidirSkip) Stdlib.ref
val dummy_node : node
module type FileCfg = sig ... end