Module InferModules.BufferOverrunSemantics
val eval_const : InferIR.Typ.IntegerWidths.t -> InferIR.Const.t -> BufferOverrunDomain.Val.tval must_alias : InferIR.Exp.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> boolval must_alias_opt : InferIR.Exp.t option -> InferIR.Exp.t option -> BufferOverrunDomain.Mem.t -> boolval comp_rev : InferIR.Binop.t -> InferIR.Binop.tval comp_not : InferIR.Binop.t -> InferIR.Binop.tval must_alias_cmp : InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> boolval set_array_stride : InferIR.Typ.IntegerWidths.t -> InferIR.Typ.t -> BufferOverrunDomain.Val.t -> BufferOverrunDomain.Val.tval eval : InferIR.Typ.IntegerWidths.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> BufferOverrunDomain.Val.tval eval_lindex : InferIR.Typ.IntegerWidths.t -> InferIR.Exp.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> BufferOverrunDomain.Val.tval eval_unop : InferIR.Typ.IntegerWidths.t -> InferIR.Unop.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> BufferOverrunDomain.Val.tval eval_binop : InferIR.Typ.IntegerWidths.t -> InferIR.Binop.t -> InferIR.Exp.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> BufferOverrunDomain.Val.tval eval_locs : InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> AbsLoc.PowLoc.teval_locs exp memis likeeval exp mem |> Val.get_all_locsbut takes some shortcuts to avoid computing useless and/or problematic intermediate values
val eval_arr : InferIR.Typ.IntegerWidths.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> BufferOverrunDomain.Val.tval is_stack_exp : InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> bool
module ParamBindings : sig ... endval eval_sympath_modeled_partial : mode:eval_mode -> Symb.SymbolPath.partial -> BufferOverrunDomain.Val.tval eval_sympath_partial : mode:eval_mode -> BufferOverrunDomain.Val.t ParamBindings.t -> Symb.SymbolPath.partial -> 'a BufferOverrunDomain.Mem.t0 -> BufferOverrunDomain.Val.tval eval_locpath : mode:eval_mode -> BufferOverrunDomain.Val.t ParamBindings.t -> Symb.SymbolPath.partial -> 'a BufferOverrunDomain.Mem.t0 -> AbsLoc.PowLoc.tval eval_sympath : mode:eval_mode -> BufferOverrunDomain.Val.t ParamBindings.t -> Symb.SymbolPath.t -> 'a BufferOverrunDomain.Mem.t0 -> Itv.t * InferModules__BufferOverrunDomain.TraceSet.tval mk_eval_sym_trace : InferIR.Typ.IntegerWidths.t -> (ParamBindings.key * 'a) list -> (InferIR.Exp.t * 'b) InferStdlib.IStd.List.t -> BufferOverrunDomain.Mem.t -> mode:eval_mode -> BufferOverrunDomain.eval_sym_traceval mk_eval_sym : InferIR.Typ.IntegerWidths.t -> (ParamBindings.key * 'a) list -> (InferIR.Exp.t * 'b) InferStdlib.IStd.List.t -> BufferOverrunDomain.Mem.t -> Bounds.Bound.eval_symval get_sym_f : InferIR.Typ.IntegerWidths.t -> BufferOverrunDomain.Mem.t -> InferIR.Exp.t -> InferModules__BufferOverrunDomain.Relation.Sym.tval get_offset_sym_f : InferIR.Typ.IntegerWidths.t -> BufferOverrunDomain.Mem.t -> InferIR.Exp.t -> InferModules__BufferOverrunDomain.Relation.Sym.tval get_size_sym_f : InferIR.Typ.IntegerWidths.t -> BufferOverrunDomain.Mem.t -> InferIR.Exp.t -> InferModules__BufferOverrunDomain.Relation.Sym.t
module Prune : sig ... endval get_matching_pairs : InferIR.Tenv.t -> InferIR.Typ.IntegerWidths.t -> BufferOverrunDomain.Val.t -> BufferOverrunDomain.Val.t -> InferIR.Exp.t option -> InferIR.Typ.t -> BufferOverrunDomain.Mem.t -> 'a BufferOverrunDomain.Mem.t0 -> (BufferOverrunDomain.Relation.Var.t * BufferOverrunDomain.Relation.SymExp.t option) listval subst_map_of_rel_pairs : (BufferOverrunDomain.Relation.Var.t * BufferOverrunDomain.Relation.SymExp.t option) list -> BufferOverrunDomain.Relation.SubstMap.tval list_fold2_def : default:(BufferOverrunDomain.Val.t * InferIR.Exp.t option) -> f:('a -> (BufferOverrunDomain.Val.t * InferIR.Exp.t option) -> 'b -> 'b) -> 'a list -> (BufferOverrunDomain.Val.t * InferIR.Exp.t option) list -> init:'b -> 'bval get_subst_map : InferIR.Tenv.t -> InferIR.Typ.IntegerWidths.t -> (InferIR.Pvar.t * InferIR.Typ.t) list -> (InferIR.Exp.t * 'a) list -> BufferOverrunDomain.Mem.t -> 'b BufferOverrunDomain.Mem.t0 -> BufferOverrunDomain.Relation.SubstMap.t