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 ‑> InferBase.Location.t ‑> call_result ‑> unit
Interprocedural footprint analysis
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_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 exe_function_call : 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.