PulseBaseAddressAttributes.S
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 : F.formatter -> t -> unit
val empty : t
val filter :
(key -> Pulselib.PulseBasicInterface.Attributes.t -> bool) ->
t ->
t
val filter_with_discarded_addrs :
(key -> bool) ->
t ->
t * Pulselib.PulseBasicInterface.AbstractValue.t list
val find_opt : key -> t -> Pulselib.PulseBasicInterface.Attributes.t option
val add_one : key -> Pulselib.PulseBasicInterface.Attribute.t -> t -> t
val add : key -> Pulselib.PulseBasicInterface.Attributes.t -> t -> t
val allocate :
Pulselib.PulseBasicInterface.Attribute.allocator ->
key ->
IBase.Location.t ->
t ->
t
val fold :
(key -> Pulselib.PulseBasicInterface.Attributes.t -> 'a -> 'a) ->
t ->
'a ->
'a
val check_valid :
key ->
t ->
(unit,
Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t)
IStdlib.IStd.result
val check_initialized :
key ->
t ->
(unit, Pulselib.PulseBasicInterface.Attribute.UninitializedTyp.t)
IStdlib.IStd.result
val invalidate :
(key * Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseBasicInterface.Invalidation.t ->
IBase.Location.t ->
t ->
t
val get_allocation :
key ->
t ->
(Pulselib.PulseBasicInterface.Attribute.allocator
* Pulselib.PulseBasicInterface.Trace.t)
option
val get_closure_proc_name : key -> t -> IR.Procname.t option
val get_copied_into :
key ->
t ->
Pulselib.PulseBasicInterface.Attribute.CopiedInto.t option
val get_copied_return :
key ->
t ->
(Pulselib.PulseBasicInterface.AbstractValue.t
* bool
* Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t
* IBase.Location.t)
option
val get_source_origin_of_copy :
key ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val get_must_be_valid :
key ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t
* Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option)
option
val get_must_not_be_tainted :
key ->
t ->
Pulselib.PulseBasicInterface.Attribute.TaintSink.t
Pulselib.PulseBasicInterface.Attribute.TaintSinkMap.t
val get_returned_from_unknown :
key ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t list option
val get_must_be_initialized :
key ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val add_dict_read_const_key :
Pulselib.PulseBasicInterface.Timestamp.t ->
Pulselib.PulseBasicInterface.Trace.t ->
key ->
IR.Fieldname.t ->
t ->
t
val get_dict_read_const_keys :
key ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConstKeys.t option
val add_static_type : IR.Typ.Name.t -> key -> t -> t
val get_static_type : t -> key -> IR.Typ.Name.t option
val get_written_to :
key ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val get_last_lookup :
key ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val add_unreachable_at : key -> IBase.Location.t -> t -> t
val add_copied_return :
key ->
source:key ->
is_const_ref:bool ->
Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t ->
IBase.Location.t ->
t ->
t
val get_config_usage :
key ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConfigUsage.t option
val get_used_as_branch_cond :
key ->
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 :
key ->
t ->
(IR.Var.t * IBase.Location.t * Pulselib.PulseBasicInterface.ValueHistory.t)
option