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>Tabulation (infer.InferModules.Tabulation)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc %%VERSION%%"/><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">InferModules</a>» Tabulation</nav><h1>Module <code>InferModules.Tabulation</code></h1></header><dl><dtclass="spec type"id="type-call_result"><ahref="#type-call_result"class="anchor"></a><code><spanclass="keyword">type</span> call_result</code><code> = </code><tableclass="variant"><trid="type-call_result.CR_success"class="anchored"><tdclass="def constructor"><ahref="#type-call_result.CR_success"class="anchor"></a><code>| </code><code><spanclass="constructor">CR_success</span></code></td><tdclass="doc"><p>successful call</p></td></tr><trid="type-call_result.CR_not_met"class="anchored"><tdclass="def constructor"><ahref="#type-call_result.CR_not_met"class="anchor"></a><code>| </code><code><spanclass="constructor">CR_not_met</span></code></td><tdclass="doc"><p>precondition not met</p></td></tr><trid="type-call_result.CR_not_found"class="anchored"><tdclass="def constructor"><ahref="#type-call_result.CR_not_found"class="anchor"></a><code>| </code><code><spanclass="constructor">CR_not_found</span></code></td><tdclass="doc"><p>the callee has no specs</p></td></tr><trid="type-call_result.CR_skip"class="anchored"><tdclass="def constructor"><ahref="#type-call_result.CR_skip"class="anchor"></a><code>| </code><code><spanclass="constructor">CR_skip</span></code></td><tdclass="doc"><p>the callee was skipped</p></td></tr></table></dt><dd><p>kind of result of a procedure call</p></dd></dl><dl><dtclass="spec value"id="val-log_call_trace"><ahref="#val-log_call_trace"class="anchor"></a><code><spanclass="keyword">val</span> log_call_trace : <span>caller_name:<ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></span><span>-></span><span>callee_name:<ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a></span><span>-></span><span>?⁠callee_attributes:<ahref="../../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a></span><span>-></span><span>?⁠reason:string</span><span>-></span><span>?⁠dynamic_dispatch:<ahref="../../../InferBase/InferBase/EventLogger/index.html#type-dynamic_dispatch">InferBase.EventLogger.dynamic_dispatch</a></span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="index.html#type-call_result">call_result</a><span>-></span> unit</code></dt></dl><aside><p>Interprocedural footprint analysis</p></aside><dl><dtclass="spec value"id="val-remove_constant_string_class"><ahref="#val-remove_constant_string_class"class="anchor"></a><code><spanclass="keyword">val</span> remove_constant_string_class : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../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><dtclass="spec value"id="val-check_attr_dealloc_mismatch"><ahref="#val-check_attr_dealloc_mismatch"class="anchor"></a><code><spanclass="keyword">val</span> check_attr_dealloc_mismatch : <ahref="../../../InferIR/InferIR/PredSymb/index.html#type-t">InferIR.PredSymb.t</a><span>-></span><ahref="../../../InferIR/InferIR/PredSymb/index.html#type-t">InferIR.PredSymb.t</a><span>-></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><dtclass="spec value"id="val-find_dereference_without_null_check_in_sexp"><ahref="#val-find_dereference_without_null_check_in_sexp"class="anchor"></a><code><spanclass="keyword">val</span> find_dereference_without_null_check_in_sexp : <ahref="../../../InferIR/InferIR/Sil/index.html#type-strexp">InferIR.Sil.strexp</a><span>-></span><span><span>(int * <ahref="../../../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><dtclass="spec value"id="val-create_cast_exception"><ahref="#val-create_cast_exception"class="anchor"></a><code><spanclass="keyword">val</span> create_cast_exception : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferBase/InferBase/Logging/index.html#type-ocaml_pos">InferBase.Logging.ocaml_pos</a><span>-></span><span><ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> option</span><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span> exn</code></dt><dd><p>raise a cast exception</p></dd></dl><dl><dtclass="spec value"id="val-prop_is_exn"><ahref="#val-prop_is_exn"class="anchor"></a><code><spanclass="keyword">val</span> prop_is_exn : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span> bool</code></dt><dd><p>check if a prop is an exception</p></dd></dl><dl><dtclass="spec value"id="val-prop_get_exn_name"><ahref="#val-prop_get_exn_name"class="anchor"></a><code><spanclass="keyword">val</span> prop_get_exn_name : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../../../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><dtclass="spec value"id="val-lookup_custom_errors"><ahref="#val-lookup_custom_errors"class="anchor"></a><code><spanclass="keyword">val</span> lookup_custom_errors : <span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span>string option</span></code></dt><dd><p>search in prop contains an error state</p></dd></dl><dl><dtclass="spec value"id="val-exe_function_call"><ahref="#val-exe_function_call"class="anchor"></a><code><spanclass="keyword">val</span> exe_function_call : <span>?⁠dynamic_dispatch:<ahref="../../../InferBase/InferBase/EventLogger/index.html#type-dynamic_dispatch">InferBase.EventLogger.dynamic_dispatch</a></span><span>-></span><ahref="../Exe_env/index.html#type-t">Exe_env.t</a><span>-></span><ahref="../Summary/index.html#type-t">Summary.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferIR/InferIR/Ident/index.html#type-t">InferIR.Ident.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><span><span>(<ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> * <ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a>)</span> list</span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="../Paths/Path/index.html#type-t">Paths.Path.t</a><span>-></span><span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> * <ahref="../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><dtclass="spec value"id="val-get_specs_from_payload"><ahref="#val-get_specs_from_payload"class="anchor"></a><code><spanclass="keyword">val</span> get_specs_from_payload : <ahref="../Summary/index.html#type-t">Summary.t</a><span>-></span><span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../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>