Module Pulselib.PulseValueHistory

module F = Stdlib.Format
module CallEvent = PulseCallEvent
type event =
| Allocation of {
f : CallEvent.t;
location : IBase.Location.t;
}
| Assignment of IBase.Location.t
| Call of {
f : CallEvent.t;
location : IBase.Location.t;
in_call : t;
}
| Capture of {
captured_as : IR.Pvar.t;
mode : IR.CapturedVar.capture_mode;
location : IBase.Location.t;
}
| Conditional of {
is_then_branch : bool;
if_kind : IR.Sil.if_kind;
location : IBase.Location.t;
}
| CppTemporaryCreated of IBase.Location.t
| FormalDeclared of IR.Pvar.t * IBase.Location.t
| StructFieldAddressCreated of IR.Fieldname.t IStdlib.RevList.t * IBase.Location.t
| VariableAccessed of IR.Pvar.t * IBase.Location.t
| VariableDeclared of IR.Pvar.t * IBase.Location.t
and t = event list
val compare_event : event -> event -> int
val compare : t -> t -> int
val equal_event : event -> event -> bool
val equal : t -> t -> bool
val yojson_of_event : event -> Ppx_yojson_conv_lib.Yojson.Safe.t
val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
val pp : F.formatter -> t -> unit
val pp_fields : F.formatter -> IR.Fieldname.t IStdlib.RevList.t -> unit
val location_of_event : event -> IBase.Location.t
val add_to_errlog : nesting:int -> t -> Absint.Errlog.loc_trace_elem list -> Absint.Errlog.loc_trace_elem list