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.

4 lines
9.8 KiB

<!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="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.Tabulation</span></h1></header><div class="spec type" id="type-call_result"><a href="#type-call_result" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>call_result</code><code></code><code><span class="keyword"> = </span></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><span class="keyword">| </span></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><span class="keyword">| </span></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><span class="keyword">| </span></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><span class="keyword">| </span></code><code><span class="constructor">CR_skip</span></code></td><td class="doc"><p>(** the callee was skipped *)</p></td></tr></table><code></code></div><div class="doc"><p>kind of result of a procedure call</p></div></div><div class="spec val" id="val-log_call_trace"><a href="#val-log_call_trace" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>log_call_trace : caller_name:<a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> callee_name:<a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;callee_attributes:<a href="../../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;reason:string <span class="keyword">&#8209;&gt;</span> <a href="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-call_result">call_result</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><p>Interprocedural footprint analysis</p><div class="spec val" id="val-remove_constant_string_class"><a href="#val-remove_constant_string_class" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_constant_string_class : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></code></div><div class="doc"><p>Remove constant string or class from a prop</p></div></div><div class="spec val" id="val-check_attr_dealloc_mismatch"><a href="#val-check_attr_dealloc_mismatch" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>check_attr_dealloc_mismatch : <a href="../../../InferIR/InferIR/PredSymb/index.html#type-t">InferIR.PredSymb.t</a> <sp
and a different kind of deallocation</p></div></div><div class="spec val" id="val-find_dereference_without_null_check_in_sexp"><a href="#val-find_dereference_without_null_check_in_sexp" class="anchor"></a><div class="def val"><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 class="keyword">&#8209;&gt;</span> (int<span class="keyword"> * </span><a href="../../../InferIR/InferIR/PredSymb/index.html#type-path_pos">InferIR.PredSymb.path_pos</a>) option</code></div><div class="doc"><p>Check whether a sexp contains a dereference without null check,
and return the line number and path position</p></div></div><div class="spec val" id="val-create_cast_exception"><a href="#val-create_cast_exception" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_cast_exception : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferBase/InferBase/Logging/index.html#type-ocaml_pos">InferBase.Logging.ocaml_pos</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> option <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">&#8209;&gt;</span> exn</code></div><div class="doc"><p>raise a cast exception</p></div></div><div class="spec val" id="val-prop_is_exn"><a href="#val-prop_is_exn" class="anchor"></a><div class="def val"><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 class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>check if a prop is an exception</p></div></div><div class="spec val" id="val-prop_get_exn_name"><a href="#val-prop_get_exn_name" class="anchor"></a><div class="def val"><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 class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Name/index.html#type-t">InferIR.Typ.Name.t</a> option</code></div><div class="doc"><p>when prop is an exception, return the exception name</p></div></div><div class="spec val" id="val-lookup_custom_errors"><a href="#val-lookup_custom_errors" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>lookup_custom_errors : <span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> string option</code></div><div class="doc"><p>search in prop contains an error state</p></div></div><div class="spec val" id="val-exe_function_call"><a href="#val-exe_function_call" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exe_function_call : <a href="../Exe_env/index.html#type-t">Exe_env.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Summary/index.html#type-t">Summary.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Ident/index.html#type-t">InferIR.Ident.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span class="keyword">&#8209;&gt;</span> (<a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a>) list <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a> <span class="keyword">&#8209;&gt;</span> (