Module InferModules.BufferOverrunModels
module L = InferBase.Logging
module BoUtils = BufferOverrunUtils
module Dom = BufferOverrunDomain
module PO = BufferOverrunProofObligations
module Sem = BufferOverrunSemantics
module Relation = BufferOverrunDomainRelation
module Trace = BufferOverrunTrace
type exec_fun
= BoUtils.ModelEnv.model_env -> ret:(InferIR.Ident.t * InferIR.Typ.t) -> Dom.Mem.t -> Dom.Mem.t
type check_fun
= BoUtils.ModelEnv.model_env -> Dom.Mem.t -> PO.ConditionSet.checked_t -> PO.ConditionSet.checked_t
type model
=
{
exec : exec_fun;
check : check_fun;
}
val no_check : 'a -> 'b -> 'c -> 'c
val no_model : model
val at : ?size:InferStdlib.IStd.Int64.t -> InferIR.Exp.t -> InferIR.Exp.t -> model
val get_malloc_info : InferIR.Exp.t -> InferIR.Typ.t * InferStdlib.IStd.Int.t option * InferIR.Exp.t * InferIR.Exp.t option
val check_alloc_size : can_be_zero:bool -> InferIR.Exp.t -> BoUtils.ModelEnv.model_env -> BufferOverrunDomain.Mem.t -> PO.ConditionSet.checked_t -> PO.ConditionSet.checked_t
val fgets : InferIR.Exp.t -> InferIR.Exp.t -> model
val malloc : can_be_zero:bool -> InferIR.Exp.t -> model
val calloc : InferIR.Exp.t -> InferIR.Exp.t -> can_be_zero:bool -> model
val memcpy : InferIR.Exp.t -> InferIR.Exp.t -> InferIR.Exp.t -> model
val memset : InferIR.Exp.t -> InferIR.Exp.t -> model
val eval_string_len : InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> InferModules__BufferOverrunDomain.Val.t
val strlen : InferIR.Exp.t -> model
val strcpy : InferIR.Exp.t -> InferIR.Exp.t -> model
val strncpy : InferIR.Exp.t -> InferIR.Exp.t -> InferIR.Exp.t -> model
val strcat : InferIR.Exp.t -> InferIR.Exp.t -> model
val realloc : InferIR.Exp.t -> InferIR.Exp.t -> model
val placement_new : InferIR.Exp.t -> (InferIR.Exp.t * InferIR.Typ.t) -> (InferIR.Exp.t * InferIR.Typ.t) option -> model
val strndup : InferIR.Exp.t -> InferIR.Exp.t -> model
val inferbo_min : InferIR.Exp.t -> InferIR.Exp.t -> model
val set_size : BoUtils.ModelEnv.model_env -> Dom.Val.t -> InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> Dom.Mem.t
val inferbo_set_size : InferIR.Exp.t -> InferIR.Exp.t -> model
val model_by_value : InferModules__BufferOverrunDomain.Val.t -> InferIR.Ident.t -> Dom.Mem.t -> Dom.Mem.t
val range_itv_mone : InferIR.Exp.t -> BufferOverrunDomain.Mem.t -> Itv.t
Given a string of length n, return itv
-1, n_u-1
.
val indexOf : InferIR.Exp.t -> model
val cast : InferIR.Exp.t -> model
val by_value : InferModules__BufferOverrunDomain.Val.t -> model
val by_risky_value_from : Trace.lib_fun -> Dom.Val.t -> model
val bottom : model
val infer_print : InferIR.Exp.t -> model
val eval_array_locs_length : AbsLoc.PowLoc.t -> 'a Dom.Mem.t0 -> Dom.Val.t
val get_array_length : InferIR.Exp.t -> model
val set_array_length : (InferIR.Exp.t * InferIR.Typ.t) -> InferIR.Exp.t -> model
val snprintf : model
val vsnprintf : model
val copy : InferModules__BufferOverrunDomain.Val.t -> InferIR.Ident.t -> Dom.Mem.t -> Dom.Mem.t
val create_copy_array : InferIR.Exp.t -> model
Creates a new array with the values from the given array.
module CFArray : sig ... end
module Split : sig ... end
module Boost : sig ... end
module Folly : sig ... end
module StdArray : sig ... end
module StdBasicString : sig ... end
module StdVector : sig ... end
module Collection : sig ... end
val unmodifiable : 'a -> InferStdlib.IStd.String.t -> bool
module Call : sig ... end