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
15 KiB
2 lines
15 KiB
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>BufferOverrunSemantics (infer.InferModules.BufferOverrunSemantics)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> — <span class="package">package <a href="../../index.html">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules.BufferOverrunSemantics</span></h1></header><div class="spec val" id="val-eval_const"><a href="#val-eval_const" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_const : <a href="../../../InferIR/InferIR/Const/index.html#type-t">InferIR.Const.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-sizeof_ikind"><a href="#val-sizeof_ikind" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sizeof_ikind : <a href="../../../InferIR/InferIR/Typ/index.html#type-ikind">InferIR.Typ.ikind</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-sizeof_fkind"><a href="#val-sizeof_fkind" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sizeof_fkind : <a href="../../../InferIR/InferIR/Typ/index.html#type-fkind">InferIR.Typ.fkind</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-sizeof"><a href="#val-sizeof" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sizeof : <a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-must_alias"><a href="#val-must_alias" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>must_alias : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-must_alias_opt"><a href="#val-must_alias_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>must_alias_opt : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> option <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> option <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-comp_rev"><a href="#val-comp_rev" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>comp_rev : <a href="../../../InferIR/InferIR/Binop/index.html#type-t">InferIR.Binop.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Binop/index.html#type-t">InferIR.Binop.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-comp_not"><a href="#val-comp_not" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>comp_not : <a href="../../../InferIR/InferIR/Binop/index.html#type-t">InferIR.Binop.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Binop/index.html#type-t">InferIR.Binop.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-must_alias_cmp"><a href="#val-must_alias_cmp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>must_alias_cmp : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-eval"><a href="#val-eval" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-eval_lindex"><a href="#val-eval_lindex" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_lindex : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-eval_unop"><a href="#val-eval_unop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_unop : <a href="../../../InferIR/InferIR/Unop/index.html#type-t">InferIR.Unop.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-eval_binop"><a href="#val-eval_binop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_binop : <a href="../../../InferIR/InferIR/Binop/index.html#type-t">InferIR.Binop.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-eval_arr"><a href="#val-eval_arr" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_arr : <a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-get_allocsite"><a href="#val-get_allocsite" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_allocsite : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">‑></span> node_hash:int <span class="keyword">‑></span> inst_num:int <span class="keyword">‑></span> dimension:int <span class="keyword">‑></span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-eval_array_alloc"><a href="#val-eval_array_alloc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>eval_array_alloc : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">‑></span> node_hash:int <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> <span class="keyword">‑></span> stride:int option <span class="keyword">‑></span> offset:<a href="../Itv/index.html#type-t">Itv.t</a> <span class="keyword">‑></span> size:<a href="../Itv/index.html#type-t">Itv.t</a> <span class="keyword">‑></span> inst_num:int <span class="keyword">‑></span> dimension:int <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a></code></div><div class="doc"></div></div><div class="spec module" id="module-Prune"><a href="#module-Prune" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Prune/index.html">Prune</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-get_formals"><a href="#val-get_formals" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_formals : <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a> <span class="keyword">‑></span> (<a href="../../../InferIR/InferIR/Pvar/index.html#type-t">InferIR.Pvar.t</a><span class="keyword"> * </span><a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-get_matching_pairs"><a href="#val-get_matching_pairs" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_matching_pairs : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> callee_ret_alias:<a href="../BufferOverrunDomain/AliasTarget/index.html#type-t">BufferOverrunDomain.AliasTarget.t</a> option <span class="keyword">‑></span> (<a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a><span class="keyword"> * </span><a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a> <a href="../AbstractDomain/Types/index.html#type-bottom_lifted">AbstractDomain.Types.bottom_lifted</a><span class="keyword"> * </span><a href="../../InferModules__BufferOverrunTrace/Set/index.html#type-t">BufferOverrunDomain.TraceSet.t</a>) list<span class="keyword"> * </span><a href="../BufferOverrunDomain/AliasTarget/index.html#type-t">BufferOverrunDomain.AliasTarget.t</a> option</code></div><div class="doc"></div></div><div class="spec val" id="val-subst_map_of_pairs"><a href="#val-subst_map_of_pairs" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>subst_map_of_pairs : (<a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a><span class="keyword"> * </span><a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a> <a href="../AbstractDomain/Types/index.html#type-bottom_lifted">AbstractDomain.Types.bottom_lifted</a><span class="keyword"> * </span><a href="../../InferModules__BufferOverrunTrace/Set/index.html#type-t">BufferOverrunDomain.TraceSet.t</a>) list <span class="keyword">‑></span> <a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a> <a href="../AbstractDomain/Types/index.html#type-bottom_lifted">AbstractDomain.Types.bottom_lifted</a> <a href="../../InferModules__Itv/index.html#module-SymbolMap">InferModules.Itv.SymbolMap</a>.t<span class="keyword"> * </span><a href="../../InferModules__BufferOverrunTrace/Set/index.html#type-t">BufferOverrunDomain.TraceSet.t</a> <a href="../../InferModules__Itv/index.html#module-SymbolMap">InferModules.Itv.SymbolMap</a>.t</code></div><div class="doc"></div></div><div class="spec val" id="val-list_fold2_def"><a href="#val-list_fold2_def" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>list_fold2_def : default:<a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a> <span class="keyword">‑></span> f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Val/index.html#type-t">BufferOverrunDomain.Val.t</a> list <span class="keyword">‑></span> init:<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-get_subst_map"><a href="#val-get_subst_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_subst_map : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">‑></span> <a href="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a> <span class="keyword">‑></span> (<a href="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> <a href="../BufferOverrunDomain/Mem/index.html#type-astate">BufferOverrunDomain.Mem.astate</a> <span class="keyword">‑></span> callee_ret_alias:<a href="../BufferOverrunDomain/AliasTarget/index.html#type-t">BufferOverrunDomain.AliasTarget.t</a> option <span class="keyword">‑></span> (<a href="../Itv/Bound/index.html#type-t">Itv.Bound.t</a> <a href="../AbstractDomain/Types/index.html#type-bottom_lifted">AbstractDomain.Types.bottom_lifted</a> <a href="../../InferModules__Itv/index.html#module-SymbolMap">InferModules.Itv.SymbolMap</a>.t<span class="keyword"> * </span><a href="../../InferModules__BufferOverrunTrace/Set/index.html#type-t">BufferOverrunDomain.TraceSet.t</a> <a href="../../InferModules__Itv/index.html#module-SymbolMap">InferModules.Itv.SymbolMap</a>.t)<span class="keyword"> * </span><a href="../BufferOverrunDomain/AliasTarget/index.html#type-t">BufferOverrunDomain.AliasTarget.t</a> option</code></div><div class="doc"></div></div></body></html> |