Goblint_lib.EventsEvents.
type t = | Lock of LockDomain.AddrRW.t| Unlock of ValueDomain.Addr.t| Escape of EscapeDomain.EscapedVars.t| EnterMultiThreaded| SplitBranch of GoblintCil.exp * boolUsed to simulate old branch-based split.
*)| AssignSpawnedThread of GoblintCil.lval * ThreadIdDomain.Thread.tAssign spawned thread's ID to lval.
*)| Access of {exp : CilType.Exp.t;ad : ValueDomain.AD.t;kind : AccessKind.t;reach : bool;}| Assign of {lval : CilType.Lval.t;exp : CilType.Exp.t;}Used to simulate old man.assign.
| UpdateExpSplit of GoblintCil.expUsed by expsplit analysis to evaluate exp on post-state.
| Assert of GoblintCil.exp| Unassume of {exp : CilType.Exp.t;tokens : WideningToken.t list;}| Longjmped of {lval : CilType.Lval.t option;}| EnterOnce of {once_control : CilType.Exp.t;ran : bool;}Once is transformed into a sequence of: enter_once(o) if(!ran(o)) f() leave_once(o)
*)| LeaveOnce of {once_control : CilType.Exp.t;}val emit_on_deadcode : t -> boolShould event be emitted after transfer function raises Deadcode?
val pretty : unit -> t -> GoblintCil.Pretty.doc