<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tabulation (infer.InferModules.Tabulation)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">InferModules</a> &#x00BB; Tabulation</nav><h1>Module <code>InferModules.Tabulation</code></h1></header><dl><dt class="spec type" id="type-call_result"><a href="#type-call_result" class="anchor"></a><code><span class="keyword">type</span> call_result</code><code> = </code><table class="variant"><tr id="type-call_result.CR_success" class="anchored"><td class="def constructor"><a href="#type-call_result.CR_success" class="anchor"></a><code>| </code><code><span class="constructor">CR_success</span></code></td><td class="doc"><p>successful call</p></td></tr><tr id="type-call_result.CR_not_met" class="anchored"><td class="def constructor"><a href="#type-call_result.CR_not_met" class="anchor"></a><code>| </code><code><span class="constructor">CR_not_met</span></code></td><td class="doc"><p>precondition not met</p></td></tr><tr id="type-call_result.CR_not_found" class="anchored"><td class="def constructor"><a href="#type-call_result.CR_not_found" class="anchor"></a><code>| </code><code><span class="constructor">CR_not_found</span></code></td><td class="doc"><p>the callee has no specs</p></td></tr><tr id="type-call_result.CR_skip" class="anchored"><td class="def constructor"><a href="#type-call_result.CR_skip" class="anchor"></a><code>| </code><code><span class="constructor">CR_skip</span></code></td><td class="doc"><p>the callee was skipped</p></td></tr></table></dt><dd><p>kind of result of a procedure call</p></dd></dl><dl><dt class="spec value" id="val-log_call_trace"><a href="#val-log_call_trace" class="anchor"></a><code><span class="keyword">val</span> log_call_trace : <span>caller_name:<a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></span> <span>&#45;&gt;</span> <span>callee_name:<a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></span> <span>&#45;&gt;</span> <span>?&#8288;callee_attributes:<a href="../../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a></span> <span>&#45;&gt;</span> <span>?&#8288;reason:string</span> <span>&#45;&gt;</span> <span>?&#8288;dynamic_dispatch:<a href="../../../InferBase/InferBase/EventLogger/index.html#type-dynamic_dispatch">InferBase.EventLogger.dynamic_dispatch</a></span> <span>&#45;&gt;</span> <a href="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span>&#45;&gt;</span> <a href="index.html#type-call_result">call_result</a> <span>&#45;&gt;</span> unit</code></dt></dl><aside><p>Interprocedural footprint analysis</p></aside><dl><dt class="spec value" id="val-remove_constant_string_class"><a href="#val-remove_constant_string_class" class="anchor"></a><code><span class="keyword">val</span> remove_constant_string_class : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Remove constant string or class from a prop</p></dd></dl><dl><dt class="spec value" id="val-check_attr_dealloc_mismatch"><a href="#val-check_attr_dealloc_mismatch" class="anchor"></a><code><span class="keyword">val</span> check_attr_dealloc_mismatch : <a href="../../../InferIR/InferIR/PredSymb/index.html#type-t">InferIR.PredSymb.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/PredSymb/index.html#type-t">InferIR.PredSymb.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation</p></dd></dl><dl><dt class="spec value" id="val-find_dereference_without_null_check_in_sexp"><a href="#val-find_dereference_without_null_check_in_sexp" class="anchor"></a><code><span class="keyword">val</span> find_dereference_without_null_check_in_sexp : <a href="../../../InferIR/InferIR/Sil/index.html#type-strexp">InferIR.Sil.strexp</a> <span>&#45;&gt;</span> <span><span>(int * <a href="../../../InferIR/InferIR/PredSymb/index.html#type-path_pos">InferIR.PredSymb.path_pos</a>)</span> option</span></code></dt><dd><p>Check whether a sexp contains a dereference without null check, and return the line number and path position</p></dd></dl><dl><dt class="spec value" id="val-create_cast_exception"><a href="#val-create_cast_exception" class="anchor"></a><code><span class="keyword">val</span> create_cast_exception : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span>&#45;&gt;</span> <a href="../../../InferBase/InferBase/Logging/index.html#type-ocaml_pos">InferBase.Logging.ocaml_pos</a> <span>&#45;&gt;</span> <span><a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> option</span> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span>&#45;&gt;</span> exn</code></dt><dd><p>raise a cast exception</p></dd></dl><dl><dt class="spec value" id="val-prop_is_exn"><a href="#val-prop_is_exn" class="anchor"></a><code><span class="keyword">val</span> prop_is_exn : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> bool</code></dt><dd><p>check if a prop is an exception</p></dd></dl><dl><dt class="spec value" id="val-prop_get_exn_name"><a href="#val-prop_get_exn_name" class="anchor"></a><code><span class="keyword">val</span> prop_get_exn_name : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../../../InferIR/InferIR/Typ/Name/index.html#type-t">InferIR.Typ.Name.t</a> option</span></code></dt><dd><p>when prop is an exception, return the exception name</p></dd></dl><dl><dt class="spec value" id="val-lookup_custom_errors"><a href="#val-lookup_custom_errors" class="anchor"></a><code><span class="keyword">val</span> lookup_custom_errors : <span><span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span>string option</span></code></dt><dd><p>search in prop contains an error state</p></dd></dl><dl><dt class="spec value" id="val-exe_function_call"><a href="#val-exe_function_call" class="anchor"></a><code><span class="keyword">val</span> exe_function_call : <span>?&#8288;dynamic_dispatch:<a href="../../../InferBase/InferBase/EventLogger/index.html#type-dynamic_dispatch">InferBase.EventLogger.dynamic_dispatch</a></span> <span>&#45;&gt;</span> <a href="../Exe_env/index.html#type-t">Exe_env.t</a> <span>&#45;&gt;</span> <a href="../Summary/index.html#type-t">Summary.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Ident/index.html#type-t">InferIR.Ident.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a> <span>&#45;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <a href="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span>&#45;&gt;</span> <span><span>(<a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> * <a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a>)</span> list</span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a> <span>&#45;&gt;</span> <span><span>(<span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> * <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a>)</span> list</span></code></dt><dd><p>Execute the function call and return the list of results with return value</p></dd></dl><dl><dt class="spec value" id="val-get_specs_from_payload"><a href="#val-get_specs_from_payload" class="anchor"></a><code><span class="keyword">val</span> get_specs_from_payload : <a href="../Summary/index.html#type-t">Summary.t</a> <span>&#45;&gt;</span> <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../BiabductionSummary/index.html#type-spec">BiabductionSummary.spec</a></span> list</span></code></dt><dd><p>Get the specs from the payload of the summary.</p></dd></dl></div></body></html>