module L = InferBase.Logging
module BoUtils = BufferOverrunUtils
module Dom = BufferOverrunDomain
module PO = BufferOverrunProofObligations
module Sem = BufferOverrunSemantics
module Trace = BufferOverrunTrace
module TraceSet = Trace.Set
type model_env
=
{
pname : InferIR.Typ.Procname.t; |
node_hash : int; |
location : InferBase.Location.t; |
tenv : InferIR.Tenv.t; |
ret : (InferIR.Ident.t * InferIR.Typ.t) option; |
}
val mk_model_env : InferIR.Typ.Procname.t ‑> int ‑> InferBase.Location.t ‑> ?ret:(InferIR.Ident.t * InferIR.Typ.t) ‑> InferIR.Tenv.t ‑> model_env
type declare_local_fun
= decl_local:BoUtils.Exec.decl_local ‑> model_env ‑> AbsLoc.Loc.t ‑> inst_num:int ‑> dimension:int ‑> Dom.Mem.astate ‑> Dom.Mem.astate * int
type declare_symbolic_fun
= decl_sym_val:BoUtils.Exec.decl_sym_val ‑> model_env ‑> depth:int ‑> AbsLoc.Loc.t ‑> inst_num:int ‑> new_sym_num:Itv.Counter.t ‑> new_alloc_num:Itv.Counter.t ‑> Dom.Mem.astate ‑> Dom.Mem.astate
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 : InferIR.Exp.t ‑> model_env ‑> BufferOverrunDomain.Mem.astate ‑> InferModules__BufferOverrunProofObligations.ConditionWithTrace.t InferStdlib.IStd.List.t ‑> InferModules__BufferOverrunProofObligations.ConditionWithTrace.t InferStdlib.IStd.List.t
val set_uninitialized : InferBase.Location.t ‑> InferIR.Typ.t ‑> AbsLoc.PowLoc.t ‑> Dom.Mem.t ‑> Dom.Mem.t
val malloc : InferIR.Exp.t ‑> model
val realloc : InferIR.Exp.t ‑> InferIR.Exp.t ‑> model
val placement_new : InferIR.Exp.t ‑> model
val inferbo_min : InferIR.Exp.t ‑> InferIR.Exp.t ‑> model
val inferbo_set_size : InferIR.Exp.t ‑> InferIR.Exp.t ‑> model
val model_by_value : InferModules__BufferOverrunDomain.Val.t ‑> (InferIR.Ident.t * 'a) option ‑> Dom.Mem.t ‑> Dom.Mem.t
val by_value : InferModules__BufferOverrunDomain.Val.t ‑> model
val bottom : model
val infer_print : InferIR.Exp.t ‑> model
val get_array_length : InferIR.Exp.t ‑> model
val set_array_length : (InferIR.Exp.t * InferIR.Typ.t) ‑> InferIR.Exp.t ‑> model
module Split : sig ... end
module Boost : sig ... end
module Folly : sig ... end
module StdArray : sig ... end
module Call : sig ... end
module TypName : sig ... end