You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7 lines
12 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferModules__Summary (infer.InferModules__Summary)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules__Summary</span></h1></header><p>Procedure summaries: the results of the capture and all the analysis for a single procedure,
plus some statistics</p><div class="spec module" id="module-Stats"><a href="#module-Stats" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Stats/index.html">Stats</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module" id="module-Status"><a href="#module-Status" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Status/index.html">Status</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-t.payloads" class="anchored"><td class="def field"><a href="#type-t.payloads" class="anchor"></a><code>payloads : <a href="../InferModules/Payloads/index.html#type-t">InferModules.Payloads.t</a>;</code></td></tr><tr id="type-t.sessions" class="anchored"><td class="def field"><a href="#type-t.sessions" class="anchor"></a><code>sessions : int <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref;</code></td><td class="doc"><p>(** Session number: how many nodes went through symbolic execution *)</p></td></tr><tr id="type-t.stats" class="anchored"><td class="def field"><a href="#type-t.stats" class="anchor"></a><code>stats : <a href="Stats/index.html#type-t">Stats.t</a>;</code></td></tr><tr id="type-t.status" class="anchored"><td class="def field"><a href="#type-t.status" class="anchor"></a><code>status : <a href="Status/index.html#type-t">Status.t</a>;</code></td></tr><tr id="type-t.proc_desc" class="anchored"><td class="def field"><a href="#type-t.proc_desc" class="anchor"></a><code>proc_desc : <a href="../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a>;</code></td></tr></table><code>}</code><code></code></div><div class="doc"><p>summary of a procedure name</p></div></div><div class="spec val" id="val-dummy"><a href="#val-dummy" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>dummy : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>dummy summary for testing</p></div></div><div class="spec val" id="val-add"><a href="#val-add" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add : <a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Add the summary to the table for the given function</p></div></div><div class="spec val" id="val-has_model"><a href="#val-has_model" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>has_model : <a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Check if a summary for a given procedure exists in the models directory</p></div></div><div class="spec val" id="val-clear_cache"><a href="#val-clear_cache" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clear_cache : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>remove all the elements from the cache of summaries</p></div></div><div class="spec val" id="val-get"><a href="#val-get" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get : <a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Return the summary option for the procedure name</p></div></div><div class="spec val" id="val-get_proc_name"><a href="#val-get_proc_name" class="anchor"></a><div class="def val"><code><span class="key
First look at specs (to get attributes computed by analysis)
then look at the attributes table.
If no attributes can be found, return None.</p></div></div><div class="spec val" id="val-proc_is_library"><a href="#val-proc_is_library" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>proc_is_library : <a href="../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Check if the procedure is from a library:
It's not defined, and there is no spec file for it.</p></div></div><div class="spec val" id="val-store"><a href="#val-store" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>store : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Save summary for the procedure into the spec database</p></div></div></body></html>