Module Pulselib.PulseInterproc

val apply_prepost : IR.Procname.t -> IBase.Location.t -> callee_prepost:PulseAbductiveDomain.t -> captured_vars_with_actuals:(IR.Var.t * (PulseBasicInterface.AbstractValue.t * PulseBasicInterface.ValueHistory.t)) list -> formals:IR.Var.t list -> actuals:((PulseBasicInterface.AbstractValue.t * PulseBasicInterface.ValueHistory.t) * IR.Typ.t) list -> PulseAbductiveDomain.t -> ((PulseAbductiveDomain.t * (PulseBasicInterface.AbstractValue.t * PulseBasicInterface.ValueHistory.t) option) optionPulseBasicInterface.Diagnostic.t * PulseAbductiveDomain.t) IStdlib.IStd.result

return the abstract state after the call along with an optional return value, or None if the precondition could not be satisfied (e.g. some aliasing constraints were not satisfied)