<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Rearrange (infer.Biabduction.Rearrange)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><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> » <a href="../index.html">Biabduction</a> » Rearrange</nav><h1>Module <code>Biabduction.Rearrange</code></h1></header><aside><p>Re-arrangement and extension of structures with fresh variables</p></aside><dl><dt class="spec exception" id="exception-ARRAY_ACCESS"><a href="#exception-ARRAY_ACCESS" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">ARRAY_ACCESS</span></code></dt></dl><dl><dt class="spec value" id="val-is_only_pt_by_fld_or_param_nonnull"><a href="#val-is_only_pt_by_fld_or_param_nonnull" class="anchor"></a><code><span class="keyword">val</span> is_only_pt_by_fld_or_param_nonnull : <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <a href="../../IR/Exp/index.html#type-t">IR.Exp.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-check_dereference_error"><a href="#val-check_dereference_error" class="anchor"></a><code><span class="keyword">val</span> check_dereference_error : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <a href="../../IR/Exp/index.html#type-t">IR.Exp.t</a> <span>-></span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a> <span>-></span> unit</code></dt><dd><p>Check for dereference errors: dereferencing 0, a freed value, or an undefined value</p></dd></dl><dl><dt class="spec value" id="val-check_call_to_objc_block_error"><a href="#val-check_call_to_objc_block_error" class="anchor"></a><code><span class="keyword">val</span> check_call_to_objc_block_error : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <a href="../../IR/Exp/index.html#type-t">IR.Exp.t</a> <span>-></span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a> <span>-></span> unit</code></dt><dd><p>Check that an expression representing an objc block can be null and raise a <code>B1</code> null exception. It's used to check that we don't call possibly null blocks</p></dd></dl><dl><dt class="spec value" id="val-rearrange"><a href="#val-rearrange" class="anchor"></a><code><span class="keyword">val</span> rearrange : <span>?⁠report_deref_errors:bool</span> <span>-></span> <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>-></span> <a href="../../IR/Exp/index.html#type-t">IR.Exp.t</a> <span>-></span> <a href="../../IR/Typ/index.html#type-t">IR.Typ.t</a> <span>-></span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>-></span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a> <span>-></span> <span><span><span><a href="../Predicates/index.html#type-offset">Predicates.offset</a> list</span> <a href="../Prop/index.html#type-prop_iter">Prop.prop_iter</a></span> list</span></code></dt><dd><p><code>rearrange lexp prop</code> rearranges <code>prop</code> into the form <code>prop' * lexp|->strexp:typ</code>. It returns an iterator with <code>lexp |-> strexp: typ</code> as current predicate and the path (an <code>offsetlist</code>) which leads to <code>lexp</code> as the iterator state.</p></dd></dl></div></body></html>