Module InferModules__BufferOverrunDomain.Val
type t
=
{
itv : InferModules.Itv.t;
itv_thresholds : ItvThresholds.t;
sym : Relation.Sym.t;
powloc : InferModules.AbsLoc.PowLoc.t;
arrayblk : InferModules.ArrayBlk.t;
offset_sym : Relation.Sym.t;
size_sym : Relation.Sym.t;
traces : TraceSet.t;
}
val bot : t
val pp : F.formatter -> t -> unit
val unknown_from : callee_pname:InferIR.Typ.Procname.t option -> location:InferBase.Location.t -> t
val (<=) : lhs:t -> rhs:t -> bool
val widen : prev:t -> next:t -> num_iters:int -> t
val join : t -> t -> t
val get_itv : t -> InferModules.Itv.t
val get_sym : t -> Relation.Sym.t
val get_sym_var : t -> Relation.Var.t option
val get_pow_loc : t -> InferModules.AbsLoc.PowLoc.t
val get_array_blk : t -> InferModules.ArrayBlk.t
val get_array_locs : t -> InferModules.AbsLoc.PowLoc.t
val get_all_locs : t -> InferModules.AbsLoc.PowLoc.t
val get_offset_sym : t -> Relation.Sym.t
val get_size_sym : t -> Relation.Sym.t
val get_traces : t -> TraceSet.t
val of_itv : ?traces:TraceSet.t -> InferModules.Itv.t -> t
val of_int : int -> t
val of_big_int : Z.t -> t
val of_int_lit : InferIR.IntLit.t -> t
val of_loc : ?traces:TraceSet.t -> InferModules.AbsLoc.PowLoc.elt -> t
val of_pow_loc : traces:TraceSet.t -> InferModules.AbsLoc.PowLoc.t -> t
val of_c_array_alloc : InferModules.AbsLoc.Allocsite.t -> stride:int option -> offset:InferModules.Itv.t -> size:InferModules.Itv.t -> traces:TraceSet.t -> t
val of_java_array_alloc : InferModules.AbsLoc.Allocsite.t -> length:InferModules.Itv.t -> traces:TraceSet.t -> t
val of_literal_string : InferIR.Typ.IntegerWidths.t -> string -> t
val deref_of_literal_string : InferStdlib.IStd.String.t -> t
val modify_itv : InferModules.Itv.t -> t -> t
val unknown_bit : t -> t
val neg : t -> t
val (lnot) : t -> t
val lift_itv : (InferModules.Itv.t -> InferModules.Itv.t -> InferModules.Itv.t) -> ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val lift_cmp_itv : (InferModules.Itv.t -> InferModules.Itv.t -> InferModules.Boolean.t) -> InferModules.Boolean.EqualOrder.t -> t -> t -> t
val plus_a : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val minus_a : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val get_iterator_itv : t -> t
val mult : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val div : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val mod_sem : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val shiftlt : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val shiftrt : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val band_sem : ?f_trace:(TraceSet.t -> TraceSet.t -> TraceSet.t) -> t -> t -> t
val lt_sem : t -> t -> t
val gt_sem : t -> t -> t
val le_sem : t -> t -> t
val ge_sem : t -> t -> t
val eq_sem : t -> t -> t
val ne_sem : t -> t -> t
val land_sem : t -> t -> t
val lor_sem : t -> t -> t
val lift_prune1 : (InferModules.Itv.t -> InferModules.Itv.t) -> t -> t
val lift_prune_length1 : (InferModules.Itv.t -> InferModules.Itv.t) -> t -> t
val lift_prune2 : (InferModules.Itv.t -> InferModules.Itv.t -> InferModules.Itv.t) -> (InferModules.ArrayBlk.t -> InferModules.ArrayBlk.t -> InferModules.ArrayBlk.t) -> t -> t -> t
val prune_eq_zero : t -> t
val prune_ne_zero : t -> t
val prune_ge_one : t -> t
val prune_length_eq_zero : t -> t
val prune_length_ge_one : t -> t
val prune_comp : InferIR.Binop.t -> t -> t -> t
val is_null : t -> bool
val prune_eq : t -> t -> t
val prune_ne : t -> t -> t
val is_pointer_to_non_array : t -> bool
val lift_pi : (InferModules.ArrayBlk.t -> InferModules.Itv.t -> InferModules.ArrayBlk.t) -> t -> t -> t
val plus_pi : t -> t -> t
val minus_pi : t -> t -> t
val minus_pp : t -> t -> t
val get_symbols : t -> InferModules.Itv.SymbolSet.t
val normalize : t -> t
val subst : t -> eval_sym_trace -> InferBase.Location.t -> t
val add_assign_trace_elem : InferBase.Location.t -> InferModules.AbsLoc.PowLoc.t -> t -> t
val set_array_length : InferBase.Location.t -> length:t -> t -> t
val transform_array_length : InferBase.Location.t -> f:(InferModules.Itv.t -> InferModules.Itv.t) -> t -> t
val set_array_offset : InferBase.Location.t -> InferModules.Itv.t -> t -> t
val set_array_stride : Z.t -> t -> t
val unknown_locs : t
val is_mone : t -> bool
val of_path : InferIR.Tenv.t -> may_last_field:bool -> InferIR.Typ.IntegerWidths.t -> InferBase.Location.t -> InferIR.Typ.t -> SPath.partial -> t
val on_demand : default:t -> ?typ:InferIR.Typ.t -> OndemandEnv.t -> InferModules.AbsLoc.Loc.t -> t
module Itv : sig ... end