|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ProcAttributes (infer.IR.ProcAttributes)</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">IR</a> » ProcAttributes</nav><h1>Module <code>IR.ProcAttributes</code></h1></header><aside><p>Attributes of a procedure.</p></aside><dl><dt class="spec type" id="type-objc_accessor_type"><a href="#type-objc_accessor_type" class="anchor"></a><code><span class="keyword">type</span> objc_accessor_type</code><code> = </code><table class="variant"><tr id="type-objc_accessor_type.Objc_getter" class="anchored"><td class="def constructor"><a href="#type-objc_accessor_type.Objc_getter" class="anchor"></a><code>| </code><code><span class="constructor">Objc_getter</span> <span class="keyword">of</span> <a href="../Struct/index.html#type-field">Struct.field</a></code></td></tr><tr id="type-objc_accessor_type.Objc_setter" class="anchored"><td class="def constructor"><a href="#type-objc_accessor_type.Objc_setter" class="anchor"></a><code>| </code><code><span class="constructor">Objc_setter</span> <span class="keyword">of</span> <a href="../Struct/index.html#type-field">Struct.field</a></code></td></tr></table></dt><dt class="spec type" id="type-var_data"><a href="#type-var_data" class="anchor"></a><code><span class="keyword">type</span> var_data</code><code> = </code><code>{</code><table class="record"><tr id="type-var_data.name" class="anchored"><td class="def field"><a href="#type-var_data.name" class="anchor"></a><code>name : <a href="../Mangled/index.html#type-t">Mangled.t</a>;</code></td></tr><tr id="type-var_data.typ" class="anchored"><td class="def field"><a href="#type-var_data.typ" class="anchor"></a><code>typ : <a href="../Typ/index.html#type-t">Typ.t</a>;</code></td></tr><tr id="type-var_data.modify_in_block" class="anchored"><td class="def field"><a href="#type-var_data.modify_in_block" class="anchor"></a><code>modify_in_block : bool;</code></td><td class="doc"><p>__block attribute of Objective-C variables, means that it will be modified inside a block</p></td></tr><tr id="type-var_data.is_constexpr" class="anchored"><td class="def field"><a href="#type-var_data.is_constexpr" class="anchor"></a><code>is_constexpr : bool;</code></td></tr><tr id="type-var_data.is_declared_unused" class="anchored"><td class="def field"><a href="#type-var_data.is_declared_unused" class="anchor"></a><code>is_declared_unused : bool;</code></td><td class="doc"><p>variable declared with attribute <code>unused</code></p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-specialized_with_blocks_info"><a href="#type-specialized_with_blocks_info" class="anchor"></a><code><span class="keyword">type</span> specialized_with_blocks_info</code><code> = </code><code>{</code><table class="record"><tr id="type-specialized_with_blocks_info.orig_proc" class="anchored"><td class="def field"><a href="#type-specialized_with_blocks_info.orig_proc" class="anchor"></a><code>orig_proc : <a href="../Procname/index.html#type-t">Procname.t</a>;</code></td></tr><tr id="type-specialized_with_blocks_info.formals_to_procs_and_new_formals" class="anchored"><td class="def field"><a href="#type-specialized_with_blocks_info.formals_to_procs_and_new_formals" class="anchor"></a><code>formals_to_procs_and_new_formals : <span><span>(<a href="../Procname/index.html#type-t">Procname.t</a> * <span><span>(<a href="../Mangled/index.html#type-t">Mangled.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> list</span>)</span> <a href="../../IR__Mangled/index.html#module-Map">IR.Mangled.Map</a>.t</span>;</code></td></tr></table><code>}</code></dt></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_specialized_with_blocks_info"><a href="#val-compare_specialized_with_blocks_info" class="anchor"></a><code><span class="keyword">val</span> compare_specialized_with_blocks_info : <a href="index.html#type-specialized_with_blocks_info">specialized_with_blocks_info</a> <span>-></span> <a href="index.html#type-specialized_with_blocks_info">specialized_with_blocks_info</a> <span>-></span> int</code></dt></dl></div></div></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> = </code><code>{</code><table class="record"><tr id="type-t.access" class="anchored"><td class="def field"><a href="#type-t.access" class="anchor"></a><code>access : <a href="../PredSymb/index.html#type-access">PredSymb.access</a>;</code></td><td class="doc"><p>visibility access</p></td></tr><tr id="type-t.captured" class="anchored"><td class="def field"><a href="#type-t.captured" class="anchor"></a><code>captured : <span><span>(<a href="../Mangled/index.html#type-t">Mangled.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a> * <a href="../Pvar/index.html#type-capture_mode">Pvar.capture_mode</a>)</span> list</span>;</code></td><td class="doc"><p>name, type, and mode of variables captured in blocks and lambdas</p></td></tr><tr id="type-t.exceptions" class="anchored"><td class="def field"><a href="#type-t.exceptions" class="anchor"></a><code>exceptions : <span>string list</span>;</code></td><td class="doc"><p>exceptions thrown by the procedure</p></td></tr><tr id="type-t.formals" class="anchored"><td class="def field"><a href="#type-t.formals" class="anchor"></a><code>formals : <span><span>(<a href="../Mangled/index.html#type-t">Mangled.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> list</span>;</code></td><td class="doc"><p>name and type of formal parameters</p></td></tr><tr id="type-t.const_formals" class="anchored"><td class="def field"><a href="#type-t.const_formals" class="anchor"></a><code>const_formals : <span>int list</span>;</code></td><td class="doc"><p>list of indices of formals that are const-qualified</p></td></tr><tr id="type-t.is_abstract" class="anchored"><td class="def field"><a href="#type-t.is_abstract" class="anchor"></a><code>is_abstract : bool;</code></td><td class="doc"><p>the procedure is abstract</p></td></tr><tr id="type-t.is_biabduction_model" class="anchored"><td class="def field"><a href="#type-t.is_biabduction_model" class="anchor"></a><code>is_biabduction_model : bool;</code></td><td class="doc"><p>the procedure is a model for the biabduction analysis</p></td></tr><tr id="type-t.is_bridge_method" class="anchored"><td class="def field"><a href="#type-t.is_bridge_method" class="anchor"></a><code>is_bridge_method : bool;</code></td><td class="doc"><p>the procedure is a bridge method</p></td></tr><tr id="type-t.is_defined" class="anchored"><td class="def field"><a href="#type-t.is_defined" class="anchor"></a><code>is_defined : bool;</code></td><td class="doc"><p>true if the procedure is defined, and not just declared</p></td></tr><tr id="type-t.is_java_synchronized_method" class="anchored"><td class="def field"><a href="#type-t.is_java_synchronized_method" class="anchor"></a><code>is_java_synchronized_method : bool;</code></td><td class="doc"><p>the procedure is a Java synchronized method</p></td></tr><tr id="type-t.passed_as_noescape_block_to" class="anchored"><td class="def field"><a href="#type-t.passed_as_noescape_block_to" class="anchor"></a><code>passed_as_noescape_block_to : <span><a href="../Procname/index.html#type-t">Procname.t</a> option</span>;</code></td><td class="doc"><p>Present if the procedure is an Objective-C block that has been passed to the given method in a position annotated with the NS_NOESCAPE attribute.</p></td></tr><tr id="type-t.is_no_return" class="anchored"><td class="def field"><a href="#type-t.is_no_return" class="anchor"></a><code>is_no_return : bool;</code></td><td class="doc"><p>the procedure is known not to return</p></td></tr><tr id="type-t.is_objc_arc_on" class="anchored"><td class="def field"><a href="#type-t.is_objc_arc_on" class="anchor"></a><code>is_objc_arc_on : bool;</code></td><td class="doc"><p>the ObjC procedure is compiled with ARC</p></td></tr><tr id="type-t.is_specialized" class="anchored"><td class="def field"><a href="#type-t.is_specialized" class="anchor"></a><code>is_specialized : bool;</code></td><td class="doc"><p>the procedure is a clone specialized for dynamic dispatch handling</p></td></tr><tr id="type-t.is_synthetic_method" class="anchored"><td class="def field"><a href="#type-t.is_synthetic_method" class="anchor"></a><code>is_synthetic_method : bool;</code></td><td class="doc"><p>the procedure is a synthetic method</p></td></tr><tr id="type-t.is_variadic" class="anchored"><td class="def field"><a href="#type-t.is_variadic" class="anchor"></a><code>is_variadic : bool;</code></td><td class="doc"><p>the procedure is variadic, only supported for Clang procedures</p></td></tr><tr id="type-t.sentinel_attr" class="anchored"><td class="def field"><a href="#type-t.sentinel_attr" class="anchor"></a><code>sentinel_attr : <span><span>(int * int)</span> option</span>;</code></td><td class="doc"><p>__attribute__((sentinel(int, int)))</p></td></tr><tr id="type-t.specialized_with_blocks_info" class="anchored"><td class="def field"><a href="#type-t.specialized_with_blocks_info" class="anchor"></a><code>specialized_with_blocks_info : <span><a href="index.html#type-specialized_with_blocks_info">specialized_with_blocks_info</a> option</span>;</code></td><td class="doc"><p>the procedure is a clone specialized with calls to concrete closures, with link to the original procedure, and a map that links the original formals to the elements of the closure used to specialize the procedure.</p></td></tr><tr id="type-t.clang_method_kind" class="anchored"><td class="def field"><a href="#type-t.clang_method_kind" class="anchor"></a><code>clang_method_kind : <a href="../ClangMethodKind/index.html#type-t">ClangMethodKind.t</a>;</code></td><td class="doc"><p>the kind of method the procedure is</p></td></tr><tr id="type-t.loc" class="anchored"><td class="def field"><a href="#type-t.loc" class="anchor"></a><code>loc : <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td><td class="doc"><p>location of this procedure in the source code</p></td></tr><tr id="type-t.translation_unit" class="anchored"><td class="def field"><a href="#type-t.translation_unit" class="anchor"></a><code>translation_unit : <a href="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a>;</code></td><td class="doc"><p>source file where the procedure was captured</p></td></tr><tr id="type-t.locals" class="anchored"><td class="def field"><a href="#type-t.locals" class="anchor"></a><code><span class="keyword">mutable</span> locals : <span><a href="index.html#type-var_data">var_data</a> list</span>;</code></td><td class="doc"><p>name, type and attributes of local variables</p></td></tr><tr id="type-t.method_annotation" class="anchored"><td class="def field"><a href="#type-t.method_annotation" class="anchor"></a><code>method_annotation : <a href="../Annot/Method/index.html#type-t">Annot.Method.t</a>;</code></td><td class="doc"><p>annotations for all methods</p></td></tr><tr id="type-t.objc_accessor" class="anchored"><td class="def field"><a href="#type-t.objc_accessor" class="anchor"></a><code>objc_accessor : <span><a href="index.html#type-objc_accessor_type">objc_accessor_type</a> option</span>;</code></td><td class="doc"><p>type of ObjC accessor, if any</p></td></tr><tr id="type-t.proc_name" class="anchored"><td class="def field"><a href="#type-t.proc_name" class="anchor"></a><code>proc_name : <a href="../Procname/index.html#type-t">Procname.t</a>;</code></td><td class="doc"><p>name of the procedure</p></td></tr><tr id="type-t.ret_type" class="anchored"><td class="def field"><a href="#type-t.ret_type" class="anchor"></a><code>ret_type : <a href="../Typ/index.html#type-t">Typ.t</a>;</code></td><td class="doc"><p>return type</p></td></tr><tr id="type-t.has_added_return_param" class="anchored"><td class="def field"><a href="#type-t.has_added_return_param" class="anchor"></a><code>has_added_return_param : bool;</code></td><td class="doc"><p>whether or not a return param was added</p></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-default"><a href="#val-default" class="anchor"></a><code><span class="keyword">val</span> default : <a href="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span>-></span> <a href="../Procname/index.html#type-t">Procname.t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Create a proc_attributes with default values.</p></dd></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : Stdlib.Format.formatter <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dt class="spec value" id="val-get_access"><a href="#val-get_access" class="anchor"></a><code><span class="keyword">val</span> get_access : <a href="index.html#type-t">t</a> <span>-></span> <a href="../PredSymb/index.html#type-access">PredSymb.access</a></code></dt><dd><p>Return the visibility attribute</p></dd></dl><dl><dt class="spec value" id="val-get_formals"><a href="#val-get_formals" class="anchor"></a><code><span class="keyword">val</span> get_formals : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="../Mangled/index.html#type-t">Mangled.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> list</span></code></dt><dd><p>Return name and type of formal parameters</p></dd></dl><dl><dt class="spec value" id="val-get_annotated_formals"><a href="#val-get_annotated_formals" class="anchor"></a><code><span class="keyword">val</span> get_annotated_formals : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<span>(<a href="../Mangled/index.html#type-t">Mangled.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> * <a href="../Annot/Item/index.html#type-t">Annot.Item.t</a>)</span> list</span></code></dt><dt class="spec value" id="val-get_loc"><a href="#val-get_loc" class="anchor"></a><code><span class="keyword">val</span> get_loc : <a href="index.html#type-t">t</a> <span>-></span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dd><p>Return loc information for the procedure</p></dd></dl><dl><dt class="spec value" id="val-get_proc_name"><a href="#val-get_proc_name" class="anchor"></a><code><span class="keyword">val</span> get_proc_name : <a href="index.html#type-t">t</a> <span>-></span> <a href="../Procname/index.html#type-t">Procname.t</a></code></dt><dt class="spec value" id="val-get_pvar_formals"><a href="#val-get_pvar_formals" class="anchor"></a><code><span class="keyword">val</span> get_pvar_formals : <a href="index.html#type-t">t</a> <span>-></span> <span><span>(<a href="../Pvar/index.html#type-t">Pvar.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> list</span></code></dt><dd><p>Return pvar and type of formal parameters</p></dd></dl><div class="spec module" id="module-SQLite"><a href="#module-SQLite" class="anchor"></a><code><span class="keyword">module</span> <a href="SQLite/index.html">SQLite</a> : <a href="../../IBase/SqliteUtils/index.html#module-type-Data">IBase.SqliteUtils.Data</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../IBase/SqliteUtils/module-type-Data/index.html#type-t">t</a> = <a href="index.html#type-t">t</a></code></div></div></body></html> |