package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Control-flow graph.

Distinct from CIL's CFG.

type node = Node.t =
  1. | Statement of CilType.Stmt.t
  2. | FunctionEntry of CilType.Fundec.t
  3. | Function of CilType.Fundec.t

Re-exported Node.t with constructors. See Node.t for documentation.

type edge = Edge.t =
  1. | Assign of CilType.Lval.t * CilType.Exp.t
  2. | Proc of CilType.Lval.t option * CilType.Exp.t * CilType.Exp.t list
  3. | Entry of CilType.Fundec.t
  4. | Ret of CilType.Exp.t option * CilType.Fundec.t
  5. | Test of CilType.Exp.t * bool
  6. | ASM of string list * Edge.asm_out * Edge.asm_in
  7. | VDecl of CilType.Varinfo.t
  8. | Skip

Re-exported Edge.t with constructors. See Edge.t for documentation.

type edges = (CilType.Location.t * Edge.t) list
val equal_edges : edges -> edges -> Ppx_deriving_runtime.bool
val hash_edges : edges -> int
type cfg = node -> (edges * node) list
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 unknown_exp : GoblintCil.exp
val dummy_func : GoblintCil.fundec
val dummy_node : node
module type FileCfg = sig ... end
OCaml

Innovation. Community. Security.