package goblint

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

Our Control-flow graph implementation.

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
  9. | SelfLoop

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

type edges = (Cil.location * edge) list
type cfg = node -> (edges * node) list
module type CfgBackward = sig ... end
module type CfgForward = sig ... end
module type CfgBidir = sig ... end
module NodeH : sig ... end
val current_node : node option ref
val unknown_exp : Cil.exp
val dummy_func : Cil.fundec
val dummy_node : node
val all_array_index_exp : Cil.exp