Module InferModules.Tabulation

type call_result =
| CR_success

successful call

| CR_not_met

precondition not met

| CR_not_found

the callee has no specs

| CR_skip

the callee was skipped

kind of result of a procedure call

val log_call_trace : caller_name:InferIR.Typ.Procname.t -> callee_name:InferIR.Typ.Procname.t -> ?⁠callee_attributes:InferIR.ProcAttributes.t -> ?⁠reason:string -> ?⁠dynamic_dispatch:InferBase.EventLogger.dynamic_dispatch -> InferBase.Location.t -> call_result -> unit
val remove_constant_string_class : InferIR.Tenv.t -> 'a Prop.t -> Prop.normal Prop.t

Remove constant string or class from a prop

val check_attr_dealloc_mismatch : InferIR.PredSymb.t -> InferIR.PredSymb.t -> unit

Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation

val find_dereference_without_null_check_in_sexp : InferIR.Sil.strexp -> (int * InferIR.PredSymb.path_pos) option

Check whether a sexp contains a dereference without null check, and return the line number and path position

val create_cast_exception : InferIR.Tenv.t -> InferBase.Logging.ocaml_pos -> InferIR.Typ.Procname.t option -> InferIR.Exp.t -> InferIR.Exp.t -> InferIR.Exp.t -> exn

raise a cast exception

val prop_is_exn : InferIR.Typ.Procname.t -> 'a Prop.t -> bool

check if a prop is an exception

val prop_get_exn_name : InferIR.Typ.Procname.t -> 'a Prop.t -> InferIR.Typ.Name.t option

when prop is an exception, return the exception name

val lookup_custom_errors : 'a Prop.t -> string option

search in prop contains an error state

val exe_function_call : ?⁠dynamic_dispatch:InferBase.EventLogger.dynamic_dispatch -> Exe_env.t -> Summary.t -> InferIR.Tenv.t -> InferIR.Ident.t -> InferIR.Procdesc.t -> InferIR.Typ.Procname.t -> InferBase.Location.t -> (InferIR.Exp.t * InferIR.Typ.t) list -> Prop.normal Prop.t -> Paths.Path.t -> (Prop.normal Prop.t * Paths.Path.t) list

Execute the function call and return the list of results with return value

val get_specs_from_payload : Summary.t -> Prop.normal BiabductionSummary.spec list

Get the specs from the payload of the summary.