Module PulseAttribute.Attributes
include IStdlib.PrettyPrintable.PPUniqRankSet with type elt = t
type ranktype elt= t
val add : t -> elt -> tval empty : tval find_rank : t -> rank -> elt optionval fold : t -> init:'accum -> f:('accum -> elt -> 'accum) -> 'accumval fold_map : t -> init:'accum -> f:('accum -> elt -> 'accum * elt) -> 'accum * tval for_all : f:(elt -> bool) -> t -> boolval is_empty : t -> boolval is_singleton : t -> boolval is_subset : t -> of_:t -> boolval map : t -> f:(elt -> elt) -> tval singleton : elt -> tval elements : t -> elt listval remove : elt -> t -> tval mem : elt -> t -> boolval union_prefer_left : t -> t -> tin case an element with the same rank is present both in
lhsandrhs, keep the one fromlhsinunion_prefer_left lhs rhs
val pp : ?print_rank:bool -> IStdlib.PrettyPrintable.F.formatter -> t -> unit
val get_address_of_stack_variable : t -> (IR.Var.t * IBase.Location.t * ValueHistory.t) optionval get_closure_proc_name : t -> IR.Procname.t optionval get_allocation : t -> (IR.Procname.t * Trace.t) optionval get_dynamic_type : t -> IR.Typ.t optionval is_end_of_collection : t -> boolval get_invalid : t -> (Invalidation.t * Trace.t) optionval get_isl_abduced : t -> Trace.t optionval get_must_be_valid : t -> (Trace.t * Invalidation.must_be_valid_reason option) optionval get_written_to : t -> Trace.t optionval is_modified : t -> boolval is_std_vector_reserved : t -> boolval is_uninitialized : t -> boolval get_must_be_initialized : t -> Trace.t optionval isl_subset : t -> t -> boolcheck whether for each attr in the second list, there exists a corresponding attr in the first according to
Attributes.isl_equiv.