This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<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><ahref="../PulsePathContext/index.html#type-t">PulseBasicInterface.PathContext.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="../PulsePathContext/index.html#type-t">PulseBasicInterface.PathContext.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><span><ahref="index.html#type-t">t</a><ahref="../PulseAccessResult/index.html#type-t">PulseDomainInterface.AccessResult.t</a></span></code></dt><dd><p>performs a call to a function with no summary by optimistically havoc'ing the by-ref actuals and the return value as appropriate</p></dd></dl><dl><dtclass="spec value"id="val-conservatively_initialize_args"><ahref="#val-conservatively_initialize_args"class="anchor"></a><code><spanclass="keyword">val</span> conservatively_initialize_args : <span><ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> list</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt></dl></div></body></html>