Module Goblint_lib.Events

Events.

type t =
  1. | Lock of LockDomain.AddrRW.t
  2. | Unlock of ValueDomain.Addr.t
  3. | Escape of EscapeDomain.EscapedVars.t
  4. | EnterMultiThreaded
  5. | SplitBranch of GoblintCil.exp * bool
    (*

    Used to simulate old branch-based split.

    *)
  6. | AssignSpawnedThread of GoblintCil.lval * ThreadIdDomain.Thread.t
    (*

    Assign spawned thread's ID to lval.

    *)
  7. | Access of {
    1. exp : CilType.Exp.t;
    2. ad : ValueDomain.AD.t;
    3. kind : AccessKind.t;
    4. reach : bool;
    }
  8. | Assign of {
    1. lval : CilType.Lval.t;
    2. exp : CilType.Exp.t;
    }
    (*

    Used to simulate old ctx.assign.

    *)
  9. | UpdateExpSplit of GoblintCil.exp
    (*

    Used by expsplit analysis to evaluate exp on post-state.

    *)
  10. | Assert of GoblintCil.exp
  11. | Unassume of {
    1. exp : CilType.Exp.t;
    2. uuids : string list;
    }
  12. | Longjmped of {
    1. lval : CilType.Lval.t option;
    }
val emit_on_deadcode : t -> bool

Should event be emitted after transfer function raises Deadcode?

val pretty : unit -> t -> GoblintCil.Pretty.doc