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>InferModules__SymExec (infer.InferModules__SymExec)</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>» InferModules__SymExec</nav><h1>Module <code>InferModules__SymExec</code></h1><p>Symbolic Execution</p></header><dl><dtclass="spec value"id="val-declare_locals_and_ret"><ahref="#val-declare_locals_and_ret"class="anchor"></a><code><spanclass="keyword">val</span> declare_locals_and_ret : <ahref="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span><span>-></span><span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span></code></dt><dd><p>Symbolic execution of the declaration of locals and return value.</p></dd></dl><dl><dtclass="spec value"id="val-node"><ahref="#val-node"class="anchor"></a><code><spanclass="keyword">val</span> node : <span>(exn <span>-></span> unit)</span><span>-></span><ahref="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a><span>-></span><ahref="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a><span>-></span><ahref="../InferModules/ProcCfg/Exceptional/index.html#type-t">InferModules.ProcCfg.Exceptional.t</a><span>-></span><ahref="../InferModules__ProcCfg/DefaultNode/index.html#type-t">InferModules.ProcCfg.Exceptional.Node.t</a><span>-></span><ahref="../InferModules/Paths/PathSet/index.html#type-t">InferModules.Paths.PathSet.t</a><span>-></span><ahref="../InferModules/Paths/PathSet/index.html#type-t">InferModules.Paths.PathSet.t</a></code></dt><dd><p>Symbolic execution of the instructions of a node, lifted to sets of propositions.</p></dd></dl><dl><dtclass="spec value"id="val-instrs"><ahref="#val-instrs"class="anchor"></a><code><spanclass="keyword">val</span> instrs : <span>?⁠mask_errors:bool</span><span>-></span><ahref="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a><span>-></span><ahref="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a><span>-></span><ahref="../../InferIR/InferIR/Instrs/index.html#type-not_reversed_t">InferIR.Instrs.not_reversed_t</a><span>-></span><span><span>(<span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span> * <ahref="../InferModules/Paths/Path/index.html#type-t">InferModules.Paths.Path.t</a>)</span> list</span><span>-></span><span><span>(<span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span> * <ahref="../InferModules/Paths/Path/index.html#type-t">InferModules.Paths.Path.t</a>)</span> list</span></code></dt><dd><p>Symbolic execution of a sequence of instructions. If errors occur and <code>mask_errors</code> is true, just treat as skip.</p></dd></dl><dl><dtclass="spec value"id="val-diverge"><ahref="#val-diverge"class="anchor"></a><code><spanclass="keyword">val</span> diverge : <span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span><span>-></span><ahref="../InferModules/Paths/Path/index.html#type-t">InferModules.Paths.Path.t</a><span>-></span><span><span>(<span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span> * <ahref="../InferModules/Paths/Path/index.html#type-t">InferModules.Paths.Path.t</a>)</span> list</span></code></dt><dd><p>Symbolic execution of the divergent pure computation.</p></dd></dl><dl><dtclass="spec value"id="val-proc_call"><ahref="#val-proc_call"class="anchor"></a><code><spanclass="keyword">val</span> proc_call : <span>?⁠dynamic_dispatch:<ahref="../../InferBase/InferBase/EventLogger/index.html#type-dynamic_dispatch">InferBase.EventLogger.dynamic_dispatch</a></span><span>-></span><ahref="../InferModules/Exe_env/index.html#type-t">InferModules.Exe_env.t</a><span>-></span><ahref="../InferModules/Summary/index.html#type-t">InferModules.Summary.t</a><span>-></span><ahref="../InferModules/Builtin/index.html#type-t">InferModules.Builtin.t</a></code></dt><dtclass="spec value"id="val-unknown_or_scan_call"><ahref="#val-unknown_or_scan_call"class="anchor"></a><code><spanclass="keyword">val</span> unknown_or_scan_call : <span>is_scan:bool</span><span>-></span><span>reason:string</span><span>-></span><ahref="../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a><span>-></span><ahref="../../InferIR/InferIR/Annot/Item/index.html#type-t">InferIR.Annot.Item.t</a><span>-></span><ahref="../InferModules/Builtin/index.html#type-t">InferModules.Builtin.t</a></code></dt><dtclass="spec value"id="val-check_variadic_sentinel"><ahref="#val-check_variadic_sentinel"class="anchor"></a><code><spanclass="keyword">val</span> check_variadic_sentinel : <span>?⁠fails_on_nil:bool</span><span>-></span> int <span>-></span><span>(int * int)</span><span>-></span><ahref="../InferModules/Builtin/index.html#type-t">InferModules.Builtin.t</a></code></dt><dtclass="spec value"id="val-check_arith_norm_exp"><ahref="#val-check_arith_norm_exp"class="anchor"></a><code><spanclass="keyword">val</span> check_arith_norm_exp : <ahref="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span><span>-></span><ahref="../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> * <span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span></code></dt><dd><p>Check for arithmetic problems and normalize an expression.</p></dd></dl><dl><dtclass="spec value"id="val-prune"><ahref="#val-prune"class="anchor"></a><code><spanclass="keyword">val</span> prune : <ahref="../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>positive:bool</span><span>-></span><ahref="../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><span><ahref="../InferModules/Prop/index.html#type-normal">InferModules.Prop.normal</a><ahref="../InferModules/Prop/index.html#type-t">InferModules.Prop.t</a></span><span>-></span><ahref="../InferModules/Propset/index.html#type-t">InferModules.Propset.t</a></code></dt></dl></div></body></html>