Module Pulselib__PulseCallOperations
val call : IR.Tenv.t -> Pulselib.PulseBasicInterface.PathContext.t -> caller_proc_desc:IR.Procdesc.t -> callee_data:(IR.Procdesc.t * Pulselib.PulseSummary.t) option -> IBase.Location.t -> IR.Procname.t -> ret:(IR.Ident.t * IR.Typ.t) -> actuals:((Pulselib.PulseBasicInterface.AbstractValue.t * Pulselib.PulseBasicInterface.ValueHistory.t) * IR.Typ.t) list -> formals_opt:(IR.Pvar.t * IR.Typ.t) list option -> t -> Pulselib.PulseDomainInterface.ExecutionDomain.t Pulselib.PulseDomainInterface.AccessResult.t list
perform an interprocedural call: apply the summary for the call proc name passed as argument if it exists
val unknown_call : IR.Tenv.t -> Pulselib.PulseBasicInterface.PathContext.t -> IBase.Location.t -> Pulselib.PulseBasicInterface.CallEvent.t -> ret:(IR.Ident.t * IR.Typ.t) -> actuals:((Pulselib.PulseBasicInterface.AbstractValue.t * Pulselib.PulseBasicInterface.ValueHistory.t) * IR.Typ.t) list -> formals_opt:(IR.Pvar.t * IR.Typ.t) list option -> t -> t Pulselib.PulseDomainInterface.AccessResult.t
performs a call to a function with no summary by optimistically havoc'ing the by-ref actuals and the return value as appropriate
val conservatively_initialize_args : Pulselib.PulseBasicInterface.AbstractValue.t list -> t -> t