<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>BufferOverrunDomain (infer.BO.BufferOverrunDomain)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><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">BO</a>» BufferOverrunDomain</nav><h1>Module <code>BO.BufferOverrunDomain</code></h1></header><dl><dtclass="spec module"id="module-ItvThresholds"><ahref="#module-ItvThresholds"class="anchor"></a><code><spanclass="keyword">module</span> ItvThresholds : <ahref="../../Absint/AbstractDomain/index.html#module-type-FiniteSetS">Absint.AbstractDomain.FiniteSetS</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="../../Absint/AbstractDomain/index.html#module-type-FiniteSetS">FiniteSetS</a>.elt = Z.t</code></dt><dd><p>Set of integers for threshold widening</p></dd></dl><dl><dtclass="spec module"id="module-ItvUpdatedBy"><ahref="#module-ItvUpdatedBy"class="anchor"></a><code><spanclass="keyword">module</span><ahref="ItvUpdatedBy/index.html">ItvUpdatedBy</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></dt><dd><p>Domain for recording which operations are used for evaluating interval values</p></dd></dl><dl><dtclass="spec module"id="module-ModeledRange"><ahref="#module-ModeledRange"class="anchor"></a><code><spanclass="keyword">module</span><ahref="ModeledRange/index.html">ModeledRange</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></dt><dd><p><code>ModeledRange</code> represents how many times the interval value can be updated by modeled functions. This domain is to support the case where there are mismatches between value of a control variable and actual number of loop iterations. For example,</p></dd></dl><dl><dtclass="spec type"id="type-eval_sym_trace"><ahref="#type-eval_sym_trace"class="anchor"></a><code><spanclass="keyword">type</span> eval_sym_trace</code><code> = </code><code>{</code><tableclass="record"><trid="type-eval_sym_trace.eval_sym"class="anchored"><tdclass="def field"><ahref="#type-eval_sym_trace.eval_sym"class="anchor"></a><code>eval_sym : <ahref="../Bounds/Bound/index.html#type-eval_sym">Bounds.Bound.eval_sym</a>;</code></td><tdclass="doc"><p>evaluating symbol</p></td></tr><trid="type-eval_sym_trace.eval_locpath"class="anchored"><tdclass="def field"><ahref="#type-eval_sym_trace.eval_locpath"class="anchor"></a><code>eval_locpath : <ahref="../AbsLoc/PowLoc/index.html#type-eval_locpath">AbsLoc.PowLoc.eval_locpath</a>;</code></td><tdclass="doc"><p>evaluating path</p></td></tr><trid="type-eval_sym_trace.eval_func_ptrs"class="anchored"><tdclass="def field"><ahref="#type-eval_sym_trace.eval_func_ptrs"class="anchor"></a><code>eval_func_ptrs : <ahref="../FuncPtr/Set/index.html#type-eval_func_ptrs">FuncPtr.Set.eval_func_ptrs</a>;</code></td><tdclass="doc"><p>evaluating function pointers</p></td></tr><trid="type-eval_sym_trace.trace_of_sym"class="anchored"><tdclass="def field"><ahref="#type-eval_sym_trace.trace_of_sym"class="anchor"></a><code>trace_of_sym : <ahref="../Symb/Symbol/index.html#type-t">Symb.Symbol.t</a><span>-></span><ahref="../BufferOverrunTrace/Set/index.html#type-t">BufferOverrunTrace.Set.t</a>;</code></td><tdclass="doc"><p>getting traces of symbol</p></td></tr></table><code>}</code></dt><dd><p>type for on-demand symbol evaluation in Inferbo</p></dd></dl><divclass="spec module"id="module-Val"><ahref="#module-Val"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Val/index.html">Val</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec module"id="module-KeyRhs"><ahref="#module-KeyRhs"class="anchor"></a><code><spanclass="keyword"