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>InterproceduralAnalysis (infer.Absint.InterproceduralAnalysis)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.0"/><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">Absint</a>» InterproceduralAnalysis</nav><h1>Module <code>Absint.InterproceduralAnalysis</code></h1></header><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span><span>'payload t</span></code><code> = </code><code>{</code><tableclass="record"><trid="type-t.proc_desc"class="anchored"><tdclass="def field"><ahref="#type-t.proc_desc"class="anchor"></a><code>proc_desc : <ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a>;</code></td><tdclass="doc"><p>the procedure to analyze</p></td></tr><trid="type-t.tenv"class="anchored"><tdclass="def field"><ahref="#type-t.tenv"class="anchor"></a><code>tenv : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a>;</code></td><tdclass="doc"><p><spanclass="xref-unresolved"title="unresolved reference to "Tenv.t""><code>Tenv</code>.t</span> corresponding to the current procedure</p></td></tr><trid="type-t.err_log"class="anchored"><tdclass="def field"><ahref="#type-t.err_log"class="anchor"></a><code>err_log : <ahref="../Errlog/index.html#type-t">Errlog.t</a>;</code></td><tdclass="doc"><p>the issue log for the current procedure (internally a mutable data structure)</p></td></tr><trid="type-t.exe_env"class="anchored"><tdclass="def field"><ahref="#type-t.exe_env"class="anchor"></a><code>exe_env : <ahref="../Exe_env/index.html#type-t">Exe_env.t</a>;</code></td><tdclass="doc"><p><ahref="../Exe_env/index.html#type-t"><code>Exe_env.t</code></a> for the current analysis</p></td></tr><trid="type-t.analyze_dependency"class="anchored"><tdclass="def field"><ahref="#type-t.analyze_dependency"class="anchor"></a><code>analyze_dependency : <ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a><span>-></span><span><span>(<ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> * <spanclass="type-var">'payload</span>)</span> option</span>;</code></td><tdclass="doc"><p>On-demand analysis of callees or other dependencies of the analysis of the current procedure. Uses <code>Ondemand.analyze_procedure</code>.</p></td></tr><trid="type-t.analyze_pdesc_dependency"class="anchored"><tdclass="def field"><ahref="#type-t.analyze_pdesc_dependency"class="anchor"></a><code>analyze_pdesc_dependency : <ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a><span>-></span><span><spanclass="type-var">'payload</span> option</span>;</code></td><tdclass="doc"><p>same as above when we already know the <spanclass="xref-unresolved"title="unresolved reference to "Procdesc.t""><code>Procdesc</code>.t</span></p></td></tr><trid="type-t.update_stats"class="anchored"><tdclass="def field"><ahref="#type-t.update_stats"class="anchor"></a><code>update_stats : <span>?⁠add_symops:int</span><span>-></span><span>?⁠failure_kind:<ahref="../../IBase/SymOp/index.html#type-failure_kind">IBase.SymOp.failure_kind</a></span><span>-></span> unit <span>-></span> unit;</code></td><tdclass="doc"><p>update the <code>Summary.Stats.t</code> of the summary of the current procedure</p></td></tr></table><code>}</code></dt><dd><p>Analysis data for interprocedural analysis. This is the data for one procedure under analysis, and callbacks to analyze dependencies of it as well as do bookkeeping regarding the current procedure. Basically anything that needs to access the <code>Summary.t</code> of the current procedure should go here.</p></dd></dl><dl><dtclass="spec type"id="type-file_t"><ahref="#type-file_t"class="anchor"></a><code><spanclass="keyword">type</span><span>'payload file_t</span></code><code> = </code><code>{</code><tableclass="record"><trid="type-file_t.source_file"class="anchored"><tdclass="def field"><ahref="#type-file_t.source_file"class="anchor"></a><code>source_file : <ahref="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a>;</code></td><tdclass="doc"><p>the source file under analysis</p></td></tr><trid="type-file_t.procedures"class="anchored"><tdclass="def field"><ahref="#type-file_t.procedures"class="anchor"></a><code>procedures : <span><ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a> list</span>;</code></td><tdclass="doc"><p>list of procedures declared in the source file</p></td></tr><trid="type-file_t.file_exe_env"class="anchored"><tdclass="def field"><ahref="#type-file_t.file_exe_env"class="anchor"></a><code>file_exe_env : <ahref="../Exe_env/index.html#type-t">Exe_env.t</a>;</code></td><tdclass="doc"><p><ahref="../Exe_env/index.html#type-t"><code>Exe_env.t</code></a> for the current analysis</p></td></tr><trid="type-file_t.analyze_file_dependency"class="anchored"><tdclass="def field"><ahref="#type-file_t.analyze_file_dependency"class="anchor"></a><code>analyze_file_dependency : <ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a><span>-></span><span><span>(<ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> * <spanclass="type-var">'payload</span>)</span> option</span>;</code></td><tdclass="doc"><p>On-demand analysis of dependencies needed for the file analysis, e.g. the proc names in <code>procedures</code></p></td></tr></table><code>}</code></dt><dd><p>Analysis data for the analysis of a source file.</p></dd></dl><dl><dtclass="spec value"id="val-bind_payload"><ahref="#val-bind_payload"class="anchor"></a><code><spanclass="keyword">val</span> bind_payload : <span>f:<span>(<spanclass="type-var">'payload1</span><span>-></span><span><spanclass="type-var">'payload2</span> option</span>)</span></span><span>-></span><span><spanclass="type-var">'payload1</span><ahref="index.html#type-t">t</a></span><span>-></span><span><spanclass="type-var">'payload2</span><ahref="index.html#type-t">t</a></span></code></dt></dl></div></body></html>