Pulselib.PulseValueOrigin
module AbstractValue = PulseAbstractValue
module ValueHistory = PulseValueHistory
module Access = PulseAccess
type t =
| InMemory of {
src : AbstractValue.t * ValueHistory.t;
access : Access.t;
dest : AbstractValue.t * ValueHistory.t;
}
| OnStack of {
var : IR.Var.t;
addr_hist : AbstractValue.t * ValueHistory.t;
}
| Unknown of AbstractValue.t * ValueHistory.t
Values without a known origin such as those containing constant values.
*)Describes a (value, history) pair with path/origin when available.
Useful when one needs to overwrite a history of a particular value in the abstract state.
val unknown : (AbstractValue.t * ValueHistory.t) -> t
val addr_hist : t -> AbstractValue.t * ValueHistory.t
val addr_hist_args :
t Absint.ProcnameDispatcher.Call.FuncArg.t list ->
(AbstractValue.t * ValueHistory.t) Absint.ProcnameDispatcher.Call.FuncArg.t
list
val value : t -> AbstractValue.t