Module InferModules__SymExec
Symbolic Execution
val declare_locals_and_ret : InferIR.Tenv.t -> InferIR.Procdesc.t -> InferModules.Prop.normal InferModules.Prop.t -> InferModules.Prop.normal InferModules.Prop.t
Symbolic execution of the declaration of locals and return value.
val node : (exn -> unit) -> InferModules.Exe_env.t -> InferIR.Tenv.t -> InferModules.Summary.t -> InferModules.ProcCfg.Exceptional.t -> InferModules.ProcCfg.Exceptional.Node.t -> InferModules.Paths.PathSet.t -> InferModules.Paths.PathSet.t
Symbolic execution of the instructions of a node, lifted to sets of propositions.
val instrs : ?mask_errors:bool -> InferModules.Exe_env.t -> InferIR.Tenv.t -> InferModules.Summary.t -> InferIR.Instrs.not_reversed_t -> (InferModules.Prop.normal InferModules.Prop.t * InferModules.Paths.Path.t) list -> (InferModules.Prop.normal InferModules.Prop.t * InferModules.Paths.Path.t) list
Symbolic execution of a sequence of instructions. If errors occur and
mask_errors
is true, just treat as skip.
val diverge : InferModules.Prop.normal InferModules.Prop.t -> InferModules.Paths.Path.t -> (InferModules.Prop.normal InferModules.Prop.t * InferModules.Paths.Path.t) list
Symbolic execution of the divergent pure computation.
val proc_call : ?dynamic_dispatch:InferBase.EventLogger.dynamic_dispatch -> InferModules.Exe_env.t -> InferModules.Summary.t -> InferModules.Builtin.t
val unknown_or_scan_call : is_scan:bool -> reason:string -> InferIR.Typ.t -> InferIR.Annot.Item.t -> InferModules.Builtin.t
val check_variadic_sentinel : ?fails_on_nil:bool -> int -> (int * int) -> InferModules.Builtin.t
val check_arith_norm_exp : InferIR.Tenv.t -> InferIR.Typ.Procname.t -> InferIR.Exp.t -> InferModules.Prop.normal InferModules.Prop.t -> InferIR.Exp.t * InferModules.Prop.normal InferModules.Prop.t
Check for arithmetic problems and normalize an expression.
val prune : InferIR.Tenv.t -> positive:bool -> InferIR.Exp.t -> InferModules.Prop.normal InferModules.Prop.t -> InferModules.Propset.t