<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>ClangFrontend__CContext (infer.ClangFrontend__CContext)</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> » ClangFrontend__CContext</nav><h1>Module <code>ClangFrontend__CContext</code></h1></header><aside><p>Contains current class and current method to be translated as well as local variables, and the cfg, and tenv corresponding to the current file.</p></aside><div class="spec module" id="module-StmtMap"><a href="#module-StmtMap" class="anchor"></a><code><span class="keyword">module</span> StmtMap = <a href="../ClangFrontend/ClangPointers/index.html#module-Map">ClangFrontend.ClangPointers.Map</a></code></div><dl><dt class="spec type" id="type-curr_class"><a href="#type-curr_class" class="anchor"></a><code><span class="keyword">type</span> curr_class</code><code> = </code><table class="variant"><tr id="type-curr_class.ContextClsDeclPtr" class="anchored"><td class="def constructor"><a href="#type-curr_class.ContextClsDeclPtr" class="anchor"></a><code>| </code><code><span class="constructor">ContextClsDeclPtr</span> <span class="keyword">of</span> int</code></td></tr><tr id="type-curr_class.ContextNoCls" class="anchored"><td class="def constructor"><a href="#type-curr_class.ContextNoCls" class="anchor"></a><code>| </code><code><span class="constructor">ContextNoCls</span></code></td></tr></table></dt></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_curr_class"><a href="#val-compare_curr_class" class="anchor"></a><code><span class="keyword">val</span> compare_curr_class : <a href="index.html#type-curr_class">curr_class</a> <span>-></span> <a href="index.html#type-curr_class">curr_class</a> <span>-></span> int</code></dt></dl></div></div></div><dl><dt class="spec type" id="type-str_node_map"><a href="#type-str_node_map" class="anchor"></a><code><span class="keyword">type</span> str_node_map</code><code> = <span><span>(string, <a href="../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a>)</span> <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Caml.Hashtbl.t</span></code></dt><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.translation_unit_context" class="anchored"><td class="def field"><a href="#type-t.translation_unit_context" class="anchor"></a><code>translation_unit_context : <a href="../ClangFrontend/CFrontend_config/index.html#type-translation_unit_context">ClangFrontend.CFrontend_config.translation_unit_context</a>;</code></td></tr><tr id="type-t.tenv" class="anchored"><td class="def field"><a href="#type-t.tenv" class="anchor"></a><code>tenv : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a>;</code></td></tr><tr id="type-t.cfg" class="anchored"><td class="def field"><a href="#type-t.cfg" class="anchor"></a><code>cfg : <a href="../IR/Cfg/index.html#type-t">IR.Cfg.t</a>;</code></td></tr><tr id="type-t.procdesc" class="anchored"><td class="def field"><a href="#type-t.procdesc" class="anchor"></a><code>procdesc : <a href="../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a>;</code></td></tr><tr id="type-t.immediate_curr_class" class="anchored"><td class="def field"><a href="#type-t.immediate_curr_class" class="anchor"></a><code>immediate_curr_class : <a href="index.html#type-curr_class">curr_class</a>;</code></td></tr><tr id="type-t.return_param_typ" class="anchored"><td class="def field"><a href="#type-t.return_param_typ" class="anchor"></a><code>return_param_typ : <span><a href="../IR/Typ/index.html#type-t">IR.Typ.t</a> option</span>;</code></td></tr><tr id="type-t.outer_context" class="anchored"><td class="def field"><a href="#type-t.outer_context" class="anchor"></a><code>outer_context : <span><a href="index.html#type-t">t</a> option</span>;</code></td><td class="doc"><p>in case of objc blocks, the context of the method containing the block</p></td></tr><tr id="type-t.blocks_static_vars" class="anchored"><td class="def field"><a href="#type-t.blocks_static_vars" class="anchor"></a><code><span class="keyword">mutable</span> blocks_static_vars : <span><span><span>(<a href="../IR/Pvar/index.html#type-t">IR.Pvar.t</a> * <a href="../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span> <a href="../IR__Procname/index.html#module-Map">IR.Procname.Map</a>.t</span>;</code></td></tr><tr id="type-t.label_map" class="anchored"><td class="def field"><a href="#type-t.label_map" class="anchor"></a><code>label_map : <a href="index.html#type-str_node_map">str_node_map</a>;</code></td></tr><tr id="type-t.vars_to_destroy" class="anchored"><td class="def field"><a href="#type-t.vars_to_destroy" class="anchor"></a><code>vars_to_destroy : <span><span><a href="../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> list</span> <a href="../ClangFrontend__ClangPointers/Map/index.html#type-t">StmtMap.t</a></span>;</code></td><td class="doc"><p>mapping from a statement to a list of variables, that go out of scope after the end of the statement</p></td></tr><tr id="type-t.temporary_names" class="anchored"><td class="def field"><a href="#type-t.temporary_names" class="anchor"></a><code>temporary_names : <span><span>(<a href="../ATDGenerated/Clang_ast_t/index.html#type-pointer">ATDGenerated.Clang_ast_t.pointer</a>, <a href="../IR/Pvar/index.html#type-t">IR.Pvar.t</a> * <a href="../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Caml.Hashtbl.t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-get_curr_class"><a href="#val-get_curr_class" class="anchor"></a><code><span class="keyword">val</span> get_curr_class : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-curr_class">curr_class</a></code></dt><dt class="spec value" id="val-get_curr_class_typename"><a href="#val-get_curr_class_typename" class="anchor"></a><code><span class="keyword">val</span> get_curr_class_typename : <a href="../ATDGenerated/Clang_ast_t/index.html#type-stmt_info">ATDGenerated.Clang_ast_t.stmt_info</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a></code></dt><dt class="spec value" id="val-get_curr_class_decl_ptr"><a href="#val-get_curr_class_decl_ptr" class="anchor"></a><code><span class="keyword">val</span> get_curr_class_decl_ptr : <a href="../ATDGenerated/Clang_ast_t/index.html#type-stmt_info">ATDGenerated.Clang_ast_t.stmt_info</a> <span>-></span> <a href="index.html#type-curr_class">curr_class</a> <span>-></span> <a href="../ATDGenerated/Clang_ast_t/index.html#type-pointer">ATDGenerated.Clang_ast_t.pointer</a></code></dt><dt class="spec value" id="val-is_objc_method"><a href="#val-is_objc_method" class="anchor"></a><code><span class="keyword">val</span> is_objc_method : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-is_objc_class_method"><a href="#val-is_objc_class_method" class="anchor"></a><code><span class="keyword">val</span> is_objc_class_method : <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-create_context"><a href="#val-create_context" class="anchor"></a><code><span class="keyword">val</span> create_context : <a href="../ClangFrontend/CFrontend_config/index.html#type-translation_unit_context">ClangFrontend.CFrontend_config.translation_unit_context</a> <span>-></span> <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>-></span> <a href="../IR/Cfg/index.html#type-t">IR.Cfg.t</a> <span>-></span> <a href="../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <a href="index.html#type-curr_class">curr_class</a> <span>-></span> <span><a href="../IR/Typ/index.html#type-t">IR.Typ.t</a> option</span> <span>-></span> <span><a href="index.html#type-t">t</a> option</span> <span>-></span> <span><span><a href="../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> list</span> <a href="../ClangFrontend__ClangPointers/Map/index.html#type-t">StmtMap.t</a></span> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-add_block_static_var"><a href="#val-add_block_static_var" class="anchor"></a><code><span class="keyword">val</span> add_block_static_var : <a href="index.html#type-t">t</a> <span>-></span> <a href="../IR/Procname/index.html#type-t">IR.Procname.t</a> <span>-></span> <span>(<a href="../IR/Pvar/index.html#type-t">IR.Pvar.t</a> * <a href="../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> <span>-></span> unit</code></dt><dt class="spec value" id="val-get_outer_procname"><a href="#val-get_outer_procname" class="anchor"></a><code><span class="keyword">val</span> get_outer_procname : <a href="index.html#type-t">t</a> <span>-></span> <a href="../IR/Procname/index.html#type-t">IR.Procname.t</a></code></dt></dl></div></body></html>