module L = InferBase.Logging
module BoUtils = InferModules.BufferOverrunUtils
module Dom = InferModules.BufferOverrunDomain
module PO = InferModules.BufferOverrunProofObligations
module Sem = InferModules.BufferOverrunSemantics
module Trace = InferModules.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 ‑> InferModules.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 ‑> InferModules.AbsLoc.Loc.t ‑> inst_num:int ‑> new_sym_num:InferModules.Itv.Counter.t ‑> new_alloc_num:InferModules.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 set_uninitialized : InferBase.Location.t ‑> InferIR.Typ.t ‑> InferModules.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