Pulselib.PulseBaseAddressAttributes
module type S = sig ... end
include S with type key := Pulselib.PulseBasicInterface.AbstractValue.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 : F.formatter -> t -> unit
val empty : t
val filter :
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
bool) ->
t ->
t
val filter_with_discarded_addrs :
(Pulselib.PulseBasicInterface.AbstractValue.t -> bool) ->
t ->
t * Pulselib.PulseBasicInterface.AbstractValue.t list
val find_opt :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attributes.t option
val add_one :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attribute.t ->
t ->
t
val add :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
t ->
t
val allocate :
Pulselib.PulseBasicInterface.Attribute.allocator ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
t
val always_reachable : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> t
val java_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val hack_async_await : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> t
val csharp_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val fold :
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
'a ->
'a) ->
t ->
'a ->
'a
val check_valid :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(unit,
Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t)
IStdlib.IStd.result
val check_initialized :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(unit, Pulselib.PulseBasicInterface.Attribute.UninitializedTyp.t)
IStdlib.IStd.result
val invalidate :
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseBasicInterface.Invalidation.t ->
IBase.Location.t ->
t ->
t
val get_allocation :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Attribute.allocator
* Pulselib.PulseBasicInterface.Trace.t)
option
val get_closure_proc_name :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
IR.Procname.t option
val get_copied_into :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.CopiedInto.t option
val get_copied_return :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.AbstractValue.t
* bool
* Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t
* IBase.Location.t)
option
val remove_copied_return :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val get_source_origin_of_copy :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val is_copied_from_const_ref :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val get_must_be_valid :
Pulselib.PulseBasicInterface.AbstractValue.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 :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.TaintSink.t
Pulselib.PulseBasicInterface.Attribute.TaintSinkMap.t
val get_returned_from_unknown :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t list option
val get_must_be_initialized :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val add_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val remove_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val is_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val add_dict_read_const_key :
Pulselib.PulseBasicInterface.Timestamp.t ->
Pulselib.PulseBasicInterface.Trace.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IR.Fieldname.t ->
t ->
t
val get_dict_read_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConstKeys.t option
val add_static_type :
IR.Typ.Name.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val get_static_type :
t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IR.Typ.Name.t option
val get_written_to :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
option
val std_vector_reserve : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> t
val is_java_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val is_csharp_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val is_in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val is_std_moved : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> bool
val is_std_vector_reserved :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val get_last_lookup :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t option
val mark_as_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val is_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val add_unreachable_at :
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
t
val add_copied_return :
Pulselib.PulseBasicInterface.AbstractValue.t ->
source:Pulselib.PulseBasicInterface.AbstractValue.t ->
is_const_ref:bool ->
Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t ->
IBase.Location.t ->
t ->
t
val get_config_usage :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConfigUsage.t option
val get_used_as_branch_cond :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(IR.Procname.t * IBase.Location.t * Pulselib.PulseBasicInterface.Trace.t)
option
val remove_allocation_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val remove_taint_attrs : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> t
val remove_all_must_not_be_tainted :
?kinds:Pulselib.PulseBasicInterface.TaintConfig.Kind.Set.t ->
t ->
t
val remove_must_be_valid_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
t
val initialize : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> t
val get_address_of_stack_variable :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(IR.Var.t * IBase.Location.t * Pulselib.PulseBasicInterface.ValueHistory.t)
option
val has_unknown_effect :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool
val canonicalize_post :
get_var_repr:
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.AbstractValue.t) ->
t ->
t
merge the attributes of all the variables that are equal according to get_var_repr
and remove non-canonical variables in favor of their representative
val subst_var :
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.AbstractValue.t) ->
t ->
t