PulseAbductiveDomain.AddressAttributesSafe version of PulseBaseAddressAttributes
val abduce_one :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attribute.t ->
t ->
tadd the attribute to the pre, if the address is in pre
val abduce_all :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
t ->
tabduce_one on each attribute in the set
val add_one :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attribute.t ->
t ->
tadd the attribute only to the post
val add_all :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attributes.t ->
t ->
tadd_one on each attribute in the set
val find_opt :
[ `Pre | `Post ] ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attributes.t optionval check_valid :
PathContext.t ->
?must_be_valid_reason:
Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason ->
Pulselib.PulseBasicInterface.Trace.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(t,
Pulselib.PulseBasicInterface.Invalidation.t
* Pulselib.PulseBasicInterface.Trace.t)
IStdlib.IStd.resultval check_initialized :
PathContext.t ->
Pulselib.PulseBasicInterface.Trace.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(t, Pulselib.PulseBasicInterface.Attribute.UninitializedTyp.t)
IStdlib.IStd.resultval add_taint_sink :
PathContext.t ->
Pulselib.PulseBasicInterface.TaintItem.t ->
Pulselib.PulseBasicInterface.Trace.t ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval invalidate :
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseBasicInterface.Invalidation.t ->
IBase.Location.t ->
t ->
tval initialize : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tRemove "Uninitialized" attribute of the given address
val set_uninitialized :
IR.Tenv.t ->
PathContext.t ->
[ `LocalDecl of
IR.Pvar.t
* (Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t)
option
| `Malloc of
Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t ] ->
IR.Typ.t ->
IBase.Location.t ->
t ->
tAdd "Uninitialized" attributes when a variable is declared or a memory is allocated by malloc.
val always_reachable : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval allocate :
Pulselib.PulseBasicInterface.Attribute.allocator ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
tval java_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval await_awaitable : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval remove_hack_builder :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval set_hack_builder :
Pulselib.PulseBasicInterface.AbstractValue.t ->
Pulselib.PulseBasicInterface.Attribute.Builder.t ->
t ->
tval get_hack_builder :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.Builder.t optionval is_java_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval csharp_resource_release :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval is_csharp_resource_released :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval is_in_reported_retain_cycle :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval 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 add_static_type :
IR.Tenv.t ->
IR.Typ.name ->
Pulselib.PulseBasicInterface.AbstractValue.t ->
IBase.Location.t ->
t ->
tval remove_allocation_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval remove_taint_attrs : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> tval get_allocation_attr :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Attribute.allocator
* Pulselib.PulseBasicInterface.Trace.t)
optionval get_static_type :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
IR.Typ.Name.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 get_taint_sources_and_sanitizers :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.Attribute.TaintedSet.t
* Pulselib.PulseBasicInterface.Attribute.TaintSanitizedSet.tval get_propagate_taint_from :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Attribute.taint_propagation_reason
* Pulselib.PulseBasicInterface.Attribute.taint_in list)
optionval is_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval mark_as_end_of_collection :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
tval is_std_vector_reserved :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval get_last_lookup :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t optionval std_vector_reserve : Pulselib.PulseBasicInterface.AbstractValue.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_valid_returned_from_unknown :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
Pulselib.PulseBasicInterface.AbstractValue.t list optionval get_written_to :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
(Pulselib.PulseBasicInterface.Timestamp.t
* Pulselib.PulseBasicInterface.Trace.t)
optionval is_copied_from_const_ref :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
boolval is_std_moved : Pulselib.PulseBasicInterface.AbstractValue.t -> t -> boolval 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 is_hack_constinit_called :
Pulselib.PulseBasicInterface.AbstractValue.t ->
t ->
bool