<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>PulseCallOperations (infer.Pulselib.PulseCallOperations)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.1"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../../index.html">infer</a>»<ahref="../index.html">Pulselib</a>» PulseCallOperations</nav><h1>Module <code>Pulselib.PulseCallOperations</code></h1></header><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code><code> = <ahref="../PulseAbductiveDomain/index.html#type-t">PulseDomainInterface.AbductiveDomain.t</a></code></dt></dl><dl><dtclass="spec value"id="val-call"><ahref="#val-call"class="anchor"></a><code><spanclass="keyword">val</span> call : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span>caller_proc_desc:<ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a></span><span>-></span><span>callee_data:<span><span>(<ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> * <ahref="../PulseSummary/index.html#type-t">PulseSummary.t</a>)</span> option</span></span><span>-></span><ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a><span>-></span><ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a><span>-></span><span>ret:<span>(<ahref="../../IR/Ident/index.html#type-t">IR.Ident.t</a> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span></span><span>-></span><span>actuals:<span><span>(<span>(<ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.t</a>)</span> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span></span><span>-></span><span>formals_opt:<span><span><span>(<ahref="../../IR/Pvar/index.html#type-t">IR.Pvar.t</a> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span> option</span></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><span><span><ahref="../PulseExecutionDomain/index.html#type-t">PulseDomainInterface.ExecutionDomain.t</a><ahref="../PulseAccessResult/index.html#type-t">PulseDomainInterface.AccessResult.t</a></span> list</span></code></dt><dd><p>perform an interprocedural call: apply the summary for the call proc name passed as argument if it exists</p></dd></dl><dl><dtclass="spec value"id="val-unknown_call"><ahref="#val-unknown_call"class="anchor"></a><code><spanclass="keyword">val</span> unknown_call : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a><span>-></span><ahref="../PulseCallEvent/index.html#type-t">PulseBasicInterface.CallEvent.t</a><span>-></span><span>ret:<span>(<ahref="../../IR/Ident/index.html#type-t">IR.Ident.t</a> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span></span><span>-></span><span>actuals:<span><span>(<span>(<ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.t</a>)</span> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span></span><span>-></span><span>formals_opt:<span><span><span>(<ahref="../../IR/Pvar/index.html#type-t">IR.Pvar.t</a> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span> option</span></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>performs a call to a function with no summary by optimistically havoc'ing the by-ref actuals and the ret