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.

2 lines
14 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferModules__PulseOperations (infer.InferModules__PulseOperations)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; InferModules__PulseOperations</nav><h1>Module <code>InferModules__PulseOperations</code></h1></header><div class="spec module" id="module-AbstractAddress"><a href="#module-AbstractAddress" class="anchor"></a><code><span class="keyword">module</span> AbstractAddress = <a href="../InferModules/PulseDomain/index.html#module-AbstractAddress">InferModules.PulseDomain.AbstractAddress</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../InferModules/PulseAbductiveDomain/index.html#type-t">InferModules.PulseAbductiveDomain.t</a></code></dt><dt class="spec type" id="type-access_result"><a href="#type-access_result" class="anchor"></a><code><span class="keyword">type</span> <span>'a access_result</span></code><code> = <span><span>(<span class="type-var">'a</span>, <a href="../InferModules/PulseDiagnostic/index.html#type-t">InferModules.PulseDiagnostic.t</a>)</span> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.result</span></code></dt></dl><div class="spec module" id="module-Closures"><a href="#module-Closures" class="anchor"></a><code><span class="keyword">module</span> <a href="Closures/index.html">Closures</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-eval"><a href="#val-eval" class="anchor"></a><code><span class="keyword">val</span> eval : <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span>&#45;&gt;</span> <a href="../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-t">t</a> * <a href="../InferModules/PulseDomain/AddrTracePair/index.html#type-t">InferModules.PulseDomain.AddrTracePair.t</a>)</span> <a href="index.html#type-access_result">access_result</a></span></code></dt><dd><p>Use the stack and heap to evaluate the given expression down to an abstract address representing its value.</p><p>Return an error state if it traverses some known invalid address or if the end destination is known to be invalid.</p></dd></dl><dl><dt class="spec value" id="val-eval_deref"><a href="#val-eval_deref" class="anchor"></a><code><span class="keyword">val</span> eval_deref : <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span>&#45;&gt;</span> <a href="../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-t">t</a> * <a href="../InferModules/PulseDomain/AddrTracePair/index.html#type-t">InferModules.PulseDomain.AddrTracePair.t</a>)</span> <a href="index.html#type-access_result">access_result</a></span></code></dt><dd><p>Like <code>eval</code> but evaluates <code>*exp</code>.</p></dd></dl><dl><dt class="spec value" id="val-eval_access"><a href="#val-eval_access" class="anchor"></a><code><span class="keyword">val</span> eval_access : <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span>&#45;&gt;</span> <a href="../InferModules/PulseDomain/AddrTracePair/index.html#type-t">InferModules.PulseDomain.AddrTracePair.t</a> <span>&#45;&gt;</span> <a href="../InferModules__PulseDomain/Memory/index.html#module-Access">InferModules.PulseDomain.Memory.Access</a>.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</s