Pulselib.PulseBaseAddressAttributesmodule type S = sig ... endinclude S with type key := Pulselib.PulseBasicInterface.AbstractValue.tinclude Ppx_compare_lib.Comparable.S with type t := tval compare : t Base__Ppx_compare_lib.compareinclude Ppx_compare_lib.Equal.S with type t := tval equal : t Base__Ppx_compare_lib.equalval yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.tval pp : F.formatter -> t -> unitval empty : tval filter :
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
bool) ->
t ->
tval filter_with_discarded_addrs :
(Pulselib.PulseBasicInterface.AbstractValue.t -> bool) ->
t ->
t * Pulselib.PulseBasicInterface.AbstractValue.t listval find_opt :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attributes.t optionval add_one :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attribute.t ->
t ->
tval add :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
t ->
tval allocate :
Pulselib.PulseBasicInterface.Attribute.allocator ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
tval always_reachable : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval java_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval hack_async_await : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval csharp_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval fold :
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
'a ->
'a) ->
t ->
'a ->
'aval check_valid :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(unit,
Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t)
IStdlib.IStd.resultval check_initialized :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(unit, Pulselib.PulseBasicInterface.Attribute.UninitializedTyp.t)
IStdlib.IStd.resultval invalidate :
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseBasicInterface.Invalidation.t ->
IBase.Location.t ->
t ->
tval get_allocation :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Attribute.allocator
* Pulselib.PulseBasicInterface.Trace.t)
optionval get_closure_proc_name :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
IR.Procname.t optionval get_copied_into :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.CopiedInto.t optionval get_copied_return :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.AbstractValue.t
* bool
* Pulselib.PulseBasicInterface.Attribute.CopyOrigin.t
* IBase.Location.t)
optionval remove_copied_return :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval get_source_origin_of_copy :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t optionval is_copied_from_const_ref :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval 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)
optionval get_must_not_be_tainted :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.TaintSink.t
Pulselib.PulseBasicInterface.Attribute.TaintSinkMap.tval get_returned_from_unknown :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t list optionval get_must_be_initialized :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
optionval add_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval remove_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval is_dict_contain_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval add_dict_read_const_key :
Pulselib.PulseBasicInterface.Timestamp.t ->
Pulselib.PulseBasicInterface.Trace.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IR.Fieldname.t ->
t ->
tval get_dict_read_const_keys :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConstKeys.t optionval add_static_type :
IR.Typ.Name.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval get_static_type :
t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IR.Typ.Name.t optionval get_written_to :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
optionval std_vector_reserve : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval is_java_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval is_csharp_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval is_in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval is_std_moved : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> boolval is_std_vector_reserved :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval get_last_lookup :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t optionval mark_as_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval is_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval add_unreachable_at :
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
tval 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 ->
tval get_config_usage :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.ConfigUsage.t optionval get_used_as_branch_cond :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(IR.Procname.t * IBase.Location.t * Pulselib.PulseBasicInterface.Trace.t)
optionval remove_allocation_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval remove_taint_attrs : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval remove_all_must_not_be_tainted :
?kinds:Pulselib.PulseBasicInterface.TaintConfig.Kind.Set.t ->
t ->
tval remove_must_be_valid_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval initialize : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval get_address_of_stack_variable :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(IR.Var.t * IBase.Location.t * Pulselib.PulseBasicInterface.ValueHistory.t)
optionval has_unknown_effect :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval canonicalize_post :
get_var_repr:
(Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.AbstractValue.t) ->
t ->
tmerge 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