CanonValue.Attributes
type t = PulseBaseAddressAttributes.t
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
val pp : Pulselib.PulseBaseAddressAttributes.F.formatter -> t -> unit
val empty : t
val filter : (t -> Pulselib.PulseBasicInterface.Attributes.t -> bool) -> t -> t
val filter_with_discarded_addrs :
(t -> bool) ->
t ->
t * Pulselib.PulseBasicInterface.AbstractValue.t list
val find_opt : t -> t -> Pulselib.PulseBasicInterface.Attributes.t option
val add_one : t -> Pulselib.PulseBasicInterface.Attribute.t -> t -> t
val add : t -> Pulselib.PulseBasicInterface.Attributes.t -> t -> t
val allocate :
Pulselib.PulseBasicInterface.Attribute.allocator ->
t ->
IBase.Location.t ->
t ->
t
val fold :
(t -> Pulselib.PulseBasicInterface.Attributes.t -> 'a -> 'a) ->
t ->
'a ->
'a
val check_valid :
t ->
t ->
(unit,
Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t)
IStdlib.IStd.result
val check_initialized :
t ->
t ->
(unit, Pulselib.PulseBasicInterface.Attribute.UninitializedTyp.t)
IStdlib.IStd.result
val invalidate :
(t * Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseBasicInterface.Invalidation.t ->
IBase.Location.t ->
t ->
t
val get_allocation :
t ->
t ->
(Pulselib.PulseBasicInterface.Attribute.allocator
* Pulselib.PulseBasicInterface.Trace.t)
option
val get_closure_proc_name : t -> t -> IR.Procname.t option
val get_copied_into :
t ->
t ->
Pulselib.PulseBasicInterface.Attribute.CopiedInto.t option
val get_copied_return :
t ->
t ->
(Pulselib.PulseBasicInterface.AbstractValue.t
* bool
* Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t
* IBase.Location.t)
option
val get_source_origin_of_copy :
t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val get_must_be_valid :
t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t
* Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option)
option
val get_must_not_be_tainted :
t ->
t ->
Pulselib.PulseBasicInterface.Attribute.TaintSink.t
Pulselib.PulseBasicInterface.Attribute.TaintSinkMap.t
val get_returned_from_unknown :
t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t list option
val get_must_be_initialized :
t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val add_dict_read_const_key :
Pulselib.PulseBasicInterface.Timestamp.t ->
Pulselib.PulseBasicInterface.Trace.t ->
t ->
IR.Fieldname.t ->
t ->
t
val get_dict_read_const_keys :
t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConstKeys.t option
val add_static_type : IR.Typ.Name.t -> t -> t -> t
val get_static_type : t -> t -> IR.Typ.Name.t option
val get_written_to :
t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val get_last_lookup :
t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val add_unreachable_at : t -> IBase.Location.t -> t -> t
val add_copied_return :
t ->
source:t ->
is_const_ref:bool ->
Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t ->
IBase.Location.t ->
t ->
t
val get_config_usage :
t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConfigUsage.t option
val get_used_as_branch_cond :
t ->
t ->
(IR.Procname.t * IBase.Location.t * Pulselib.PulseBasicInterface.Trace.t)
option
val remove_all_must_not_be_tainted :
?kinds:Pulselib.PulseBasicInterface.TaintConfig.Kind.Set.t ->
t ->
t
val get_address_of_stack_variable :
t ->
t ->
(IR.Var.t * IBase.Location.t * Pulselib.PulseBasicInterface.ValueHistory.t)
option