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>Pulselib__PulseAttribute (infer.Pulselib__PulseAttribute)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.1"/><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>» Pulselib__PulseAttribute</nav><h1>Module <code>Pulselib__PulseAttribute</code></h1></header><divclass="spec module"id="module-F"><ahref="#module-F"class="anchor"></a><code><spanclass="keyword">module</span> F = Stdlib.Format</code></div><divclass="spec module"id="module-Invalidation"><ahref="#module-Invalidation"class="anchor"></a><code><spanclass="keyword">module</span> Invalidation = <ahref="../Pulselib/index.html#module-PulseInvalidation">Pulselib.PulseInvalidation</a></code></div><divclass="spec module"id="module-Trace"><ahref="#module-Trace"class="anchor"></a><code><spanclass="keyword">module</span> Trace = <ahref="../Pulselib/index.html#module-PulseTrace">Pulselib.PulseTrace</a></code></div><divclass="spec module"id="module-ValueHistory"><ahref="#module-ValueHistory"class="anchor"></a><code><spanclass="keyword">module</span> ValueHistory = <ahref="../Pulselib/index.html#module-PulseValueHistory">Pulselib.PulseValueHistory</a></code></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.AddressOfCppTemporary"class="anchored"><tdclass="def constructor"><ahref="#type-t.AddressOfCppTemporary"class="anchor"></a><code>| </code><code><spanclass="constructor">AddressOfCppTemporary</span><spanclass="keyword">of</span><ahref="../IR/Var/index.html#type-t">IR.Var.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">ValueHistory.t</a></code></td></tr><trid="type-t.AddressOfStackVariable"class="anchored"><tdclass="def constructor"><ahref="#type-t.AddressOfStackVariable"class="anchor"></a><code>| </code><code><spanclass="constructor">AddressOfStackVariable</span><spanclass="keyword">of</span><ahref="../IR/Var/index.html#type-t">IR.Var.t</a> * <ahref="../IBase/Location/index.html#type-t">IBase.Location.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">ValueHistory.t</a></code></td></tr><trid="type-t.Allocated"class="anchored"><tdclass="def constructor"><ahref="#type-t.Allocated"class="anchor"></a><code>| </code><code><spanclass="constructor">Allocated</span><spanclass="keyword">of</span><ahref="../IR/Procname/index.html#type-t">IR.Procname.t</a> * <ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td><tdclass="doc"><p>the <spanclass="xref-unresolved"title="unresolved reference to "Procname.t""><code>Procname</code>.t</span> is the function causing the allocation, eg <code>malloc</code></p></td></tr><trid="type-t.Closure"class="anchored"><tdclass="def constructor"><ahref="#type-t.Closure"class="anchor"></a><code>| </code><code><spanclass="constructor">Closure</span><spanclass="keyword">of</span><ahref="../IR/Procname/index.html#type-t">IR.Procname.t</a></code></td></tr><trid="type-t.DynamicType"class="anchored"><tdclass="def constructor"><ahref="#type-t.DynamicType"class="anchor"></a><code>| </code><code><spanclass="constructor">DynamicType</span><spanclass="keyword">of</span><ahref="../IR/Typ/index.html#type-t">IR.Typ.t</a></code></td></tr><trid="type-t.EndOfCollection"class="anchored"><tdclass="def constructor"><ahref="#type-t.EndOfCollection"class="anchor"></a><code>| </code><code><spanclass="constructor">EndOfCollection</span></code></td></tr><trid="type-t.Invalid"class="anchored"><tdclass="def constructor"><ahref="#type-t.Invalid"class="anchor"></a><code>| </code><code><spanclass="constructor">Invalid</span><spanclass="keyword">of</span><ahref="../Pulselib/PulseInvalidation/index.html#type-t">Invalidation.t</a> * <ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td></tr><trid="type-t.ISLAbduced"class="anchored"><tdclass="def constructor"><ahref="#type-t.ISLAbduced"class="anchor"></a><code>| </code><code><spanclass="constructor">ISLAbduced</span><spanclass="keyword">of</span><ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td><tdclass="doc"><p>The allocation is abduced so as the analysis could run normally</p></td></tr><trid="type-t.MustBeInitialized"class="anchored"><tdclass="def constructor"><ahref="#type-t.MustBeInitialized"class="anchor"></a><code>| </code><code><spanclass="constructor">MustBeInitialized</span><spanclass="keyword">of</span><ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td></tr><trid="type-t.MustBeValid"class="anchored"><tdclass="def constructor"><ahref="#type-t.MustBeValid"class="anchor"></a><code>| </code><code><spanclass="constructor">MustBeValid</span><spanclass="keyword">of</span><ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td></tr><trid="type-t.StdVectorReserve"class="anchored"><tdclass="def constructor"><ahref="#type-t.StdVectorReserve"class="anchor"></a><code>| </code><code><spanclass="constructor">StdVectorReserve</span></code></td></tr><trid="type-t.Uninitialized"class="anchored"><tdclass="def constructor"><ahref="#type-t.Uninitialized"class="anchor"></a><code>| </code><code><spanclass="constructor">Uninitialized</span></code></td></tr><trid="type-t.WrittenTo"class="anchored"><tdclass="def constructor"><ahref="#type-t.WrittenTo"class="anchor"></a><code>| </code><code><spanclass="constructor">WrittenTo</span><spanclass="keyword">of</span><ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a></code></td></tr></table></dt></dl><div><divclass="spec include"><divclass="doc"><dl><dtclass="spec value"id="val-compare"><ahref="#val-compare"class="anchor"></a><code><spanclass="keyword">val</span> compare : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> int</code></dt></dl></div></div></div><dl><dtclass="spec value"id="val-pp"><ahref="#val-pp"class="anchor"></a><code><spanclass="keyword">val</span> pp : <ahref="index.html#module-F">F</a>.formatter <span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt><dtclass="spec value"id="val-is_suitable_for_pre"><ahref="#val-is_suitable_for_pre"class="anchor"></a><code><spanclass="keyword">val</span> is_suitable_for_pre : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-is_suitable_for_post"><ahref="#val-is_suitable_for_post"class="anchor"></a><code><spanclass="keyword">val</span> is_suitable_for_post : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-map_trace"><ahref="#val-map_trace"class="anchor"></a><code><spanclass="keyword">val</span> map_trace : <span>f:<span>(<ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a><span>-></span><ahref="../Pulselib/PulseTrace/index.html#type-t">Trace.t</a>)</span></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>applies <code>f</code> to the traces found in attributes, leaving attributes without traces intact</p></dd></dl><divclass="spec module"id="module-Attributes"><ahref="#module-Attributes"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Attributes/index.html">Attributes</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div></div></body></html>