Module Pulselib__PulseAttribute
module Invalidation = Pulselib.PulseInvalidation
module Trace = Pulselib.PulseTrace
module ValueHistory = Pulselib.PulseValueHistory
type t
=
|
AddressOfCppTemporary of IR.Var.t * ValueHistory.t
|
AddressOfStackVariable of IR.Var.t * IBase.Location.t * ValueHistory.t
|
Allocated of IR.Procname.t * Trace.t
the
Procname
.t is the function causing the allocation, egmalloc
|
Closure of IR.Procname.t
|
DynamicType of IR.Typ.t
|
EndOfCollection
|
Invalid of Invalidation.t * Trace.t
|
ISLAbduced of Trace.t
The allocation is abduced so as the analysis could run normally
|
MustBeInitialized of Trace.t
|
MustBeValid of Trace.t * Invalidation.must_be_valid_reason option
|
StdVectorReserve
|
Uninitialized
|
WrittenTo of Trace.t
val pp : F.formatter -> t -> unit
val is_suitable_for_pre : t -> bool
val is_suitable_for_post : t -> bool
val map_trace : f:(Trace.t -> Trace.t) -> t -> t
applies
f
to the traces found in attributes, leaving attributes without traces intact
module Attributes : sig ... end