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>PulseDiagnostic (infer.Pulselib.PulseDiagnostic)</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">Pulselib</a>» PulseDiagnostic</nav><h1>Module <code>Pulselib.PulseDiagnostic</code></h1></header><divclass="spec module"id="module-CallEvent"><ahref="#module-CallEvent"class="anchor"></a><code><spanclass="keyword">module</span> CallEvent = <ahref="../index.html#module-PulseCallEvent">PulseCallEvent</a></code></div><divclass="spec module"id="module-Invalidation"><ahref="#module-Invalidation"class="anchor"></a><code><spanclass="keyword">module</span> Invalidation = <ahref="../index.html#module-PulseInvalidation">PulseInvalidation</a></code></div><divclass="spec module"id="module-Trace"><ahref="#module-Trace"class="anchor"></a><code><spanclass="keyword">module</span> Trace = <ahref="../index.html#module-PulseTrace">PulseTrace</a></code></div><divclass="spec module"id="module-ValueHistory"><ahref="#module-ValueHistory"class="anchor"></a><code><spanclass="keyword">module</span> ValueHistory = <ahref="../index.html#module-PulseValueHistory">PulseValueHistory</a></code></div><dl><dtclass="spec type"id="type-access_to_invalid_address"><ahref="#type-access_to_invalid_address"class="anchor"></a><code><spanclass="keyword">type</span> access_to_invalid_address</code><code> = </code><code>{</code><tableclass="record"><trid="type-access_to_invalid_address.calling_context"class="anchored"><tdclass="def field"><ahref="#type-access_to_invalid_address.calling_context"class="anchor"></a><code>calling_context : <span><span>(<ahref="../PulseCallEvent/index.html#type-t">CallEvent.t</a> * <ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a>)</span> list</span>;</code></td><tdclass="doc"><p>the list of function calls leading to the issue being realised, which is an additional common prefix to the traces in the record</p></td></tr><trid="type-access_to_invalid_address.invalidation"class="anchored"><tdclass="def field"><ahref="#type-access_to_invalid_address.invalidation"class="anchor"></a><code>invalidation : <ahref="../PulseInvalidation/index.html#type-t">Invalidation.t</a>;</code></td></tr><trid="type-access_to_invalid_address.invalidation_trace"class="anchored"><tdclass="def field"><ahref="#type-access_to_invalid_address.invalidation_trace"class="anchor"></a><code>invalidation_trace : <ahref="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><tdclass="doc"><p>assuming we are in the calling context, the trace leads to <code>invalidation</code> without further assumptions</p></td></tr><trid="type-access_to_invalid_address.access_trace"class="anchored"><tdclass="def field"><ahref="#type-access_to_invalid_address.access_trace"class="anchor"></a><code>access_trace : <ahref="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><tdclass="doc"><p>assuming we are in the calling context, the trace leads to an access to the value invalidated in <code>invalidation_trace</code> without further assumptions</p></td></tr><trid="type-access_to_invalid_address.must_be_valid_reason"class="anchored"><tdclass="def field"><ahref="#type-access_to_invalid_address.must_be_valid_reason"class="anchor"></a><code>must_be_valid_reason : <span><ahref="../PulseInvalidation/index.html#type-must_be_valid_reason">Invalidation.must_be_valid_reason</a> option</span>;</code></td></tr></table><code>}</code></dt></dl><div><divclass="spec include"><divclass="doc"><dl><dtclass="spec value"id="val-compare_access_to_invalid_address"><ahref="#val-compare_access_to_invalid_address"class="anchor"></a><code><spanclass="keyword">val</span> compare_access_to_invalid_address : <ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a><span>-></span><ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a><span>-></span> int</code></dt><dtclass="spec value"id="val-equal_access_to_invalid_address"><ahref="#val-equal_access_to_invalid_address"class="anchor"></a><code><spanclass="keyword">val</span> equal_access_to_invalid_address : <ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a><span>-></span><ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-yojson_of_access_to_invalid_address"><ahref="#val-yojson_of_access_to_invalid_address"class="anchor"></a><code><spanclass="keyword">val</span> yojson_of_access_to_invalid_address : <ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a><span>-></span> Ppx_yojson_conv_lib.Yojson.Safe.t</code></dt></dl></div></div></div><dl><dtclass="spec type"id="type-read_uninitialized_value"><ahref="#type-read_uninitialized_value"class="anchor"></a><code><spanclass="keyword">type</span> read_uninitialized_value</code><code> = </code><code>{</code><tableclass="record"><trid="type-read_uninitialized_value.calling_context"class="anchored"><tdclass="def field"><ahref="#type-read_uninitialized_value.calling_context"class="anchor"></a><code>calling_context : <span><span>(<ahref="../PulseCallEvent/index.html#type-t">CallEvent.t</a> * <ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a>)</span> list</span>;</code></td><tdclass="doc"><p>the list of function calls leading to the issue being realised, which is an additional common prefix to the traces in the record</p></td></tr><trid="type-read_uninitialized_value.trace"class="anchored"><tdclass="def field"><ahref="#type-read_uninitialized_value.trace"class="anchor"></a><code>trace : <ahref="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td><tdclass="doc"><p>assuming we are in the calling context, the trace leads to read of the uninitialized value</p></td></tr></table><code>}</code></dt></dl><div><divclass="spec include"><divclass="doc"><dl><dtclass="spec value"id="val-compare_read_uninitialized_value"><ahref="#val-compare_read_uninitialized_value"class="anchor"></a><code><spanclass="keyword">val</span> compare_read_uninitialized_value : <ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a><span>-></span><ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a><span>-></span> int</code></dt><dtclass="spec value"id="val-equal_read_uninitialized_value"><ahref="#val-equal_read_uninitialized_value"class="anchor"></a><code><spanclass="keyword">val</span> equal_read_uninitialized_value : <ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a><span>-></span><ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-yojson_of_read_uninitialized_value"><ahref="#val-yojson_of_read_uninitialized_value"class="anchor"></a><code><spanclass="keyword">val</span> yojson_of_read_uninitialized_value : <ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a><span>-></span> Ppx_yojson_conv_lib.Yojson.Safe.t</code></dt></dl></div></div></div><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code><code> = </code><tableclass="variant"><trid="type-t.AccessToInvalidAddress"class="anchored"><tdclass="def constructor"><ahref="#type-t.AccessToInvalidAddress"class="anchor"></a><code>| </code><code><spanclass="constructor">AccessToInvalidAddress</span><spanclass="keyword">of</span><ahref="index.html#type-access_to_invalid_address">access_to_invalid_address</a></code></td></tr><trid="type-t.MemoryLeak"class="anchored"><tdclass="def constructor"><ahref="#type-t.MemoryLeak"class="anchor"></a><code>| </code><code><spanclass="constructor">MemoryLeak</span><spanclass="keyword">of</span></code><code>{</code><tableclass="record"><trid="type-t.procname"class="anchored"><tdclass="def field"><ahref="#type-t.procname"class="anchor"></a><code>procname : <ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a>;</code></td></tr><trid="type-t.allocation_trace"class="anchored"><tdclass="def field"><ahref="#type-t.allocation_trace"class="anchor"></a><code>allocation_trace : <ahref="../PulseTrace/index.html#type-t">Trace.t</a>;</code></td></tr><trid="type-t.location"class="anchored"><tdclass="def field"><ahref="#type-t.location"class="anchor"></a><code>location : <ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td></tr></table><code>}</code></td></tr><trid="type-t.ReadUninitializedValue"class="anchored"><tdclass="def constructor"><ahref="#type-t.ReadUninitializedValue"class="anchor"></a><code>| </code><code><spanclass="constructor">ReadUninitializedValue</span><spanclass="keyword">of</span><ahref="index.html#type-read_uninitialized_value">read_uninitialized_value</a></code></td></tr><trid="type-t.StackVariableAddressEscape"class="anchored"><tdclass="def constructor"><ahref="#type-t.StackVariableAddressEscape"class="anchor"></a><code>| </code><code><spanclass="constructor">StackVariableAddressEscape</span><spanclass="keyword">of</span></code><code>{</code><tableclass="record"><trid="type-t.variable"class="anchored"><tdclass="def field"><ahref="#type-t.variable"class="anchor"></a><code>variable : <ahref="../../IR/Var/index.html#type-t">IR.Var.t</a>;</code></td></tr><trid="type-t.history"class="anchored"><tdclass="def field"><ahref="#type-t.history"class="anchor"></a><code>history : <ahref="../PulseValueHistory/index.html#type-t">ValueHistory.t</a>;</code></td></tr><trid="type-t.location"class="anchored"><tdclass="def field"><ahref="#type-t.location"class="anchor"></a><code>location : <ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td></tr></table><code>}</code></td></tr></table></dt><dd><p>an error to report to the user</p></dd></dl><div><divclass="spec include"><divclass="doc"><dl><dtclass="spec value"id="val-equal"><ahref="#val-equal"class="anchor"></a><code><spanclass="keyword">val</span> equal : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt></dl></div></div></div><dl><dtclass="spec value"id="val-get_message"><ahref="#val-get_message"class="anchor"></a><code><spanclass="keyword">val</span> get_message : <ahref="index.html#type-t">t</a><span>-></span> string</code></dt><dtclass="spec value"id="val-get_location"><ahref="#val-get_location"class="anchor"></a><code><spanclass="keyword">val</span> get_location : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dtclass="spec value"id="val-get_issue_type"><ahref="#val-get_issue_type"class="anchor"></a><code><spanclass="keyword">val</span> get_issue_type : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../IBase/IssueType/index.html#type-t">IBase.IssueType.t</a></code></dt><dtclass="spec value"id="val-get_trace"><ahref="#val-get_trace"class="anchor"></a><code><spanclass="keyword">val</span> get_trace : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../Absint/Errlog/index.html#type-loc_trace">Absint.Errlog.loc_trace</a></code></dt></dl></div></body></html>