Module TransferFunctions.MakeDisjunctive

In the disjunctive interpreter, the domain is a set of abstract states representing a disjunction between these states. The transfer functions are executed on each state in the disjunct independently. The join on the disjunctive state is governed by the policy described in DConfig.

Parameters

Signature

module Disjuncts : sig ... end
include SIL with type extras = TransferFunctions.extras and module CFG = TransferFunctions.CFG and type Domain.t = Disjuncts.t
include S with type instr := InferIR.Sil.instr
module CFG : ProcCfg.S
module Domain : AbstractDomain.S

abstract domain whose state we propagate

type extras

read-only extra state (results of previous analyses, globals, etc.)

type instr

type of the instructions the transfer functions operate on

val exec_instr : Domain.t -> extras ProcData.t -> CFG.Node.t -> instr -> Domain.t

A instr A'. node is the node of the current instruction

val pp_session_name : CFG.Node.t -> Stdlib.Format.formatter -> unit

print session name for HTML debug